其他分享
首页 > 其他分享> > ARTS Week 26

ARTS Week 26

作者:互联网

Algorithm

本周的 LeetCode 题目为 215. 数组中的第K个最大元素

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

输入: [3,2,1,5,6,4] 和 k = 2
输出: 5

第 K 个大的元素可以利用小顶堆进行查找,维护一个元素个数不超过 K 的小顶堆。遍历数组,若堆中元素个数小于K时,则将数组元素加入堆,并调整堆;若堆中元素个数为K时,若当前元素大于对于元素时,移除堆顶元素,将当前元素加入堆,并调整堆,直至数组遍历结束。

class Solution {
    public int findKthLargest(int[] nums, int k) {
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        for (int i = 0; i < nums.length; i++) {
            if (i < k) {
                pq.offer(nums[i]);
            } else if (i >= k && nums[i] > pq.peek()) {
                pq.poll();
                pq.offer(nums[i]);
            } else {
                continue;
            }
        }
        return pq.peek();
    }
}

Review

本周 Review 的英文文章为:作为软件开发人员如何开始成为自由职业者

首先你要想清楚,你打算投入多少时间从事自由职业,是全职工作还是作为兼职工作,当自由职业作为你唯一的收入来源时,这和你将其作为额外收入是完全不同的两个概念。下面是作者的一些建议:

Tip

C语言中,打开文件时r+w+a+标志的区别:

Share

本周一直在路上,没有太多的思考,后面的生活将逐步踏入正轨,一步一步来吧。

标签:Week,文件,ARTS,pq,nums,int,元素,26,数组
来源: https://blog.csdn.net/m0_46976090/article/details/123034991