leetcode 287 尋找重複數 二分法

2021-10-06 12:44:39 字數 318 閱讀 7907

此題的二分法與常規的二分法搜尋不一樣。平常我們用到二分法通常是對拍好序後的元素進行二分搜尋,用來搜尋陣列中特定的元素。

該提中的二分則是對陣列中元素與給定值之間的大小關係進行二分,首先取陣列中最大和最小值的平均值作為mid值,然後統計整個陣列中比mid小的數的數量,若數量》mid,這說明重複的數一定在left和mid這個區間內,否則就在mid+1和right這個區間。

class

solution

if(count > mid)

else

}return left;

}}

LeetCode 287 尋找重複數

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

LeetCode 287(尋找重複數)

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

leetcode287 尋找重複數

1.二分查詢 參考 可以認為有兩個陣列,乙個是原陣列,乙個是1 n的範圍陣列 無重複 每次對low high的範圍陣列做二分,取中間數mid,然後去原陣列中統計小於等於mid的數目,如果大於mid 如果無重複,那麼應該小於等於mid 說明重複的那個數字在1 mid之間,結合範圍即在 low mid之...