1. 程式人生 > >刷爆LeetCode之存在重複

刷爆LeetCode之存在重複

存在重複

給定一個整數陣列,判斷是否存在重複元素。

如果任何值在陣列中出現至少兩次,函式返回 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

解題思路:

  • 思路很簡單,一個雙重迴圈判斷就搞定了
  • 雙重迴圈判斷,如果有重複的就直接返回true就可以了。
  • 如果迴圈結束沒有重複的部分,則返回false。
  • 這個程式碼測試例子中有一個數組長度是兩萬多的例子,用Java寫會時,所以用C語言寫會好一點。

程式碼如下:

bool containsDuplicate(int* nums, int numsSize) {
    int i,j;
	   for(i=0;i<numsSize;i++) {
			 for(j=i+1;j<numsSize;j++) {
				 if(nums[i]==nums[j]) {    //判斷是否有重複的數字,如果有則返回true,後面的就不用判斷了。
					 return true;

				 }
			 }
		 }

		return false;    //雙重迴圈如果成功結束,則代表沒有重複的部分,返回false。
	}