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

笔试——Day42

文章目录

  • 第一题
    • 题目
    • 思路
    • 代码
  • 第二题
    • 题目
    • 思路
    • 代码
  • 第三题
    • 题目
    • 思路
    • 代码

第一题

题目

最大差值

在这里插入图片描述

思路

模拟
遍历数组,维护a[i]之前的最小值

代码

class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param A int整型vector * @param n int整型 * @return int整型*/int getDis(vector<int>& a, int n) {// write code hereint minPrev = a[0];int res = 0;for(int i = 1; i < n; i++){minPrev = min(minPrev, a[i]);res = max(res, a[i] - minPrev);}return res;}
};

第二题

题目

兑换零钱

在这里插入图片描述

思路

动态规划

代码

// https://www.nowcoder.com/practice/67b93e5d5b85442eb950b89c8b77bc72?tpId=230&tqId=40432&ru=/exam/oj
#include <iostream>
#include <cstring>
using namespace std;const int N = 10010;
const int M = 5010;int a[N];
int dp[M];
int n, aim;int main()
{cin >> n >> aim;for(int i = 1; i <= n; i++) cin >> a[i];memset(dp, 0x3f, sizeof dp);// dp[i][j]:从前i个纸币中挑选,正好总和为j,此时的最少张数  // 不选a[i]:dp[i][j] = dp[i - 1][j]// 选1个a[i]  :dp[i][j] = dp[i - 1][j - a[i]] + 1// 选2个a[i]  : dp[i][j] = dp[i - 1][j - 2 * a[i]] + 2// ...// dp[i][j] = dp[i][j - a[i]] + 1// dp[i][j] = min(dp[i - 1][j], dp[i][j - a[i]] + 1)dp[0] = 0; // 0张纸币凑成0元for(int i = 1; i <= n; i++){for(int j = a[i]; j <= aim; j++){dp[j] = min(dp[j], dp[j - a[i]] + 1);}}if(dp[aim] >= 0x3f) cout << -1 << endl;else cout << dp[aim] << endl;return 0;
}

第三题

题目

小红的子串

在这里插入图片描述

思路

滑动窗口

代码

// https://ac.nowcoder.com/acm/problem/260770
#include <iostream>using namespace std;int n, l, r;
string s;long long find(int x)
{if(x == 0) return 0;int hash[26] = {0};int left = 0, right = 0;long long res = 0;int kind = 0;while(right < n){if(hash[s[right] - 'a']++ == 0) kind++;while(kind > x){hash[s[left] - 'a']--;if(hash[s[left] - 'a'] == 0) kind--;left++;}res += right - left + 1;right++;}return res;
}int main()
{cin >> n >> l >> r >> s;cout << find(r) - find(l - 1) << endl;return 0;
}
http://www.lryc.cn/news/624288.html

相关文章:

  • 【lucene】tip文件详解
  • 高并发网络编程实战:深入理解epoll客户端的事件驱动模型
  • HAProxy使用方法以及和LVS区别
  • 图形自动化:pynput实现Win11系统动作点击录制与回放
  • axure chrome 浏览器插件的使用
  • 大数据计算引擎(三)——Elasticsearch入门
  • 某储备土地前期开发项目控制保护区桥梁自动化监测
  • Git版本控制与协作
  • 数字时代著作权侵权:一场资本与法律的博弈
  • PYTHON让繁琐的工作自动化-函数
  • week2-[循环结构]找出正数
  • Vue3 中使用 Element Plus 完整指南
  • 从哲学(业务)视角看待数据挖掘:从认知到实践的螺旋上升
  • [数据结构] ArrayList 与 顺序表
  • 基于W55MH32Q-EVB 实现 HTTP 服务器配置 OLED 滚动显示信息
  • AI重塑商业格局:从多模态生成到智能应用的2025行业变革与机遇
  • 重温k8s基础概念知识系列四(服务、负载均衡和联网)
  • 视频讲解:CatBoost、梯度提升 (XGBoost、LightGBM)对心理健康数据、交通流量及股票价格预测研究
  • 【网络安全实验报告】实验七:简单的防火墙搭建实验
  • 数据结构(03)——线性表(顺序存储和链式存储)
  • HTTP协议-4-浏览器是怎么抉择HTTP版本的?
  • LeetCode 45.跳跃游戏II:贪心策略下的最少跳跃次数求解
  • 如何在windows下使用usbview查看USB设备信息
  • 局域网视频软件BeeWorks,内网顺畅沟通
  • CloudBase AI ToolKit + VSCode Copilot:打造高效智能云端开发新体验
  • 8.19 note
  • AI心理助手开发文档
  • 《Python学习之使用标准库:从入门到实战》
  • ST05跟踪MRP的运行(MD01)过程
  • Day8--滑动窗口与双指针--1004. 最大连续1的个数 III,1658. 将 x 减到 0 的最小操作数,3641. 最长半重复子数组