287 尋找重複數

2021-08-31 21:40:51 字數 745 閱讀 5667

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

示例 1:

輸入:[1,3,4,2,2]輸出:2
示例 2:

輸入:[3,1,3,4,2]輸出:3
說明:

不能更改原陣列(假設陣列是唯讀的)。

只能使用額外的 o(1) 的空間。

時間複雜度小於 o(n2) 。

陣列中只有乙個重複的數字,但它可能不止重複出現一次。

解題思路:快速和慢速使用兩個指標。快速的每次前進兩步,而慢速每次隻前進一步。當慢= =快時,它們必須滿足相同的專案。實際上,它們在乙個圓圈中相遇,當從nums [0]訪問陣列時,重複的數字必須是圓的入口點。接下來我們只需要找到切入點。我們使用乙個點(我們可以使用之前的快速)每次訪問**開始一步,做同樣的工作慢。當快= =慢時,它們在圓的入口點相遇。

class solution 

fast=0;

while(slow!=fast)

return slow;

}};

287 尋找重複數

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

287 尋找重複數

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

287 尋找重複數

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