中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用java查看數組中的第K個最大元素

發布時間:2022-01-17 14:27:20 來源:億速云 閱讀:194 作者:清風 欄目:大數據

這篇“如何使用java查看數組中的第K個最大元素”文章,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要參考一下,對于“如何使用java查看數組中的第K個最大元素”,小編整理了以下知識點,請大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進入主題吧。

在未排序的數組中找到第 k 個最大的元素。請注意,你需要找的是數組排序后的第 k 個最大的元素,而不是第 k 個不同的元素。

示例 1:

輸入: k = 2
輸出: 5

示例 2:

輸入: k = 4
輸出: 4

說明:

你可以假設 k 總是有效的,且 1 ≤ k ≤ 數組的長度。

答案:

1public int findKthLargest(int[] nums, int k) {
2    final int N = nums.length;
3    Arrays.sort(nums);
4    return nums[N - k];
5}

解析:

這種解法是最簡單的,直接排序,然后再找第k個即可。但很明顯這種解法在面試中不占優勢,雖然做出來了,但感覺做和沒做都一個樣。下面再來看種解法

 1public int findKthLargest(int[] nums, int k) {
2    final PriorityQueue<Integer> pq = new PriorityQueue<>();
3    for (int val : nums) {
4        pq.offer(val);
5        if (pq.size() > k) {
6            pq.poll();
7        }
8    }
9    return pq.peek();
10}

PriorityQueue是一種排序隊列,offer表示往里面添加元素,添加的時候會進行排序,PriorityQueue默認是小頂堆的一種數據結構,最頂端的數據是最小的,poll表示的是移除最頂端的元素,也就是移除最小的元素。peek表示的是取出最頂端的元素,代碼很好理解。這里我們使用的java的api,如果不讓我們使用PriorityQueue類,我們該怎么辦呢,其實也很簡單,大家可以參照我之前寫的106,排序-堆排序,自己建立一個大小為k的小頂堆即可。每次循環的時候如果堆的size小于k,直接add進去即可,如果等于k則要和堆最頂端的元素對比,如果比堆頂端的元素大,就把堆頂端的元素移除,然后把要比較的值放到堆的最頂端,讓后再往下調整。代碼就不再寫了,有興趣的可以自己去寫寫。

常用的java框架有哪些

1.SpringMVC,Spring Web MVC是一種基于Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架。2.Shiro,Apache Shiro是Java的一個安全框架。3.Mybatis,MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。4.Dubbo,Dubbo是一個分布式服務框架。5.Maven,Maven是個項目管理和構建自動化工具。6.RabbitMQ,RabbitMQ是用Erlang實現的一個高并發高可靠AMQP消息隊列服務器。7.Ehcache,EhCache 是一個純Java的進程內緩存框架。

以上是“如何使用java查看數組中的第K個最大元素”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岳阳县| 中江县| 武平县| 松滋市| 会宁县| 巴彦县| 滦平县| 聂荣县| 民乐县| 云和县| 吴江市| 乐昌市| 高雄县| 乌苏市| 枝江市| 镇远县| 会昌县| 治多县| 萨迦县| 平山县| 方山县| 宁河县| 安国市| 伊春市| 景泰县| 建瓯市| 安宁市| 新龙县| 什邡市| 盘锦市| 拜泉县| 沙田区| 清新县| 凭祥市| 农安县| 台山市| 依安县| 衡东县| 巍山| 繁昌县| 比如县|