C/C++每日一练20

第一题:今此一役小红所向无敌

题目解析 :假设题目为 "在数组中找到唯一出现奇数次的元素"。由于其他元素出现偶数次,通过异或运算,相同元素异或为 0,0 与目标元素异或结果即为目标值。思路 :利用异或特性:a^a=0,0^a=a。遍历数组,所有元素异或后,偶数次元素抵消,结果就是目标元素。代码

cpp

运行

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

int main() {
    int n;
    cin >> n;
    vector<int> nums(n);
    for (int i = 0; i < n; ++i) {
        cin >> nums[i];
    }
    int result = 0;
    for (int num : nums) {
        result ^= num;
    }
    cout << result << endl;
    return 0;
}

第二题:连续子数组最大的和

题目解析 :使用动态规划思想,current表示以当前元素结尾的最大子数组和,每次更新current = max(nums[i], current + nums[i]),同时用max_sum记录全局最大值。思路 :动态规划,用 current 跟踪以当前元素结尾的最大子数组和。对每个元素,选择 "只取当前元素" 或 "当前元素 + 之前的最大和",更新 current 后,用 max_sum 记录全局最大值。代码

cpp

运行

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

int main() {
    int n;
    cin >> n;
    vector<int> nums(n);
    for (int i = 0; i < n; ++i) {
        cin >> nums[i];
    }
    int max_sum = nums[0], current = nums[0];
    for (int i = 1; i < n; ++i) {
        current = max(nums[i], current + nums[i]);
        max_sum = max(max_sum, current);
    }
    cout << max_sum << endl;
    return 0;
}

第三题:非对称之美

题目解析 :假设题目为 "判断字符串是否为非回文串",即字符串正序与逆序不相同。通过反转字符串后与原字符串比较,不等则为 "非对称"。思路 :若判断字符串非对称,反转字符串后与原串比较,若不同则为非对称。若题目是数组非对称,可比较数组与反转数组是否不同,或判断是否存在 i 使 nums i≠nums n-1-i代码

cpp

运行

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

int main() {
    string s;
    cin >> s;
    string reversed_s = s;
    reverse(reversed_s.begin(), reversed_s.end());
    cout << (s != reversed_s ? "Yes" : "No") << endl;
    return 0;
}

谢谢

相关推荐
whcyhhh1 分钟前
头歌实践教学平台:数据科学与大数据技术导论(十六)
大数据·开发语言·python
萌动的小火苗1 分钟前
数据结构面试题【无答案】
c语言·开发语言·数据结构·链表
宸津-代码粉碎机4 分钟前
AI工程化高阶实战|从Demo到生产落地核心架构、全套源码与避坑指南
java·大数据·开发语言·人工智能·python·架构
XR1234567881 小时前
办公网自主创新建设怎么选?信创办公场景的选型逻辑
开发语言·php
郝学胜-神的一滴1 小时前
Effective Python 条款4:字符串格式化大乱斗
开发语言·网络·python·程序人生·软件工程
Ramble_Naylor1 小时前
只借不占:Rust 的引用与借用
开发语言·rust
FreeTinker2 小时前
Java文件服务器的技术选型与实现路径:从嵌入式工具到企业级系统
java·服务器·开发语言
2501_906565122 小时前
小创 · 智能助手
开发语言·c#
汉克老师2 小时前
CSP-J 初赛(以满分为目标):第十五课《结构体、排序与自定义比较——从“给数字排队”到“给一群人排队”》
c++·csp-j·小学生·学c++编程
benchmark_cc2 小时前
1000只ETF的5分钟K线如何批量获取?QuantDash分页策略与高性能Python实践
开发语言·人工智能·爬虫·python·算法·quantdash·量化数据源