Day 23 贪心算法part01| LeetCode 455.分发饼干,376.摆动序列,53.最大子序和

455.分发饼干

455. 分发饼干

 class Solution {
        public int findContentChildren(int[] g, int[] s) {

            Arrays.sort(g);
            Arrays.sort(s);
                int index=s.length-1;
                int count=0;
                for (int i=g.length-1;i>=0;i--)
                {
                    if(index>=0&&s[index]>=g[i])
                    {
                        count++;index--;
                    }
                    
                }
                return count;
        }
    }

376.摆动序列

376. 摆动序列

  class Solution {
        public int wiggleMaxLength(int[] nums) {

                //一:上下坡中存在平坡
                //二:数组首尾两端如何处理:默认序列最后一个有峰值
                //三:单调坡中存在平坡
                    
            int res=1;//存放结果,默认序列最后一个有峰值
            int prediff=0,curdiff=0;
            //单个元素
            if(nums.length==1) return 1;
            //两个不同元素
            else if(nums.length==2&&nums[0]!=nums[1]) return 2;
           
                for(int i=0;i<nums.length-1;i++)
                {
                   
                    curdiff=nums[i+1]-nums[i];

                    if((prediff<=0&&curdiff>0)|| (prediff>=0&&curdiff<0))
                    {
                        res++;
                        prediff=curdiff;//只有当摆动变化时,更新prediff
                    }
                    
                
                }
                return res;

        }

    }

53.最大子序和

53. 最大子数组和

class Solution {
    public int maxSubArray(int[] nums) {



            int count=0;
            int max=Integer.MIN_VALUE;

            for(int i=0;i<nums.length;i++)
            {
                count+=nums[i];
                if(count>max) max=count;
                if(count<0) count=0;//连续和小于0
            }
            return max;
        }
    
    }

posted on 2024-09-23 22:18  FreeDrama  阅读(3)  评论(0编辑  收藏  举报

导航