贪心算法
Is Anonymous
这个作者很懒,什么都没留下…
展开
-
买卖股票有手续费与含冷冻期【贪心算法】【动态规划 】
let prices = [8, 4, 3, 1, 3, 2, 8, 100, 4, 9, 1, -1, -2];fee = 2;prices.push(0); //push一个是为了方便计算ep - tmin的差值let tmin = prices[0];let res = 0;for (let i = 1; i < prices.length; i++) { const e = prices[i]; const ep = prices[i - 1]; if (e <原创 2022-03-08 22:44:40 · 153 阅读 · 0 评论 -
单调递增的数字【贪心算法】
**题目:**给定⼀个⾮负整数 N,找出⼩于或等于 N 的最⼤的整数,同时这个整数需要满⾜其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字 x 和 y 满⾜ x <= y 时,我们称这个整数是单调递增的。)let s = '109';function name(s) { let N = s.split('') const l = N.length let index = l for (let i = l - 1; i >= 0; i--) {原创 2022-03-04 17:51:53 · 581 阅读 · 0 评论 -
划分字⺟区间【贪心算法】
题目:字符串 S 由⼩写字⺟组成。我们要把这个字符串划分为尽可能多的⽚段,同⼀字⺟最多出现在⼀个⽚段中。返回⼀个表示每个字符串⽚段的⻓度的列表。示例:输⼊:S = “ababcbacadefegdehijhklij”输出:[9,7,8]解释:划分结果为 “ababcbaca”, “defegde”, “hijhklij”。每个字⺟最多出现在⼀个⽚段中。像 “ababcbacadefegde”, “hijhklij” 的划分是错误的,因为划分的⽚段数较少。let S = "asdfhgk;原创 2022-03-03 18:07:56 · 100 阅读 · 0 评论 -
⽆重叠区间【贪心算法】
**题目:**给定⼀个区间的集合,找到需要移除区间的最⼩数量,使剩余区间互不重叠。注意:可以认为区间的终点总是⼤于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输⼊: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输⼊: [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。示例 3:输⼊: [原创 2022-03-02 18:02:03 · 119 阅读 · 0 评论 -
leetcode 柠檬水找零 【贪心算法】
在柠檬⽔摊上,每⼀杯柠檬⽔的售价为 5 美元。顾客排队购买你的产品,(按账单 bills ⽀付的顺序)⼀次购买⼀杯。每位顾客只买⼀杯柠檬⽔,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你⽀付 5 美元。注意,⼀开始你⼿头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输⼊:[5,5,5,10,20]输出:true解释:前 3 位顾客那⾥,我们按顺序收取 3 张 5 美元的钞票。第 4原创 2022-03-01 14:49:00 · 335 阅读 · 0 评论 -
暴力与贪心环形遍历解决 leetcode加油站问题
let array = [2, 3, 4], cost = [3, 4, 3]function find() { let j = array.length s = j - 1 let temp = [] for (let n = 0; n < j; n++) { temp.push(array[n] - cost[n]) } for (let i = 0; i < j; i++) { let ti = i, tj = j let原创 2022-02-23 17:49:12 · 4801 阅读 · 0 评论 -
leetcode跳跃游戏【贪心】
题目:给定⼀个⾮负整数数组,你最初位于数组的第⼀个位置。数组中的每个元素代表你在该位置可以跳跃的最⼤⻓度。示例 1:输⼊: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后⼀个位置。示例 2:输⼊: [3,2,1,0,4]输出: false解释: ⽆论怎样,你总会到达索引为 3 的位置。但该位置的最⼤跳跃⻓度是 0 , 所以你永远不可能到达最后⼀个位置。**贪心策略:每次移动取最⼤跳跃步数(得到最原创 2022-02-22 10:01:40 · 2126 阅读 · 0 评论 -
leetcode 摆动序列【贪心】
题目:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第⼀个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列,例如, [1,7,4,9,2,5] 是⼀个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反,[1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第⼀个序列是因为它的前两个差值都是正数,第⼆个序列是因为它的最后⼀个差值为零。给定⼀个整数序列,返回作为摆动序列的最⻓⼦序列的⻓度。 通过从原始序列中删除⼀些(也可以不删原创 2022-01-05 09:32:51 · 262 阅读 · 0 评论 -
分糖果[贪心算法]
一群孩子站成一排,每一个孩子有自己的评分。现在需要给这些孩子发糖果,规则是如果一个孩子的评分比自己身旁的一个孩子要高,那么这个孩子就必须得到比身旁孩子更多的糖果;所有孩子至少要有一个糖果。求解最少需要多少个糖果。...原创 2021-08-26 09:52:41 · 240 阅读 · 0 评论