《劍指offer》 3 陣列中的重複數字

2021-10-03 13:33:38 字數 1130 閱讀 4063

在乙個長度為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...