We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
方法一:排序
在对数字从小到大排序之后。数组的重复元素一定出现在相邻的位置,因此我们可以扫描已经排序的数组,每次判断相邻的两个元素是否相等,如果相等则说明存在重复的元素。
/** * @param {number[]} nums * @return {boolean} */ var containsDuplicate = function(nums) { // 将数组做升序排列 nums.sort((a, b) => a - b); // 数组的长度 const n = nums.length; // 循环遍历数组 因为下面需要有 i+1的操作,所以这里n-1是取不到的。 for (let i = 0; i < n - 1; i++) { if (nums[i] === nums[i + 1]) { return true; } } return false; };
复杂度分析
方法二:哈希表
对于数组中的每个元素,我们将它插入到哈希表中,如果插入一个元素的时候发现这个元素已经存在于哈希表中,则说明存在重复的元素。
/** * @param {number[]} nums * @return {boolean} */ var containsDuplicate = function(nums) { const set = new Set(); for (const x of nums) { if (set.has(x)) { return true; } set.add(x); } return false; };
复杂度分析:
The text was updated successfully, but these errors were encountered:
No branches or pull requests
方法一:排序
在对数字从小到大排序之后。数组的重复元素一定出现在相邻的位置,因此我们可以扫描已经排序的数组,每次判断相邻的两个元素是否相等,如果相等则说明存在重复的元素。
复杂度分析
方法二:哈希表
对于数组中的每个元素,我们将它插入到哈希表中,如果插入一个元素的时候发现这个元素已经存在于哈希表中,则说明存在重复的元素。
复杂度分析:
The text was updated successfully, but these errors were encountered: