专栏:50多种数据结构彻底征服
专栏:50多种经典图论算法全部掌握
4月5日中核集团发布了一篇文章,标题是:我们收到1196273份简历,当然收到那么多简历对企业来说肯定是好事,收到的简历多说明企业的受关注度高,热度高。但站在求职者的角度来说肯定不是啥好事,因为这意味着就业压力大,竞争也比较激烈。
按说一个央企收到这么多简历也不足为怪,毕竟现在这个阶段,很多人还是希望能进入到国企或者央企,找一份稳定的工作,关键是他这文章的标题再加上标题后面的表情,让网友感觉尽显傲慢之态。发文之后很快遭到网友的热议随后又把文章给删了。
然后第二天4月6日再度发文称:我们始终坚持认真对待每份简历,不辜负每位学子对我们的认可和信任”,并解释该集团2025届校招“提供1730类岗位,预计录用人数约8000人”,每位学子可以投递20个岗位。
将近200万份简历就算所有人全部投递20个岗位也有10万人,如果人均投递2个岗位大概有100万人,究竟有多少人我们不得而知,反正简历大概是200万份。企业受追捧是好事,但数字背后承载的期待更值得被看见。
--------------下面是今天的算法题--------------
来看下今天的算法题,这题是LeetCode的第1403题:非递增顺序的最小子序列,难度是简单。
给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格大于未包含在该子序列中的各元素之和。
如果存在多个解决方案,只需返回长度最小的子序列。如果仍然有多个解决方案,则返回元素之和最大的子序列。
示例1:
输入:nums = [4,3,10,9,8] 输出:[10,9] 解释:子序列 [10,9] 和 [10,8] 是最小的、满足元素之和大于其他各元素之和的子序列。但是 [10,9] 的元素之和最大。
示例2:
输入:nums = [4,4,7,6,7] 输出:[7,7,6] 解释:子序列 [7,7] 的和为 14 ,不严格大于剩下的其他元素之和(14 = 4 + 4 + 6)。因此,[7,6,7] 是满足题意的最小子序列。注意,元素按非递增顺序返回。
1 <= nums.length <= 500
1 <= nums[i] <= 100
问题分析
这题说的是从数组中选择一些数字,且选择的数字之和大于未选择的数字之和,如果存在多个答案,要返回选择数字最少的,如果还存在多个答案,要返回数字之和最大的。
这题并没有说不能打乱选择的顺序,所以我们可以先对数组排序,然后从大道小选择,直到选择的数字之和大于剩余数字之和即可,所以这题比较简单,我们可以直接模拟。
JAVA:
public List minSubsequence(int[] nums) { Arrays.sort(nums);// 先对数组排序 int sum = 0;// 累加所有元素的和。 for (int num : nums) sum += num; List ans = new ArrayList<>(); int cur = 0;// 记录已经选择的元素和 // 逆序从最大的开始选择 for (int i = nums.length - 1; i >= 0; i--) { ans.add(nums[i]); cur += nums[i]; // 如果已经选择的大于未选择的,则终止。 if (cur > sum - cur) break; } return ans; }C++:
public: vector
minSubsequence(vector
&nums) { sort(nums.begin(), nums.end());// 先对数组排序 int sum = 0;// 累加所有元素的和。 for (int num: nums) sum += num; vector
ans; int cur = 0;// 记录已经选择的元素和 // 逆序从最大的开始选择 for (int i = nums.size() - 1; i >= 0; i--) { ans.push_back(nums[i]); cur += nums[i]; // 如果已经选择的大于未选择的,则终止。 if (cur > sum - cur) break; } return ans; }
笔者简介
博哥,真名:王一博,毕业十多年, 作者,专注于 数据结构和算法 的讲解,在全球30多个算法网站中累计做题2000多道,在公众号中写算法题解800多题,对算法题有自己独特的解题思路和解题技巧,喜欢的可以给个关注,也可以 下载我整理的1000多页的PDF算法文档 。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.