首页 > 编程语言 >代码随想录训练营第三十二天|贪心算法

代码随想录训练营第三十二天|贪心算法

时间:2022-11-14 16:46:22浏览次数:61  
标签:return cur nums int res 随想录 ++ 第三十二 贪心

本来这是第三十一天的内容,但是三十一天的时候写成第三十二天的了,因此今天写第三十一天的内容

 

455.分发饼干 

class Solution {
    public int findContentChildren(int[] g, int[] s) {
        Arrays.sort(g);
        Arrays.sort(s);
        int n = g.length;
        int m = s.length;
        if(m==0||n==0){
            return 0;
        }
        int res = 0;
        int j = 0;
        for(int i = 0; i<n; i++){
            if(j>m-1){
                return res;
            }
            while(g[i]>s[j]){
                j++;
                if(j>m-1){
                   return res;
            }
               
           }
            j++;
            res++;
        }
        return res;
    }
}

进行排序,然后再对比,试图让最小的size符合最小人的胃口

  

376. 摆动序列 

class Solution {
    public int wiggleMaxLength(int[] nums) {
        int n = nums.length;
        if (n == 1){
            return n;
        }
        int cur = 0;
        int pre = 0;
        
        int res = 1;
        for(int i = 1; i< n; i++){
            cur = nums[i] - nums[i-1];
            
            if(cur>0&&pre<=0 || cur < 0 && pre >= 0){
                res++;
                pre = cur;
            }
        }
        return res;
    }
}

如果有正负转换的变动,那么就计数+1;

53. 最大子序和 

class Solution {
    public int maxSubArray(int[] nums) {
        int n = nums.length;
        if(n==1){
            return nums[0];
        }
        int res = nums[0];


        int sum  = nums[0];
        for(int i = 1; i<n; i++){
            if(sum >= 0){
                sum += nums[i];
            }
            else{
                sum = nums[i];
            }
            res = Math.max(res, sum);
        }
        return res;



    }
}

不断往前,如果结果为负数就舍弃这段结果,重新开始

 

贪心算法只有思路没有模版

标签:return,cur,nums,int,res,随想录,++,第三十二,贪心
From: https://www.cnblogs.com/catSoda/p/16889444.html

相关文章

  • 代码随想录算法训练营第十五天| 二叉树的层序遍历
    二叉树的层序遍历:https://leetcode.cn/problems/binary-tree-level-order-traversal/层序遍历使用队列实现:用size记录当前层的个数,size--控制弹出元素的个数,保证当前层的......
  • 20221113_T2A_背包贪心
    题意Steve的城堡正在被大量的怪物袭击。共有\(n\)个怪物正在袭击城堡,第\(i\)个怪物的攻击力为\(a_i\),防御力为\(b_i\)。城内有\(m\)个怪物猎人,第\(j\)个怪物......
  • 代码随想录训练营第三十一天 | 贪心算法
    贪心算法的核心思想是在每一步决策中都找到局部最优解122.买卖股票的最佳时机classSolution{publicintmaxProfit(int[]prices){intn=prices.le......
  • Android实战简易教程-第三十二枪(自定义View登录注册界面EditText-实现一键清空)
    自定义View实现登录注册页面的EditText一键清空功能,效果如下:输入框输入文字后自动出现一键清空键,输入框文字为空时,一键清空键隐藏,下面我们看一下如何通过自定义View实现这......
  • 贪心
    455.分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的......
  • 代码随想录Day22
    LeetCode222.完全二叉树的节点个数 给出一个完全二叉树,求出该树的节点个数。示例1:输入:root=[1,2,3,4,5,6]输出:6示例2:输入:root=[]输出:0示例3:输入:ro......
  • 20221007_T1A-_贪心/树形dp
    题意给定一个树,求经过\(k\)个不同点所需要的步骤。以及给出一个方案。题解赛时得分:5/100不知道赛时哪里写错了。能想到找出以1开始的直径,直径上的点是必定会走的......
  • 【UOJ 494】DNA序列(贪心)(Lyndon分解)
    DNA序列题目链接:UOJ494题目大意给你n个字符串,要你每个都选一段非空前缀按某种顺序拼在一起使得形成的大字符串字典序最小。思路假设如果知道插入的顺序,我们要怎么......
  • 代码随想录Day21
    LeetCode111.给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,......
  • 代码随想录day50 | 123.买卖股票的最佳时机III 188. 买卖股票的最佳时机 IV
    123.买卖股票的最佳时机III题目|文章思路相比于122.买卖股票的最佳时机III,这道题多了一道限制,就是买卖次数的限制,我的想法是通过增加一维来实现。文章中给出的方法则......