牛牛有乙個長度為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個整...