91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何使用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

精河县| 禹州市| 恩施市| 平和县| 新郑市| 昌平区| 左贡县| 松江区| 中西区| 南康市| 萨嘎县| 定远县| 中宁县| 法库县| 阳信县| 崇州市| 万全县| 陈巴尔虎旗| 日照市| 桓台县| 中山市| 马山县| 宁南县| 平果县| 舞钢市| 高青县| 逊克县| 白银市| 河津市| 武鸣县| 桐城市| 杭州市| 陆良县| 桓台县| 巍山| 许昌市| 永平县| 罗山县| 石嘴山市| 琼海市| 融水|