在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。 例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。
public
class
solution
a[numbers[i]]=true;
}return
false;
}}
/**不需要額外的陣列或者hash table來儲存,題目裡寫了陣列裡數字的範圍保證在0 ~ n-1 之間,所以可以利用現有陣列設定標誌,當乙個數字被訪問過後,可以設定對應位上的數 + n,之後再遇到相同的數時,會發現對應位上的數已經大於等於n了,那麼直接返回這個數即可。**/
public
intfind_dup(int numbers, int length)
if (numbers[index] >= length)
numbers[index] = numbers[index] + length;
}
return - 1 ;
}//不需要額外的空間消耗,時間效率是o(n)
劍指offer 陣列中重複的數
題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。開始我考慮的是,先將陣列排序,然後逐個比較,如果有相等的,...
劍指offer 《陣列中重複的數 》
詳細描述 在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限制 2 n 100000 考查 陣列 雜...
(Java)劍指offer之陣列中重複的數
題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。引數說明 numbers 輸入的整數陣列 length 陣...