原理:将索引和数组值关联起来,将数组元素放到自己的值对应的索引上,如果有重复的数字,则必会出现一个索引对应多个相同值的情况,即为答案。
思路来源https://leetcode-cn.com/u/jyd/
class Solution {
public:
int findRepeatNumber(vector<int>& nums) {
int i = 0;
while (i < nums.size()) {
if (nums[i] == i) {
i++;
continue;
}
if (nums[nums[i]] == nums[i]) {
return nums[i];
}
swap(nums[i], nums[nums[i]]);
}
return -1;
}
};
本文介绍了一种利用索引和数组值关系找出重复数的算法,通过交换操作找到第一个出现重复的数字。思路源自LeetCode挑战,核心在于观察和数组操作技巧。
539

被折叠的 条评论
为什么被折叠?



