LeetCode 217. 存在重复元素

tech2023-02-07  104

题目

给定一个整数数组,判断是否存在重复元素。

如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。

示例 1:

输入: [1,2,3,1] 输出: true

示例 2:

输入: [1,2,3,4] 输出: false

示例 3:

输入: [1,1,1,3,3,4,3,2,4,2] 输出: true

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/contains-duplicate 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

class Solution { public boolean containsDuplicate(int[] nums) { if(nums.length==0) { return false; } quickSort(nums,0,nums.length-1); for (int i = 0; i < nums.length - 1; ++i) { if (nums[i] == nums[i + 1]) return true; } return false; } public static void quickSort(int[] arr,int left,int right) { int l = left; int r = right; int pivot = arr[(left + right) / 2]; int temp = 0; while (l < r) { while (arr[l] < pivot) { l += 1; } while (arr[r] > pivot) { r -= 1; } if (l >= r) { break; } temp = arr[l]; arr[l] = arr[r]; arr[r] = temp; if (arr[l] == pivot) { r -= 1; } if (arr[r] == pivot) { l += 1; } } if (l == r) { l += 1; r -= 1; } if (left < r) { quickSort(arr,left,r); } if (right > l) { quickSort(arr,l,right); } } }

3ms 43.3MB 对数组进行排序,这样相同的数就会在相邻的位置,然后进行判断即可


更多题解点击此处

最新回复(0)