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

浙江注册公司网站免费域名申请 tk

浙江注册公司网站,免费域名申请 tk,微信网站开发模板,免费二维码推广平台一、杨辉三角 class Solution { public:vectorvectorint generate(int numRows) {} }; 这里给你一个vectorvectorint类型 也就是说vector中的各个数据#xff0c;存的是各个不同的vector 思路#xff1a;先给vector开空间#xff0c;然后…一、杨辉三角 class Solution { public:vectorvectorint generate(int numRows) {} }; 这里给你一个vectorvectorint类型 也就是说vector中的各个数据存的是各个不同的vector 思路先给vector开空间然后给vector中的vector开空间并且初始化 最后根据数学关系找规律 class Solution { public:vectorvectorint generate(int numRows) {vectorvectorint vv;vv.resize(numRows);for(int i 0;i numRows; i){vv[i].resize(i1,0); vv[i][i] 1;vv[i][0] 1;}for(int i 2;i vv.size();i){for(int j 1;jvv[i].size()-1;j){vv[i][j] vv[i-1][j-1]vv[i-1][j];}}return vv;} }; 二、删除有序数组中的重复项  法一 就是简便的比较如果相等则删除又因为erase函数删除后后面的数据往前移动所以比较的下标要不变 class Solution { public:int removeDuplicates(vectorint nums) {int count nums.size();std::vectorint::iterator it nums.begin();//1 1 1for (int i 0; i nums.size(); i){//for (int j i 1; j nums.size(); j){if (nums[i] nums[j]){count--;nums.erase(it j);j--;}}}return count;} }; 法二 双指针 思路 如果有fast前后是相同的数字slow指针不移动直到fast指针找到不相同的数再向前移动slow  class Solution { public:int removeDuplicates(vectorint nums) {int n nums.size();if (n 0) {return 0;}int fast 1, slow 1;while (fast n) {if (nums[fast] ! nums[fast - 1]) {nums[slow] nums[fast];slow;}fast;}return slow;} }; 三、只出现一次数据②  这里是参考比特老师所写的方法------ 这个方法简直妙蛙种子吃了妙脆角走进了米奇妙妙屋   想法思路真是太妙了  题目说只有一个数字出现一次其余数字均出现3次假设数组为{3,5,3,3} 通过分析可知 3的二进制0 0 0 0 0 0 1 1 5的二进制0 0 0 0 0 1 0 1 3的二进制0 0 0 0 0 0 1 1 3的二进制0 0 0 0 0 0 1 10 0 0 0 0 1 3 4 二进制1的总数 对于出现3次的数字各位出现的次数都是3的倍数因此对统计的为1的比特总数%30 0 0 0 0 1 0 1 5结果就是只出现一次的数字 class Solution { public:int singleNumber(vectorint nums) {int ans 0;for (int i 0; i 32; i) {// 统计该每个数字第i个比特位为1的总数int total 0;for (int num : nums) {total ((num i) 1);//太妙了}// 如果total能够被3整除说明只出现一次的数字在该位置上一定是0// 否则在该位置上一定是1if (total % 3) {ans | (1 i);//太妙了}}return ans;} }; 有操作符概念不了解的可以从下面这篇文章了解一下  http://t.csdnimg.cn/APANq total ((num i) 1); ans | (1 i);这里就好比给32位比特位全为0哪个位置需要改就在哪里换个1最后就是那一个数 特别是这两行代码写的真是太妙了 . - 力扣LeetCode  四、只出现一次数据③ 参考leetcode的大佬所写 大佬们的方法简直就是--妙蛙种子吃了妙脆角走进了米奇妙妙屋  class Solution { public:vectorint singleNumber(vectorint nums) {unsigned int x 0;for(int e : nums){x ^ e;}int x1 x (-x);int type1 0,type2 0;for (int e: nums) {if (e x1) {type1 ^ e;}else {type2 ^ e;}}return {type1, type2};} }; 这里采用的是 异或做法----前面也有提过 a^a 0 a^a^b b 下面我就开始讲一下这位灵茶山艾府大佬的代码与leetcode官方代码的结合版 首先为什么用unsigned int x 0直接用int不就好了吗?先带着这个问题往下看 我们把所有数据都异或一遍后因为相同的数异或为0只剩下两个单身狗设为x1x2 也就是说第一个循环走完以后unsigned int x x1^x2 我们得出x也就是x1与x2的混合体要混合体有什么用我们要的是单独的x1与x2如何把这个混合体分开 因为异或性质是相同为0相异为1也就是说x中二进制位中的一个1也就是x1与x2不同的位数要么x1这个位数为1要么x2中这个位数为0或者x1这个位数为0x2这个位数为1举个例子 6的二进制是 0110 10                 1010 异或为           1100 我们知道这个了以后只保留二进制最低位的1 x 1100 ~x 0011 ~x1 0100 根据补码的定义就是-x      如果 数据是-1 -1 0 -2147483648对-2147483648取负数据就溢出了所以这里取unsigned int 按位与 只有0就是0两个同时为1才是1 (x -x)   0100   我们得到二进制最低位的1 之后就是分组分组的根据是什么分组能把x1与x2分开且对于其他数没有任何影响反正最后异或后都为0 最后就是找单身狗的问题
http://www.w-s-a.com/news/21083/

相关文章:

  • 造一个官方网站wordpress mysql类
  • 怎么做卡商网站河南做网站找谁
  • 网站建设招标方案模板上线啦 图谱智能网站
  • 龙口网站建设公司哪家好wordpress 上传类型
  • 做外贸主要看什么网站服务平台的宗旨
  • 宜昌营销型网站购买网站
  • 如何查询网站建设时间wordpress 框架解析
  • 网站建设年终总结网站建设公司顺义
  • 网页给别人做的 网站后续收费吗获取更多付费流量
  • 金融交易网站建设金融 网站建设
  • 长沙网站建设联系电话怎么做表格
  • 网站怎么做域名实名认证龙华网站 建设信科网络
  • 企业网站规划方案网站是做排行榜
  • 万维网网站个人申请网站
  • 我想做网站怎么做昆山网站建设 全是乱码
  • 单位做网站怎么做圣诞树html网页代码
  • 网页开发与网站开发企业网站托管服务常用指南
  • 一站式服务图片临沂做进销存网站
  • 鸣蝉智能建站标准物质网站建设模板
  • 电商网站建设技术员的工作职责商业网站制作价格
  • 网站html模板免费下载公司的网站建设费用入什么科目
  • 高中生做网站网页网页制作教程零基础学会
  • 做金融网站有哪些要求WordPress站内搜索代码
  • 济南网站怎么做seowordpress注册发邮件
  • 珠海网站设计平台东莞市手机网站建设平台
  • 网站开发文档合同怎么在wordpress导航条下方加入文字广告链接
  • 网站建设需怎么做有网站怎么做企业邮箱
  • 网站制作流程视频教程小程序多少钱一年
  • 暗网是什么网站花都网站建设哪家好
  • 贵州网站开发流程晋江论坛手机版