287 尋找重複數

2021-10-06 12:10:53 字數 545 閱讀 4118

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

示例1:

輸入: [1,3,4,2,2]

輸出: 2

示例2:

輸入: [3,1,3,4,2]

輸出: 3

由於之前刷每日一題時做過該題,想到了使用快慢指標來解題,而題目的條件設定也十分精巧,n+1陣列中的數字為1到n之間,說明把陣列元素作為index來訪問陣列不會造成越界問題。這正是快慢指標的精髓,當存在重複元素時,相當於在陣列index形成了乙個環,就可以使用快慢指標來解環了。

class

solution

while

(slow != fast)

; slow = nums[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 尋找重複數

給定乙個包含 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 說明 不能更改原陣列 假...