牛客网
排序 - 爱奇艺 https://www.nowcoder.com/practice/e496d8e885a949d18476b2dea1e594a9?tpId=90&tqId=30794&tPage=1&rp=1&ru=%2Fta%2F2018test&qru=%2Fta%2F2018test%2Fquestion-ranking 题目描述 牛牛有一个长度为n的整数序列,牛牛想对这个序列进行重排为一个非严格升序序列。牛牛比较懒惰,他想移动尽量少的数就完成重排,请你帮他计算一下他最少需要移动多少个序列中的元素。(当一个元素不在它原来所在的位置,这个元素就是被移动了的) 输入描述: 输入包括两行,第一行一个整数n(1 ≤ n ≤ 50),即序列的长度 第二行n个整数x[i](1 ≤ x[i] ≤ 100),即序列中的每个数 输出描述: 输出一个整数,即最少需要移动的元素个数 示例1 输入 复制 3 3 2 1 输出 复制 2 思路:先将数组备份到y,再将x排序,最后逐位比较x与y不同的数字个数 #include<cstdio> #include <iostream> #include <algorithm> #include <cstring> using namespace std; #define N 50 int main() { int n, x[N], y[N]; cin