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

笔试专题(五)

文章目录

  • 游游的水果大礼包(枚举)
    • 题解
    • 代码
  • 买卖股票的最好时机(二)(贪心)
    • 题解
    • 代码
  • 倒置字符串(模拟)
    • 题解
    • 代码

游游的水果大礼包(枚举)

题目链接
在这里插入图片描述

题解

1. 枚举
2. 开始用贪心做的没想到是个错解,贪心是哪个礼包大就选哪个礼包知道这个礼包不够选,再选另一个礼包,比如反例 n = 2 m = 100 a = 3 b = 2,都选一号礼包就是3元,都选二号礼包就是4元
3. 依次枚举一号礼包的个数,再求出2号礼包的个数,1号礼包最大的数量是min(n/2,m),2号礼包剩下的数量是min(n-2*x,(m-x)/2)
4. 其实这种题就是二元一次方程,给了x的范围,y和x有函数的关系

在这里插入图片描述

代码

#include <iostream>
using namespace std;

int main()
{
    int n,m,a,b;
    cin >> n >> m >> a >> b; 
    long long ans = -1;
    // 依次枚举每个1号大礼包,计算出每个2号大礼包
    for(long long i = 0;i <= min(n/2,m);i++)// 计算一号礼包的个数
    {
        // min(n-2*i,(m-i)/2) 计算2号礼包的个数
        long long sum = i*a + b * min(n-2*i,(m-i)/2);
        ans = max(ans,sum);
    }

    cout << ans << '\n';

    return 0;
}

买卖股票的最好时机(二)(贪心)

题目链接
在这里插入图片描述

题解

1. 贪心
只要是呈现上升趋势的就买入再卖出,这样可以获得最大的收益

代码

class Solution 
{
public:
    int maxProfit(vector<int>& prices) 
    {
       // 贪心只要股票的价格是上升趋势的就买入再卖出
       int n = prices.size();
       int sum = 0;
       for(int i = 1;i < n;i++)
       {
            if(prices[i] > prices[i-1]) 
            sum += prices[i] - prices[i-1];
       }

       return sum; 
    }
};

倒置字符串(模拟)

题目链接
在这里插入图片描述

题解

1. 找规律
2. 可以先将整个字符串倒置,再倒置每个单词,使用reverse函数,begin()指向开始的第一个字符,end()指向单词最后一个字符的下一个位置

在这里插入图片描述

代码

#include <iostream>
#include<string>
#include<algorithm>
using namespace std;

int main()
{
    string s;
    // 读入整个字符串,包含空格
    getline(cin,s);
    reverse(s.begin(),s.end());
    
    int left = 0;
    int n = s.size();
    while(left < n)
    {
        int right = left;
        while(right < n && s[right] != ' ')// 找单词
        {
            right++;
        }
        reverse(s.begin() + left,s.begin() + right);
        while(right < n && s[right] == ' ') right++; // 跳过空格
        left = right;// 到达新单词的开头
    }
    cout << s << '\n';

    return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/100936.html

相关文章:

  • 瑞芯微RKRGA(librga)Buffer API 分析
  • 8.4考研408简单选择排序与堆排序知识点深度解析
  • vue3为什么要用引入Composition api
  • PyTorch版本过低导致属性错误-Linux服务器
  • 【操作系统】软中断vs硬中断
  • 探索量子世界的钥匙:薛定谔与薛定谔方程
  • 手机上(ios安卓)如何打开网页控制台
  • WPS宏开发手册——Excel常用Api
  • 解决前端项目中无法识别 .node 文件的依赖安装问题
  • PTA团体程序设计天梯赛——L1-030 一帮一
  • 3.27学习总结 爬虫+二维数组+Object类常用方法
  • wfs.js之h264转码mp4分析
  • python 语法篇(一)
  • 从理论到实践:WGS84与GCJ02坐标系详解及腾讯API坐标转换指南,奥维地图坐标转换
  • 非手性分子发光有妙招:借液晶之力,实现高不对称圆偏振发光
  • JavaScript函数详解
  • 向量数据库介绍及应用
  • 影响HTTP网络请求的因素
  • LeetCode算法题(Go语言实现)_20
  • IPv6 网络访问异常 | 时好时坏 / 部分访问正常
  • STM32H743学习记录
  • SpringBoot (二) 日志系统
  • Python+拉普拉斯变换求解微分方程
  • 如何使用stable diffusion 3获得最佳效果
  • Zynq + FreeRTOS 笔试题1
  • STC89C52单片机学习——第37节: [17-1] 红外遥控(外部中断)
  • 详解list容器
  • socket演示程序2
  • xshell可以ssh连接,但vscode不行
  • 多路IO复用-----epoll和poll和select的区别