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

笔试——Day44

文章目录

  • 第一题
    • 题目
    • 思路
    • 代码
  • 第二题
    • 题目
    • 思路
    • 代码
  • 第三题
    • 题目
    • 思路
    • 代码1:动态规划
    • 代码2 : 贪心 + 二分

第一题

题目

最小差值

在这里插入图片描述

思路

排序+遍历

相邻两两比较最小值,注意INT_MAX - INT_MIN 会溢出,使用 long long

代码

class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可* 求最小差值* @param a int整型vector 数组a* @return int整型*/int minDifference(vector<int>& a) {// write code heresort(a.begin(), a.end());long long res = a[1] - a[0];for(int i = 2; i < a.size(); i++){res = min(res, (long long)a[i] - a[i - 1]);}return res;}
};

第二题

题目

kotori和素因子

在这里插入图片描述

思路

DFS

  • 每一层可选的数为当前位置的素因子;

代码

// https://ac.nowcoder.com/acm/problem/50042
#include <iostream>
using namespace std;const int N = 11;
const int M = 1010;int n, arr[N];
bool visited[M];
int path;
int res = 0x3f3f3f3f;bool is_prime(int x)
{if(x < 2) return false;for(int i = 2; i * i <= x; i++){if(x % i == 0) return false;}return true;
}void dfs(int pos)
{if(pos == n){res = min(res, path);return ;}for(int i = 2; i <= arr[pos]; i++){if(!visited[i] && is_prime(i) && arr[pos] % i == 0){visited[i] = true;path += i;dfs(pos + 1);path -= i;visited[i] = false;}}
}int main()
{cin >> n;for (int i = 0; i < n; i++){cin >> arr[i];}dfs(0);if(res == 0x3f3f3f3f){cout << "-1" << endl;}else{cout << res << endl;}return 0;
}

第三题

题目

dd爱科学1.0

在这里插入图片描述

思路

在最⻓⾮下降⼦序列的基础上,对不是最⻓的部分进⾏更换

  • 使用贪心 + 二分;动态规划 O(N^2)会超时

代码1:动态规划

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;const int N = 1e6 + 10;int n;
string s;
int dp[N]; // dp[i] 表示以第i个字符结尾的最长非递减子序列长度int main() 
{cin >> n >> s;int max_len = 0;for (int i = 0; i < n; i++) {dp[i] = 1;for (int j = 0; j < i; j++) {if (s[j] <= s[i]) {dp[i] = max(dp[i], dp[j] + 1);}}max_len = max(max_len, dp[i]);}cout << n - max_len << endl;return 0;
}

代码2 : 贪心 + 二分

// https://ac.nowcoder.com/acm/problem/221822
#include <iostream>
#include <string>using namespace std;const int N = 1e6 + 10;int n;
string s;char dp[N]; // 长度为N的的所有子序列中最小的末尾
int res;int main()
{cin >> n >> s;for(int i = 0; i < n; i++){char ch = s[i];// ch 放在哪if(res == 0 || ch >= dp[res]){dp[++res] = ch;}else{// 二分查找int l = 1, r = res;while(l < r){int mid = (l + r) / 2;if(dp[mid] <= ch) l = mid + 1;else r = mid;}dp[l] = ch;}}cout << n - res << endl;return 0;
}
http://www.lryc.cn/news/626822.html

相关文章:

  • 域名加白怎么做
  • 实战:本地大模型+function Calling,获取北京天气
  • 保姆级Debezium抽取SQL Server同步kafka
  • JSON::Value 功能详解:从三目运算符到高级用法
  • Pytest项目_day20(log日志)
  • PyTorch API 2
  • GPT-5 上线风波深度复盘:从口碑两极到策略调整,OpenAI 的变与不变
  • C++开发/Qt开发:单例模式介绍与应用
  • 拓扑排序判断环 P1347 排序题解
  • 第二十七天:游戏组队问题
  • 跨平台 RTSP/RTMP 播放器工程化实践:低延迟与高稳定性的挑战与突破
  • Redisson最新版本(3.50.0左右)启动时提示Netty的某些类找不到
  • pip 安装常见错误及实例化解决办法大全
  • Tomcat部署与HTTP协议详解
  • 凸问题-非凸问题-非凸模型
  • 第十四届“中国软件杯”大赛晋级现场总决赛名单公布
  • PyTorch API 6
  • 单片机通信协议核心关系梳理笔记(UART/USART/232/485/SPI/12C/LIN/BLE/WIFI)
  • Spring Boot 3.4.x 性能优化实战:用 Undertow 替换 Tomcat 全指南​
  • JavaScript 性能优化实战:从原理到落地的完整指南
  • 【OneAI】使用Rust构建的轻量AI网关
  • 【Axure高保真原型】拖拉拽画圆
  • JavaScript 性能优化实战(易懂版)
  • 实验8.20
  • LeetCode 刷题【47. 全排列 II】
  • 一种融合AI与OCR的施工许可证识别技术,提升工程监管效率,实现自动化、精准化处理。
  • 【解决方案】powershell自动连接夜神adb端口
  • 深入解析RAGFlow六阶段架构
  • 结合SAT-3D,运动+饮食双重养腰新方式
  • 十二,数据结构-链表