尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

C/C++每日一练20

C/C++每日一练20 第一题今此一役小红所向无敌题目解析假设题目为 “在数组中找到唯一出现奇数次的元素”。由于其他元素出现偶数次通过异或运算相同元素异或为 00 与目标元素异或结果即为目标值。思路利用异或特性a^a00^aa。遍历数组所有元素异或后偶数次元素抵消结果就是目标元素。代码cpp运行#include iostream #include vector using namespace std; int main() { int n; cin n; vectorint 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运行#include iostream #include vector #include algorithm using namespace std; int main() { int n; cin n; vectorint 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运行#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; }谢谢
返回列表