目录
前言
简介
题目链接:455. 分发饼干
题目链接:376. 摆动序列
题目链接:53. 最大子数组和
前言
踏平坎坷成大道,斗罢艰险又出发!
自律的尽头是自控,自控的尽头是硬控。
愿道友们披荆斩棘,终能得偿所愿。
简介
本人是小几年经验的前端开发,算法基础只有力扣几十道题,非常薄弱。
今天是个人的代码随想录算法硬控自己第20天,开启贪心。
题目链接:455. 分发饼干
记得先排序!
/*** @param {number[]} g* @param {number[]} s* @return {number}*/
var findContentChildren = function (g, s) {let res = 0, index = s.length - 1;// 记得先排序g.sort((a, b) => a - b);s.sort((a, b) => a - b);for (let i = g.length - 1; i >= 0; i--) {if (index >= 0 && s[index] >= g[i]) {res++;index--;}}return res;
};
题目链接:376. 摆动序列
/*** @param {number[]} nums* @return {number}*/
var wiggleMaxLength = function (nums) {// preDiff为0的原因:我们在第一个元素前虚拟出来一个前缀,它的值跟第一个元素相同,因此初始化 preDiff为0// res为1的原因:默认最后一个元素就是个摆动let res = 1, preDiff = 0, currDiff = 0;// 只需要循环到倒数第二个,因为最后一个元素我们已经初始化默认为摆动了for (let i = 0; i <= nums.length - 2; i++) {let currDiff = nums[i + 1] - nums[i];if ((preDiff >= 0 && currDiff < 0) || (preDiff <= 0 && currDiff > 0)) {res++;// 只需要在有摆动的时候再更新preDiff,为了解决单调有平坡preDiff = currDiff;}}return res;
};
题目链接:53. 最大子数组和
很经典的一道题,之前刷过,秒了~
/*** @param {number[]} nums* @return {number}*/
var maxSubArray = function (nums) {let prevSum = nums[0], maxSum = nums[0];for (let i = 1; i < nums.length; i++) {prevSum = prevSum < 0 ? nums[i] : prevSum + nums[i];maxSum = Math.max(maxSum, prevSum);}return maxSum;
};