随笔分类 -  贪心算法

关于贪心算法的题目
摘要:给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 `num 不会包含任何前导零。` `输出: "1219"` `示例 2 :` `输出: "200"` `示例 3 :` `输出: "0"` 题解中的方法是从前往后,如果遇到的数比后面的大就删掉这个数字。如果删除 阅读全文
posted @ 2020-04-21 21:52 风语如歌j 阅读(154) 评论(0) 推荐(0)
摘要:给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 `输出: true` `示例 2:` `输出: false` 如果要到达终点,那么就要找到可以到达终点的那个点,依次这样向前找,如果最后到达不了开始点,就说明不行 阅读全文
posted @ 2020-04-19 11:04 风语如歌j 阅读(124) 评论(0) 推荐(0)
摘要:老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 相邻的孩子中,评分高的孩子必须获得更多的糖果。 那么这样下来,老师至少需要准备多少颗糖果呢? `输出: 5` `示例 阅读全文
posted @ 2020-04-15 23:00 风语如歌j 阅读(139) 评论(0) 推荐(0)
摘要:给定一个已排序的正整数数组 nums,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。 `输出: 1` `根据 nums 里现有的组合 [1], 阅读全文
posted @ 2020-04-14 22:51 风语如歌j 阅读(248) 评论(0) 推荐(0)
摘要:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6, 3,5, 7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7 阅读全文
posted @ 2020-04-14 21:38 风语如歌j 阅读(1490) 评论(0) 推荐(0)
摘要:给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 1.可以认为区间的终点总是大于它的起点。 2.区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 `示例 2:` `示例 3:` 这道题思路和452题最少的箭引爆气球一样,将所有区间按照结束点排序,开始 阅读全文
posted @ 2020-04-13 14:20 风语如歌j 阅读(151) 评论(0) 推荐(0)
摘要:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串 阅读全文
posted @ 2020-04-13 00:15 风语如歌j 阅读(162) 评论(0) 推荐(0)
摘要:在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。 一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个 阅读全文
posted @ 2020-04-12 00:00 风语如歌j 阅读(189) 评论(0) 推荐(0)
摘要:在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 1。 说明 阅读全文
posted @ 2020-04-11 23:44 风语如歌j 阅读(108) 评论(0) 推荐(0)
摘要:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj = gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的 阅读全文
posted @ 2020-04-10 23:02 风语如歌j 阅读(90) 评论(0) 推荐(0)
摘要:给你一个整数数组 arr。你可以从中选出一个整数集合,并删除这些整数在数组中的每次出现。 返回 至少 能删除数组中的一半整数的整数集合的最小大小。 `输出:2` `大小为 2 的可行集合有 {3,5},{3,2},{5,2}。` `示例 2:` `输出:1` `示例 3:` 输入:arr = [1, 阅读全文
posted @ 2020-04-09 23:18 风语如歌j 阅读(117) 评论(0) 推荐(0)
摘要:假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对 表示,其中 是这个人的身高, 是排在这个人前面且身高大于或等于 的人数。 编写一个算法来重建这个队列。 注意: 总人数少于1100人。 示例 这个题做起来跟阅读理解似的,关键是如何理解这个K值,K值是说排在这个人前面和我一样高或者比我高的人数 阅读全文
posted @ 2020-04-09 14:36 风语如歌j 阅读(135) 评论(0) 推荐(0)
摘要:给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易,但是你每次交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。 返回获得利润的最大值。 示例 1: `输出: 8` ` 阅读全文
posted @ 2020-04-09 14:22 风语如歌j 阅读(157) 评论(0) 推荐(0)
摘要:`有效括号字符串 定义:对于每个左括号,都能找到与之对应的右括号,反之亦然。详情参见题末「有效括号字符串」部分。` `A 或 B 中的元素在原字符串中可以不连续。` `深度最小:max(depth(A), depth(B)) 的可能取值最小。` `answer[i] = 1,seq[i] 分给 B 阅读全文
posted @ 2020-04-04 11:03 风语如歌j 阅读(172) 评论(0) 推荐(0)
摘要:`字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。` `输出: [9,7,8]` `划分结果为 "ababcbaca", "defegde", "hijhklij"。` `像 "ababcbacadefe 阅读全文
posted @ 2020-03-29 11:48 风语如歌j 阅读(89) 评论(0) 推荐(0)
摘要:`给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效。` `它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者` `给定一个括号字符串,返回为使结果字符串有效而必须添加的最少 阅读全文
posted @ 2020-03-27 22:09 风语如歌j 阅读(121) 评论(0) 推荐(0)
摘要:`有一个二维矩阵 A 其中每个元素的值为 0 或 1 。` `输出:39` `转换为 [[1,1,1,1],[1,0,0,1],[1,1,1,1]]` `1 A.length/2) { for(int k = 0; k < A.length; k++) { A[k][j] ^= 1; } break 阅读全文
posted @ 2020-03-26 23:20 风语如歌j 阅读(197) 评论(0) 推荐(0)
摘要:`在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的。` `输出:4` `示例 2:` `输出:3` `示例 3:` `输出:1` `1 stack = new Stack(); for(int i = 0; i < s.length(); i++) { if(stack.isEmpty 阅读全文
posted @ 2020-03-25 23:36 风语如歌j 阅读(158) 评论(0) 推荐(0)
摘要:`有 n 位用户参加活动,他们的 ID 从 0 到 n 1,每位用户都 恰好 属于某一用户组。给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,请你返回用户分组情况(存在的用户组以及每个组中用户的 ID)。` `` `输出:[[5],[0,1,2],[3,4,6] 阅读全文
posted @ 2020-03-24 22:26 风语如歌j 阅读(171) 评论(0) 推荐(0)