專欄: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.