当前位置: 首页 > article >正文

题解:贪心

455. 分发饼干 - 力扣(LeetCode)

#include<iostream>
#include<bits/stdc++.h>
using namespace std;

const int N=10010;
int g[N],s[N];

int main()
{
    int n,m;//胃、饼干
    cin>>n>>m;

    for(int i=1;i<=n;i++)cin>>g[i];
    for(int j=1;j<=m;j++)cin>>s[j];

    int res=0;//满足数

    //1 3 4 11     //胃口g
    //1 3 7 10    //饼干s
    int index=m;
    for(int i=n;i>=1;i--)
    {
        if(index>=0 && s[index]>=g[i])
        {
            index--;
            res++;
        }
    }
    cout<<res;

    return 0;
}

376. 摆动序列 - 力扣(LeetCode)

class Solution 
{
public:
    int wiggleMaxLength(vector<int>& nums) 
    {
        if(nums.size()==1)return 1;
        else
        {
            int prediff=0,curdiff=0;
            int result=1;

            for(int i=0;i<nums.size()-1;i++)
            {
                curdiff=nums[i+1]-nums[i];
                if((prediff>=0 && curdiff<0)||(prediff<=0 && curdiff>0))
                {
                    result++;
                    prediff=curdiff;
                }
            }
            return result;
        }
    }
    
};

53. 最大子数组和 - 力扣(LeetCode)

class Solution 
{
public:
    int maxSubArray(vector<int>& nums) 
    {
        int sum=0;
        int result=nums[0];
        for(int i=0;i<nums.size();i++)
        {
            sum+=nums[i];
            if(sum>result)result=sum;
            if(sum<0)sum=0;
        }
        return result;
    }
};

122. 买卖股票的最佳时机 II - 力扣(LeetCode)

class Solution 
{
public:
    int maxProfit(vector<int>& prices) 
    {
        int sum=0;
        for(int i=1;i<prices.size();i++)
        {
            if((prices[i]-prices[i-1])>0)
            sum+=prices[i]-prices[i-1];
        }
        return sum;
    }
};
class Solution 
{
public:
    int maxProfit(vector<int>& prices) 
    {
        int sum=0;
        for(int i=1;i<prices.size();i++)sum+=max(prices[i]-prices[i-1],0);
        return sum;
    }
};

55. 跳跃游戏 - 力扣(LeetCode)

class Solution 
{
public:
    bool canJump(vector<int>& nums) 
    {
        int cover=0;
        if(nums.size()==1)return true;
        
        for (int i = 0; i <= cover; i++)
        {
            cover=max(nums[i]+i,cover);
            if(cover>=nums.size()-1)return true;
        }
        return false;
    }
};

45. 跳跃游戏 II - 力扣(LeetCode)

class Solution 
{
public:
    int jump(vector<int>& nums) 
    {
        if(nums.size()==1)return 0;
        int result=0,cover=0,next=0;
        for(int i=0;i<nums.size();i++)
        {
            next=max(next,nums[i]+i);
            if(i==cover)
            {
                if(cover!=nums.size()-1)
                {
                    result++;
                    cover=next;
                    if(cover==nums.size()-1)
                    break;
                }
            }
        }
        return result;
    }
};

1005. K 次取反后最大化的数组和 - 力扣(LeetCode)

134. 加油站 - 力扣(LeetCode)

135. 分发糖果 - 力扣(LeetCode)

860. 柠檬水找零 - 力扣(LeetCode)

406. 根据身高重建队列 - 力扣(LeetCode)


http://www.kler.cn/a/590994.html

相关文章:

  • pytorch小记(九):pytorch中创建指定形状的张量: torch.empty
  • Spring 导入 XML 配置文件:@ImportResource
  • Educational Codeforces Round 176 (Rated for Div. 2)(A-D)
  • OctoTools:一个具有复杂推理可扩展工具的智体框架
  • 人工智能混合编程实践:Python AgentOCR进行文本识别
  • LeetCode 2614.对角线上的质数:遍历(质数判断)
  • 三个线程按顺序交替打印 A B C
  • 【玩转正则表达式】Python、Go、Java正则表达式解释器的差异解析(附示例)
  • GitHub Copilot两期连看:开发流程全览及 Copilot 在 SQL 开发中的妙用
  • 【QT:多线程、锁】
  • OceanBase 读写分离最佳实践
  • MySQL原理:逻辑架构
  • 开源模型中的 Function Call 方案深度剖析
  • qwen2.5-vl复现日志
  • Certbot实现SSL免费证书自动续签(CentOS 7 + nginx/apache)
  • Python刷题:流程控制(上)
  • Pytest项目_day01(HTTP接口)
  • C++八大常见的设计模式的实现与实践指南
  • 服务器防火墙根据什么特征来过滤数据包?
  • H3C SecPath SysScan-AK 系列漏洞扫描系统