(Java)劍指offer之陣列中重複的數

2021-08-22 14:44:19 字數 681 閱讀 5254

【題目描述】在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。 例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。

【引數說明】 

numbers: 輸入的整數陣列 

length: 陣列的長度 

duplication: 輸出任意乙個重複的數字。使用duplication[0] 表示 

public boolean duplicate(int numbers,int length,int duplication)

【輸出】 

1. 如果存在重複的數字,返回值為true。並使用duplication[0]返回任意乙個重複的數字。 

2. 如果不存在重複的數字,返回false。

思路:因為該陣列長度為n,且數字都在0~n-1的範圍內,因此,若按照排序排列好,當不存在重複的數字的時候,陣列下標和元素應該是一一對應相等的關係。從這裡切入,該問題就變得簡單了。當下標和元素不對應時,應該交換該下標下的元素到它應該去的下標位置。

**如下:

public class solution 

}for (int i=0; ielse}}

return false;

}}

劍指offer之陣列查詢

題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。完成 coding utf 8 class solution array 二維列表 deffind self,target,ar...

劍指OFFER之陣列篇

根據b站up主土妹的方法,像以前高中初中複習一樣來鍛鍊自己做演算法題的能力!把劍指offer的題目作為例題,系統學習乙個知識點之後,再去做leetcode的題目。加油!toc 目錄 地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能...

劍指offer 陣列中重複的數字 Java

題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。解題思路 重排這個陣列,下標從0到length進行掃瞄。到...