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;
}

谢谢

相关推荐
Sarvartha5 小时前
final 关键字
java·开发语言
fpcc5 小时前
c++编程实践—堆和栈越界调试
c++
程序员Sunday6 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday
zhangzeyuaaa6 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
weiabc7 小时前
MSYS2 UCRT64 + g++ C++ 中文输出乱码 完整全过程
c++
谢亮_vipxieliang8 小时前
用 PHP 构建轻量级 REST API:从路由到鉴权的完整实践
开发语言·后端·php
Escalating_xu8 小时前
【C 语言】数据在内存中的存储:补码、大小端、整型陷阱与 IEEE 754 全解析
java·c语言·网络
思无邪668 小时前
用 AI 做 JS 逆向:从抓包到复现的完整方法论
开发语言·javascript·人工智能
灯澜忆梦8 小时前
【面向对象编程C++】| 基础语法
java·c++·算法
H.莓飛8 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法