leetcode 尋找重複數字

2021-08-31 16:36:59 字數 733 閱讀 4207

在乙個長度為n+1的陣列裡所有的數字都在1-n的範圍內,所以陣列的中至少有乙個數字是重複的。請找出陣列中重複的數字,但是不可以修改陣列。

1.定義start和end,找到陣列的中間值middle

2.統計start到middle中count的數字,如果count大於middle-start+1,說明重複的數字在左半範圍,讓middle成為end

3.相反則middle成為start

4.當end等於start的時候count大於一返回start

#includeint countrange(const int*numbers,int len, int start, int end)

return count;

}int getdupliction(int* numbers,int len)

while(end >= start)//記住這個萬惡的等於號

else

}if(count > (middle - start + 1))

else

}return -1;

}int main()

; int sz = sizeof(arr)/sizeof(arr[0]);

getdupliction(arr,sz);

printf("%d",getdupliction(arr,sz));

return 0;

}

LeetCode 尋找重複數

給定乙個包含 n 1 個整數的陣列 nums,其數字都在 1 到 n 之間 包括 1 和 n 可知至少存在乙個重複的整數。假設只有乙個重複的整數,找出這個重複的數。給定乙個包含 n 1 個整數的陣列 nums,其數字都在 1 到 n 之間 包括 1 和 n 可知至少存在乙個重複的整數。假設只有乙個重...

LeetCode 尋找重複數

給定乙個包含 n 1 個整數的陣列 nums,其數字都在 1 到 n 之間 包括 1 和 n 可知至少存在乙個重複的整數。假設只有乙個重複的整數,找出這個重複的數。示例 1 輸入 1,3,4,2,2 輸出 2示例 2 輸入 3,1,3,4,2 輸出 3說明 不能更改原陣列 假設陣列是唯讀的 只能使用...

leetcode 尋找重複數

給定乙個包含 n 1 個整數的陣列 nums,其數字都在 1 到 n 之間 包括 1 和 n 可知至少存在乙個重複的整數。假設只有乙個重複的整數,找出這個重複的數。示例 1 輸入 1,3,4,2,2 輸出 2示例 2 輸入 3,1,3,4,2 輸出 3說明 不能更改原陣列 假設陣列是唯讀的 只能使用...