2 返回無序陣列中連續元素的長度

2021-09-29 14:12:34 字數 526 閱讀 1293

給定乙個無序陣列,返回連續的元素中最長的長度,比如陣列a[7,6,8,1,2,2,5],返回4,並且要求複雜度為o(n)

這個時候如果不考慮複雜度,那麼就很好解決了,先排序再求長度,考慮到複雜度,就不能排序了,可以使用雜湊表

來幫助我們完成這個運算,**如下:

public static int getconsecutive(int nums)

//定義乙個longest,用於儲存最長的連續元素長度

int longest = 0;

//遍歷陣列nums,保證複雜度為o(n)

for(int i : nums)

//從第乙個元素開始,向右查詢連續的元素,並把length加一

for(int j = i + 1;set.contains(j); j++)

//把最大的數值賦值給longest

longest = math.max(longest,length);

}return longest;

}

求無序陣列中元素出現次數超過陣列長度一半的數字

求無序陣列中元素出現次數超過陣列長度一半的數字.首先給出幾個 元素出現次數超過陣列長度一半 測試陣列 a1 7 a2 5 a3 9 不難發現 陣列中如果乙個數字出現次數超過數字長度的一半.如果把這個陣列排序,那麼排序後的陣列中間的數字一定是出現次數超過數字長度的一半.如陣列a1長度為7,按從小到大排...

無序陣列 刪除出現超過k次的元素

assert 當 i 指i針指向第 i 個元素的時候,保證前 i 1 個元素都是滿足條件的,即,需要保留的。所以 假如前 i 1 個元素中有與第 i 個元素相同的,保留第 i 個元素,否則掃瞄陣列,數數。若出現次數小於k次,將所有和當前元素相等的元素都移到陣列的末尾,當然,和a i 相等的只可能在 ...

如何在N個無序陣列元素中,查詢第K大元素

package com.lee.sort public class heapsort system.out.println 排序前.for int i 1 i array.length i system.out.println heap size array.length heapsort arra...