C/C++每日一练21

第一题:爱丽丝的人偶

题目解析 :假设题目为 "人偶重量排序,找出最轻的前 3 个",核心是对数组排序后取前 3 个元素。思路 :读取人偶重量数组,使用 sort 函数升序排序,然后输出前 3 个元素。代码:

cpp

运行

cpp 复制代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> weights(n);
    for (int i = 0; i < n; ++i) {
        cin >> weights[i];
    }
    sort(weights.begin(), weights.end());
    for (int i = 0; i < 3; ++i) {
        cout << weights[i] << " ";
    }
    return 0;
}

第二题:集合

题目解析 :假设题目为 "求两个集合的交集",即找出同时存在于两个集合中的元素,且结果无重复。思路 :用 unordered_set 存储第一个集合的元素,遍历第二个集合,若元素在第一个集合中且未被记录,则加入结果集。代码:

cpp

运行

cpp 复制代码
#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    vector<int> a(n), b(m);
    unordered_set<int> s;
    for (int num : a) {
        s.insert(num);
    }
    unordered_set<int> res_set;
    for (int num : b) {
        if (s.count(num)) {
            res_set.insert(num);
        }
    }
    vector<int> res(res_set.begin(), res_set.end());
    for (int num : res) {
        cout << num << " ";
    }
    return 0;
}

第三题:最长回文子序列

题目解析 :最长回文子序列是指字符串中最长的回文序列,子序列可不连续。用动态规划,dp[i][j]表示 s i..j 的最长回文子序列长度。思路 :当 s i == s j 时,dp[i][j] = dp[i+1][j-1] + 2;否则dp[i][j] = max(dp[i+1][j], dp[i][j-1])。从长度为 1 的子串开始递推,最终dp[0][n-1]即为结果。代码:

cpp

运行

cpp 复制代码
#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    string s;
    cin >> s;
    int n = s.size();
    vector<vector<int>> dp(n, vector<int>(n, 0));
    for (int i = n-1; i >= 0; --i) {
        dp[i][i] = 1;
        for (int j = i+1; j < n; ++j) {
            if (s[i] == s[j]) {
                dp[i][j] = dp[i+1][j-1] + 2;
            } else {
                dp[i][j] = max(dp[i+1][j], dp[i][j-1]);
            }
        }
    }
    cout << dp[0][n-1] << endl;
    return 0;
}

谢谢

相关推荐
蜗牛互联网6 分钟前
Java HttpClient 调用 Gemini 图像理解与金额字段校验
java·开发语言·人工智能·后端·python
蜗牛互联网8 分钟前
Python Responses API视觉输入与本地金额校验最小实现
java·开发语言·人工智能·后端·python
longlongzihan15 分钟前
LeetCode 41. 缺失的第一个正数:从基础解法到原地哈希
c++·算法·leetcode
czq_268671948735 分钟前
Python打卡第34天
开发语言·python·机器学习
Lhan.zzZ1 小时前
Qt/QML:业务记录单展示、签名确认与 PDF 导出开发
c++·qt·pdf
傲世仙尊1 小时前
类和对象上-class与struct实例化内存对齐与this指针
c++
C++ 老炮儿的技术栈1 小时前
C++ const 的3个核心作用
服务器·c语言·c++·算法·c
小黄人软件1 小时前
粘贴助手C++版 支持 Windows 7 / 10 / 11 不会出现缺少api-ms-win-core-path-11-1-0.dll
开发语言·c++·windows
有毒的教程1 小时前
Dev-C++ 避免爆栈(Stack Overflow)完整方案
c++·算法·深度优先
半亩码田1 小时前
C#转Python第4.7篇:logging:Python 的标准日志库
开发语言·python·c#