前 K 個高頻元素, 求Top N

2021-09-28 07:53:23 字數 987 閱讀 5440

給定乙個非空的整數陣列,返回其**現頻率前 k 高的元素。

示例 1:

輸入: nums = [1,1,1,2,2,3], k = 2

輸出: [1,2]

示例 2:

輸入: nums = [1], k = 1

輸出: [1]

說明:你可以假設給定的 k 總是合理的,且 1 ≤ k ≤ 陣列中不相同的元素的個數。

你的演算法的時間複雜度必須優於 o(n log n) , n 是陣列的大小。

本菜鳥自己的解題,對比官方思路。。。

//本菜鳥思路

public listtopkfrequent(int nums, int k)

setkeys = map.keyset();

iteratorit = keys.iterator();

int array = new int[nums.length][2];

for(int i =0; it.hasnext() && i < nums.length; i++)

arrays.sort(array,new comparator()

});listans =new arraylist();

for(int i=0; i < k; i++)

return ans;

}

//官方思路    

public listtopkfrequent(int nums, int k)

listans = new arraylist();

queueprioq = new priorityqueue(new comparator()

});for(integer i : map.keyset())

}while(!prioq.isempty())

collections.reverse(ans);

return ans;

}

前 K 個高頻元素

給定乙個非空的整數陣列,返回其 現頻率前 k 高的元素。示例 1 輸入 nums 1,1,1,2,2,3 k 2 輸出 1,2 示例 2 輸入 nums 1 k 1 輸出 1 說明 你可以假設給定的 k 總是合理的,且 1 k 陣列中不相同的元素的個數。你的演算法的時間複雜度必須優於 o n log...

前k個高頻元素

給定乙個非空的整數陣列,返回其 現頻率前 k 高的元素。示例 1 輸入 nums 1,1,1,2,2,3 k 2 輸出 1,2 示例 2 輸入 nums 1 k 1 輸出 1 說明 你可以假設給定的 k 總是合理的,且 1 k 陣列中不相同的元素的個數。你的演算法的時間複雜度必須優於 o n log...

前 K 個高頻元素

題目 給定乙個非空的整數陣列,返回其 現頻率前 k 高的元素。eg 輸入 nums 1,1,1,2,2,3 k 2 輸出 1,2 eg 輸入 nums 1 k 1 輸出 1 你可以假設給定的 k 總是合理的,且 1 k 陣列中不相同的元素的個數。你的演算法的時間複雜度必須優於 o n log n n...