class Solution {
private void swap(int[] nums, int i, int j) {
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
public List<Integer> findDuplicates(int[] nums) {
int i = 0;
while (i < nums.length) {
while (i + 1 != nums[i] && nums[i] != nums[nums[i] - 1]) {
swap(nums, nums[i] - 1, i);
}
i++;
}
List<Integer> lst = new ArrayList<>();
for (i = 0; i < nums.length; i++) {
if (nums[i] != i + 1) {
lst.add(nums[i]);
}
}
return lst;
}
}
10-28
3444
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-14
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交