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

【今日三题】小易的升级之路(模拟+gcd) / 礼物的最大价值(动态规划) / 对称之美(字符串哈希)

头像
⭐️个人主页:@小羊
⭐️所属专栏:每日两三题
很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~

动图描述

目录

    • 小易的升级之路(模拟+gcd)
    • 礼物的最大价值(动态规划)
    • 对称之美(字符串哈希)


小易的升级之路(模拟+gcd)

  • 小易的升级之路

在这里插入图片描述

主要考察最大公约数的求法。

#include <iostream>
using namespace std;

int gcd(int a, int b)
{
    return b == 0 ? a : gcd(b, a % b);
}
int main() 
{
    int n, a;
    while (cin >> n >> a)
    {
        while (n--)
        {
            int b;
            cin >> b;
            if (a >= b) a += b;
            else a += gcd(a, b);
        }
        cout << a << endl;
    }
    return 0;
}

礼物的最大价值(动态规划)

  • 礼物的最大价值

在这里插入图片描述

经典路径dp问题。多加一行多加一列后需要注意下标正确映射。

class Solution {
public:
    int maxValue(vector<vector<int> >& grid) {
        int m = grid.size(), n = grid[0].size();
        vector<vector<int>> dp(m + 1, vector<int>(n + 1));
        for (int i = 1; i <= m; i++)
            for (int j = 1; j <= n; j++)
                dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + grid[i - 1][j - 1];
        return dp[m][n];
    }
};

对称之美(字符串哈希)

  • 对称之美

在这里插入图片描述

将所有字符串读入字符串数组中,根据回文串的特点使用双指针遍历从两头向中间遍历,在遍历的过程中如果两边的字符串中没有相同的字符,则不会构成回文串。

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

int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        int n;
        cin >> n;
        vector<string> vs(n);
        for (int i = 0; i < n; i++) cin >> vs[i];
        int l = 0, r = n - 1;
        for (; l < r; l++, r--)
        {
            int hash[26] = {};
            int flag = 0;
            for (auto ch : vs[l]) hash[ch - 'a']++;
            for (auto ch : vs[r])
            {
                if (hash[ch - 'a'])
                {
                    flag = 1;
                    break;
                }
            }
            if (!flag) 
            {
                cout << "No" << endl;
                break;
            }
        }
        if (l >= r) cout << "Yes" << endl;
    } 
    return 0;
}

本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~

头像

相关文章:

  • 50道SQL练习题
  • HarmonyOS:Map Kit简介
  • ocr-不动产权识别
  • AI推理强,思维模型也有功劳【57】复利效应
  • 基于 RabbitMQ 优先级队列的订阅推送服务详细设计方案
  • flutter 桌面应用之窗口自定义
  • 【Ubuntu】【树莓派】Linux系统的远程终端登录、远程图形桌面访问、 X图形窗口访问和文件传输操作
  • PHP防火墙代码,防火墙,网站防火墙,WAF防火墙,PHP防火墙大全
  • 程序化广告行业(83/89):行业术语与4A广告代理公司解析
  • idea 2024 build菜单不见了
  • AUTOSAR图解==>AUTOSAR_SWS_TimeSyncOverFlexRay
  • Week 1: Time Complexity, Rectangle Geometry
  • 基于Termux的Android平台C++控制台程序开发指南
  • 速盾:高防CDN的原理和高防IP一样吗?
  • yum的基本操作和vim指令
  • 深翻页问题剖析与解决方案:原理与 Java 实践
  • 链表-算法小结
  • Pytorch深度学习框架60天进阶学习计划 - 第41天:生成对抗网络进阶(一)
  • 《LNMP架构+Nextcloud私有云超维部署:量子级安全与跨域穿透实战》
  • 手动部署内网穿透
  • 全红婵旧伤复发,缺席全国跳水冠军赛
  • 上海普陀:原则同意将工业河更名为同济湾河
  • 达恩当选罗马尼亚总统
  • 海军“吉祥方舟”号医院船开展海上卫勤演练
  • 国家统计局:4月社会消费品零售总额同比增长5.1%
  • 波兰总统选举投票开始,将是对亲欧路线的一次严峻考验