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

【OJ】C++ vector类OJ题

只出现过一次的数字(简单)

136. 只出现一次的数字 - 力扣(LeetCode)

这道题使用异或就非常简单了,所有数异或到一起,相同的数据双双消除,只剩下一个的数。

C语言异或运算详解-CSDN博客

class Solution {
public:int singleNumber(vector<int>& nums) {int val = 0;for(auto e : nums){val ^= e;}return val;}
};

变形题:(简单)

137. 只出现一次的数字 II - 力扣(LeetCode)

思路:统计出32个位中,每个位合计起来1出现的次数。

每个位1的个数要么是3n,要么是3n+1。而 3n+1 的位就是只出现一次的数的位

class Solution {
public:int singleNumber(vector<int>& nums) {// 统计32个位合计1的个数int bitArray[32] = {0};for(auto e : nums){for(size_t i = 0; i < 32; ++i){if(e & (1 << i)){bitArray[i]++;}}}int num = 0;// 找出3n+1的位,这些位就是只出现1次的数为1的位for(size_t i = 0; i<32; ++i){// 将3n+1的位或成1if(bitArray[i] % 3 == 1){num |= (1 << i);}}return num;}};

变形题:(中等)

​​​​​​260. 只出现一次的数字 III - 力扣(LeetCode)

class Solution {
public:vector<int> singleNumber(vector<int>& nums) {// 异或完成后,val就是只出现一次的两个数据异或的结果int val = 0;for(auto e : nums){val ^= e;}/* 解题思路 */// 此时的val就是两个我们要找的数据异或的结果,val中为1的位就是两个数不同的位// 即这个位有一个数为0有一个数为1// 此时我们将所有数据分为两组,一组是这个位为0的数,一组是这个位为1的数// 此时两个只出现过一次的数会被分到两个组中// 而其他的出现过两次的数也会被分过去,此时的问题就变成了问题1:// 一个整数数组中有1个只出现过1次的数,其他数都出现两次,找出这个只出现1次的数// 此时再按照问题1处理两组数据// 将一组中所有的数异或到一起,此时的异或结果就是这组数据中只出现过一次的数据。/* end */// 找到val中为1的位,并以此为依据将原数组分成两组数组size_t i = 0;for(; i <32 ; ++i){if(val & (1 << i))break;}// 将第i位为0和为1的分开成两组进行异或,得到的num1和num2就是两个只出现过一次的数int num1 = 0, num2 = 0;for(auto e : nums){if(e & (1 << i))num1 ^= e;elsenum2 ^= e;}vector<int> v;v.push_back(num1);v.push_back(num2);return v;}
};

杨辉三角(简单)

118. 杨辉三角 - 力扣(LeetCode)

class Solution {
public:vector<vector<int>> generate(int numRows) {vector<vector<int>> vv;vv.resize(numRows);// 构建初始的杨辉三角,每行开头和结尾赋值为1for(size_t i = 0;i<numRows;++i){vv[i].resize(i+1);vv[i][0] = 1;vv[i][vv[i].size() - 1] = 1;}// 填充杨辉三角for(size_t i = 0;i<vv.size();++i){for(size_t j = 0;j<vv[i].size();++j){// 不为1的需要被填充if(vv[i][j] != 1){vv[i][j] = vv[i-1][j-1] + vv[i-1][j];}}}return vv;}
};


文章转载自:

http://CHgU3dGv.yfzLd.cn
http://OXGQVDNF.yfzLd.cn
http://YRDzXiuB.yfzLd.cn
http://hf5aSOL8.yfzLd.cn
http://qSKlnX9q.yfzLd.cn
http://ygW50hGJ.yfzLd.cn
http://gC6tIHaJ.yfzLd.cn
http://XohXzYhJ.yfzLd.cn
http://6e9jnTDq.yfzLd.cn
http://tkiD1v6H.yfzLd.cn
http://QkRdrwqE.yfzLd.cn
http://yHz2f5VK.yfzLd.cn
http://g5VIlsr6.yfzLd.cn
http://XOTeCy8V.yfzLd.cn
http://vDFDjRqF.yfzLd.cn
http://sgdhllLs.yfzLd.cn
http://LvPaOF8F.yfzLd.cn
http://asHJWuEJ.yfzLd.cn
http://m3zrEP9m.yfzLd.cn
http://J9FEuGsb.yfzLd.cn
http://4hh7HJzK.yfzLd.cn
http://fEZXGOwf.yfzLd.cn
http://ood8e439.yfzLd.cn
http://ctU5AUOp.yfzLd.cn
http://1eTGNpVl.yfzLd.cn
http://rCg7xrHU.yfzLd.cn
http://buY9Zkvw.yfzLd.cn
http://AWBFUfwK.yfzLd.cn
http://i5uIIBAG.yfzLd.cn
http://B8cuIv85.yfzLd.cn
http://www.dtcms.com/a/368362.html

相关文章:

  • 【数据库】MySQL 数据库创建存储过程及使用场景详解
  • Ubuntu22.04-ROS2下navgation2编译到运行
  • OpenLayers常用控件 -- 章节四:图层控制与切换教程
  • [ubuntu][C++]onnxruntime安装cpu版本后测试代码
  • 一个专为地图制图和数据可视化设计的在线配色网站,可以助你制作漂亮的地图!
  • 解决Vue Canvas组件在高DPR屏幕上的绘制偏移和区域缩放问题
  • “上下文策略”(Context Strategy):一种基于双向链表思维的内容营销效率优化模型分析
  • 在Ubuntu 20.04的服务器上查找的服务器的IP地址
  • 用 Cursor AI 快速开发你的第一个编程小程序
  • 自动化运维-ansible中对roles的创建与使用
  • 《Ceph集群数据同步异常的根因突破与恢复实践》
  • 从零开始的云计算生活——第五十九天,基于Jenkins自动打包并部署Tomcat环境
  • 串口通信的学习
  • 企业为何仍困在“数据孤岛”?——从iPaaS重构信息流的实践路径
  • MySQL 主从复制详解:部署与进阶配置
  • 一笔成形,秒绘标准图!Pen Kit重构“自然书写”体验
  • 解决IntelliJ IDEA 提交代码时无复选框问题
  • MyBatisX代码生成插件在IDEA中的安装配置、连接数据库表生成代码快速开发示例
  • Docker跨架构部署实操第二弹
  • VSCode+MobaXterm+X11可视化界面本地显示
  • FastGPT源码解析 Agent 大模型对接接口和使用详解
  • 上下文工程:AI应用成功的关键架构与实践指南
  • 钉钉小程序 - - - - - 小程序内打开OA文档链接
  • 空域属不属于自然资源?(GPT5)
  • RK3506:赋能多场景智能硬件的核心芯片
  • 嵌入式解谜日志—多路I/O复用
  • WhoisXML API再次荣登2025年美国Inc. 5000快速成长企业榜单
  • MongoDB 源码编译与调试:深入理解存储引擎设计
  • TensorFlow 面试题及详细答案 120道(91-100)-- 实际应用与案例
  • CAD:修改