贪心
九幽孤翎
蜉蝣只有认清自己的渺小,才能有化茧成蝶的一天
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode_剑指Offer45_把数组排成最小的数_贪心
非常有意思的一道题,我自己一开始做的时候,想了一堆排列策略都是错的,没想到其实就是简单的贪心,如果正着拼接比反着拼接小,肯定正着拼接,哈哈。class Solution { public String minNumber(int[] nums) { int n = nums.length; String[] temp = new String[n]; for (int i = 0; i < n; i++) { temp[原创 2022-03-07 11:40:15 · 206 阅读 · 0 评论 -
Leetcode_502_IPO_贪心
class Solution { public int findMaximizedCapital(int k, int w, int[] profits, int[] capital) { int len = profits.length; int now = w; int cnt = k; int[][] projects = new int[len][2]; for (int i = 0; i < len; i原创 2021-09-08 10:34:44 · 154 阅读 · 0 评论 -
Leetcode_56_合并区间_贪心
和之前acm那道一天内看最多的电视节目差不多// 冲刺033class Solution { public int[][] merge(int[][] intervals) { Arrays.sort(intervals, Comparator.comparingInt(o -> o[0])); int len = intervals.length; List<int[]> ans = new LinkedList<>原创 2021-08-29 21:00:06 · 171 阅读 · 0 评论 -
Leetcode_53_最大子序和_贪心
特判一下全负数接着每当出现一段数总和为负数,就全部丢弃每当出现一段数总和为正数,并且增加的是正数,更新答案与标程的动态规划以及分治有异曲同工之妙class Solution { public int maxSubArray(int[] nums) { int ans = 0; int now = 0; boolean flag = true; for (int num : nums) { if (num原创 2021-04-30 00:47:24 · 130 阅读 · 0 评论 -
Leetcode_32_最长有效括号_栈/dp/贪心
看了编程的思路后写的,和标程基本一样我觉得这个压入-1的操作,不是一般人能想到的第一遍写的时候用的是Stack,但所用时间是deque的两倍dp的话是最容易想到的,但方程的推到略有难度最后一种巧妙的贪心,个人觉得也很难想到orzclass Solution { public int longestValidParentheses(String s) { Deque<Integer>stack = new ArrayDeque<Integer>();原创 2021-04-29 23:42:32 · 141 阅读 · 0 评论 -
Leetcode_738_单调递增的数字_贪心
12/15找到第一个比前一位小的位数、将这位以及其后面的位数置9,然后前面一位减1(不够减就置9往前退)class Solution { public int monotoneIncreasingDigits(int N) { char[] s =Integer.toString(N).toCharArray(); for(int i=1;i<s.length;i++){ if(s[i]>=s[i-1]){原创 2020-12-15 22:37:05 · 386 阅读 · 0 评论 -
Leetcode_376_摆动序列_动态规划_贪心
12/12动态规划设定up和down两个变量分别存储尾部上升和尾部下降的最长子序列如果当前元素比前一个元素大,up=down+1对前一个元素,一定有以前一个元素结尾的长度为down的尾部下降子序列,再接上当前元素,就能成为一个尾部上升的子序列,用这个值去更新up同理若当前元素比前一个元素小,用up+1去更新downclass Solution { public int wiggleMaxLength(int[] nums) { int n = nums.length;原创 2020-12-12 09:39:05 · 421 阅读 · 0 评论 -
Leetcode_621_任务调度器_贪心
12/5思路维护出现次数最多的字符的出现次数以及出现次数最多的字符的个数答案为max((maxnum-1)*n+cnt, tasks.length)每个相同的事件间隔为n也就是每n+1个事件中没有重复的将其分为一个组每个组耗费事件为n总耗费时间为(组数-1)*n+出现次数最多的字符的个数因为最后一个组不一定满,耗费时间为出现次数最多的字符的个数class Solution { public int leastInterval(char[] tasks, int n) {原创 2020-12-05 11:07:33 · 370 阅读 · 0 评论 -
Leetcode_659_分隔数组为连续子序列_贪心
12/4初步思路与标程完全相反,不过是可行的第一步也是用两个map分别存各个数出现的次数以及以x结尾的子序列数不同的是,我是让数组数尽量的多以12345为例先处理第一个1将23加入1这个子序列当子序列长度达到3以后,就不再处理这个子序列,并让以3结尾的子序列数+1(注意,第二个map的子序列全部都是长度超过3的)接着处理4,将5加入子序列,此时子序列为45,长度不足3所以除非有一个以3结尾的长度超过3的子序列,不然返回false显示是有的(就是123),那么将第二个map里3的值-1,原创 2020-12-04 09:45:44 · 342 阅读 · 0 评论 -
Leetcode_321_拼接最大数_贪心_单调栈
12/2初步想法(超时,但可以优化)将两个数组合并为一个数组,然后将数组的值存入结构体里,保存该值的原位置。按值的大小进行降序排序,从大到小取值。下面代码的做法是每次遍历一遍结构体数组,选取符合条件的点进入最终的答案数组。这么做的确能解决问题,因为绝对贪心,保证了每次入队点的数值尽可能的大。但很明显,有很多冗余的操作,比如某一个元素被使用过后应该出队,当然这是很好优化的。但还有个问题是有些元素虽然它们的值很大,但它的位置太过靠后了,导致这个值不能立刻放入答案数组,且每次循环都得将他们检索原创 2020-12-02 18:12:45 · 454 阅读 · 0 评论 -
Leetcode_767_重构字符串_贪心
11/30算法假设n为字符串长度maxnum为字符串中出现最多次的字符的出现次数X字符为字符串中出现最多次的字符以出现最多次的字符X为分隔将其余各个字符插入X后方每个X字符后插入一个字符,然后将下一个字符插入下一个X后最后一个X字符插完,再回到第一个X字符后面再插入。所以 除了最后一个X字符后可以为空,其他X字符后必须有至少一个字符。所以只要(n + 1) / 2 >= maxnum则必定有解可以将这种分隔抽象为堆最后将堆合并即可class Solution{pu原创 2020-11-30 12:59:07 · 349 阅读 · 0 评论 -
Leetcode_452_用最少数量的箭引爆气球_贪心
11-23算法排序后贪心因为每个气球都必须得打破,所以从左到右遍历气球(右边界优先),对每一个气球,将击破气球的点右移,使击破的气球尽量多,也就是区间合并,将区间的右边界更新为原区间的右边界和新区间的左边界的最小值,无法合并就创建新区间。debug日志这地方sort必须要用lambda用Comparator return x1-x2这种写法的时候可能会使x1-x2超出int的范围,从而报错class Solution { public int findMinArro原创 2020-11-23 10:49:54 · 332 阅读 · 0 评论 -
Leetcode_134_加油站_思维+贪心
11/18思路画个折线图,假设以0为起点,记录一下从起点到每个点为止的净收入容易发现,更换起点只是让这个折线图上下平移。题目要求每个时间点的总和大于0;就是要求折线图的最底点大于0class Solution { public int canCompleteCircuit(int[] gas, int[] cost) { int all = 0; int minn = Integer.MAX_VALUE; int ans = -1;原创 2020-11-18 20:20:12 · 399 阅读 · 0 评论 -
Leetcode_402_移掉k个数字_贪心
11/15杂记:daily_algorithm的第一天在用一个很蠢的思路写完程序后,心血来潮的去看了看耗时最短的题解,然后按照它的思路仿写了一下。接着又心血来潮(我也不知道为啥这么多心血来潮)地写了写java版本的代码。就纯对着我自己写的c艹代码翻译的写了快一个小时算是深刻体会到了Java与c艹的不同之处吧。Java的代码写起来极其繁琐,但相对应的,安全性要高的多。对比下面JAVA和c艹的代码就能很明显的发现二者之间的区别。这也是我第一次用markdown写东西QAQ题目给定一个以原创 2020-11-15 20:53:50 · 385 阅读 · 0 评论
分享