在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。思路1:
**
public
class
findrepeatnumber
//陣列中的數字是否符合題目
for(
int i : nums)
}for
(int i =
0; i < nums.length; i++
)//不相等則交換,讓nums[i]這個數字放到nums[i]下標處
int temp = nums[i]
; nums[i]
= nums[temp]
; nums[temp]
= temp;}}
return
false;}
public statis void
main
(string[
] args)
;boolean result =
duplicate
(a);
system.out.
println
(result);}
}
思路2在乙個長度為n+1的陣列裡的所有數字都在1~n的範圍內,所以陣列中至少有乙個數字是重複的。請找出陣列中任意乙個重複的數字,但是不能修改輸入的陣列。例如,如果輸入長度為8的陣列,那麼對應的輸出是重複的數字2或者3。思路:
//修改duplication方法中的for迴圈
int[
] temp =
newint
[origin.length]
;for
(int i =
0; i < origin.length; i++
) temp[origin[i]
]= origin[i];}
return-1
;
劍指offer 3 實現陣列中重複數字查詢
排序乙個長度為n的陣列需要 變數和屬性的區別 變數是方法體中定義的,我們稱為臨時變數 屬性是類體中定義的。許可權標示符只用於修飾屬性和方法。不修飾變數。方法中定義的臨時變數在方法呼叫完成之後就不存在了,不需要用修飾符定義!寫 之前,先將輸入的範圍固定 題1 找出陣列中重複的數字 方法1 先排序 再比...
劍指offer (3)陣列中重複的數字
題目描述 題目 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。程式 include include include...
劍指offer 3 陣列中重複的數字
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。使用hashset去重 如果新增不成功說明出現了重複的元素 返回。public intfindrepeatnu...