追求進步 陣列中重複的數字

2021-07-11 13:48:31 字數 814 閱讀 8024

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

三種方法的**分別是:

常規思想:

1.乙個個比較,重複即就是相等,則輸出複雜度o(n平方);

public static  int duplicate(int numbers,int length) 

int count=0;

for(int i=0;ii;j++)

}} return numbers[count];

}

2.巧妙的字串索引,複雜度o(n)

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

for(int j = 0; j < length; j++)

}return false;

}

3.借助hashmap,出現次數存放在value中。複雜度o(n)

public static int duplicate(int numbers,int length)else

} return result;

} public static void main(string args) ;

system.out.println(duplicate(a,5));

}

追求進步 陣列中只出現一次的數字

乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。num1,num2分別為長度為1的陣列。傳出引數 將num1 0 num2 0 設定為返回結果 public class solution int k 0 記錄陣列中異或出的結果例如0010 for int ...

追求進步 陣列中出現次數超過一半的數字

陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。public class solution int middle length 1 int start 0 int end le...

追求進步 二叉搜尋樹的後序遍歷序列

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。本題有兩種方法,遞迴和非遞迴 public class solution return verifysequenceofbst sequence,0,sequen...