暴力 o(n2)
public class Solution {
public bool ContainsDuplicate(int[] nums) {
for (int i=0; i<nums.Length; i++) {
for(int j=i+1; j<nums.Length; j++) {
if( nums[i] == nums[j] )
return true;
}
}
return false;
}
}
排序,判断
public class Solution {
public bool ContainsDuplicate(int[] nums) {
this.quickSort(nums, 0, nums.Length-1);
for(int i=0; i<=nums.Length-2; i++) {
if(nums[i] == nums[i+1])
return true;
}
return false;
}
public void quickSort(int[] arr, int start, int end) {
if(start < end) {
int index = this.findRightPos(arr, start, end);
this.quickSort(arr, start, index-1);
this.quickSort(arr, index+1, arr.Length-1);
}
}
public int findRightPos(int[] arr, int start, int end) {
int key = arr[start];
while(start < end){
while(start < end && arr[end] >= key)
end --;
if(start < end)
arr[start] = arr[end];
while(start < end && arr[start] <= key)
start ++;
if(start < end)
arr[end] = arr[start];
}
arr[start] = key;
return start;
}
}
set()集合
public class Solution {
public bool ContainsDuplicate(int[] nums) {
HashSet<int> hs = new HashSet<int>();
for(int i=0; i<nums.Length; i++) {
bool addResult = hs.Add(nums[i]);
if(!addResult)
return true;
}
return false;
}
}