原地置换
原地置换主要用于重复出现的数,缺失的数等题目中,总的来说原地置换就是,使索引 == 值,把值放到索引所在处,如为 1 的值,放在索引为 1 的位置,8 的值,放在索引为 8 的位置。
注意:原地置换改变了原来的数组
int temp;for (int i = 0; i < nums.length; i++) {while (nums[i] != i) {// 判断是否有重复值if (nums[i] == nums[nums[i]]) {return nums[i];}// 置换,把当前值换到下一个索引处temp = nums[i];nums[i] = nums[temp];nums[temp] = temp;}}
