題目描述(劍指offer3)
在乙個長度為 n 的陣列裡的所有數字都在 0 到 n-1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的,也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。
示例input:
output:
2
首先放乙個時間複雜度 o(n),空間複雜度 o(1)的方法,因為數字範圍是[0,n-1],就把數字放在它該去的地方,若某個地方已經存在了這個數字,則它是重複的。。
public
boolean
duplicate
(int
nums,
int length,
int[
] duplication)
swap
(nums, i, nums[i]);
}}return
false;}
private
void
swap
(int
nums,
int i,
int j)
這個解法應該是正確的,但是在牛客上並不能百分百通過,好像牛客網上有個用例預設是找到第乙個重複的數字(坑)。
所以。。。還是笨方法
public
boolean
duplicate
(int numbers,
int length,
int[
] duplication)
for(
int i =
0; i < length; i++)}
}return
false
;}
陣列中重複數字
題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中第乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。返回描述 如果陣列中有重複的數字,函式返回true,否則返回...
陣列中的重複數字
在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。1 排序 將陣列排序,然後掃瞄排序後的陣列即可。時間複雜度 o nl...
陣列中的重複數字
題目 在乙個長度為n的陣列裡的所有數字都在0 n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意重複的數字。例如 如果輸入長度為7的陣列,那麼對應的輸出的重複的數字2或者3。分析 陣列中的數字都在0 n 1之間,如果沒有該陣列中沒有重複的數...