排序 最少移動元素個數

2021-09-09 01:42:36 字數 874 閱讀 2812

牛牛有乙個長度為n的整數序列,牛牛想對這個序列進行重排為乙個非嚴格公升序序列。牛牛比較懶惰,他想移動盡量少的數就完成重排,請你幫他計算一下他最少需要移動多少個序列中的元素。(當乙個元素不在它原來所在的位置,這個元素就是被移動了的)

輸入包括兩行,第一行乙個整數n(1 ≤ n ≤ 50),即序列的長度

第二行n個整數x[i](1 ≤ x[i] ≤ 100),即序列中的每個數

輸出乙個整數,即最少需要移動的元素個數。
3

3 2 1

2
這是一道愛奇藝18校招水題。這題不管是用py寫還是用c++寫,我用的思路都是一樣的。輸入的陣列為a陣列,排序後的陣列為b陣列。然後遍歷陣列a,記錄同一下標時,a和b有多少元素不相同即可。

n = eval(input())

a = list(map(int,input().split()))

b = sorted(a)

count = 0

for i in range(n):

if a[i] != b[i]:

count += 1

print(count)

#include using namespace std;

int main()

sort(a,a+n);

int count = 0;

for (int i = 0; i < n; i++)

}cout << count << endl;

return 0;

}

元素個數排序

描述 給定若干行,每行若干個整數,請根據每行整數個數從小到大進行排序。輸入 輸入資料有若干行 不超過10行 處理到檔案結尾 eof結束 每行若干個 至少1個,不超過20個 整數,整數之間由空格分隔,結尾沒有空格。每行字串長度不超過50。輸出 輸出排序後的若干行 與輸入行數相同 每行的格式與輸入資料一...

最少移動 暴力

link description 給出乙個長度為n nn的序列 a1,a2 a na 1,a 2 a n a1 a2 an 每次可以選擇相鄰的兩個數,令乙個數 1 1 1,乙個數 1 1 1求最終使得這n個數相同的最少操作次數,若不能達到目的輸出 1 解題思路 最終肯定是使每個數都變為這n個數的平均...

排序需要移動幾個數

牛牛有乙個長度為n的整數序列,牛牛想對這個序列進行重排為乙個非嚴格公升序序列。牛牛比較懶惰,他想移動盡量少的數就完成重排,請你幫他計算一下他最少需要移動多少個序列中的元素。當乙個元素不在它原來所在的位置,這個元素就是被移動了的 輸入包括兩行,第一行乙個整數n 1 n 50 即序列的長度 第二行n個整...