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

移动电商网站开发需求文档怎么做网站结构拓扑图

移动电商网站开发需求文档,怎么做网站结构拓扑图,中英文双语网站模板,潍坊市城乡建设局网站杨辉三角 力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台 给定一个非负整数 numRows#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1…杨辉三角 力扣LeetCode官网 - 全球极客挚爱的技术成长平台 给定一个非负整数 numRows生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]] 知识点 这道题涉及的知识点有1. vector创建二维数组。 2. 杨辉三角的表示法。 vector如何创建数组 创建一维数组的方法 vectorint v(5); //创建5个int初始化成默认值0 ​ vectorint v(5,1); //创建5个int初始化成1 ​ vectorint v{1,2,3}; //创建3个int分别是123 创建二维数组的方法 vectorvectorint(5);   //创建5行。 若想要定义列的大小用resize() ​ vectorvectorint(5,vectorint(4));   //创建5行4列初始化成默认值0 ​ vectorvectorint(5,vectorint(4,9)); //创建5行4列初始化成默认值9 这道题的二维数组每行的大小都不一样的 大小我们用resize()去调整。 至于杨辉三角的表示法它的规律是每行的开头和末尾为1其他的数之间的关系 用找规律法可以得出v[i] [j]v[i-1] [j-1] v[i-1] [j] 解答 class Solution { public:vectorvectorint generate(int numRows) {vectorvectorint v(numRows); for(int i0;inumRows;i){v[i].resize(i1);v[i][0]v[i][i]1;for(int j1;ji;j){v[i][j]v[i-1][j-1]v[i-1][j];}}return v;} }; 删除有序数组中的重复项 力扣LeetCode官网 - 全球极客挚爱的技术成长平台 给你一个 非严格递增排列 的数组 nums 请你 原地 删除重复出现的元素使每个元素 只出现一次 返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k 你需要做以下事情确保你的题解可以被通过 更改数组 nums 使 nums 的前 k 个元素包含唯一元素并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。 返回 k 。 示例 1 输入nums [1,1,2] 输出2, nums [1,2,_] 解释函数应该返回新的长度 2 并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。 示例 2 输入nums [0,0,1,1,1,2,2,3,3,4] 输出5, nums [0,1,2,3,4] 解释函数应该返回新的长度 5 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。 思路与实现 这道题我想到了两个思路。 思路一 设两个迭代器fast、slow。它们初始都指向nums的第一个元素。 fast一步一步地持续往前走slow暂时待在原地。每当fast指向的元素和slow指向的不一样就让slow加加把fast的值赋给slow。 class Solution { public:int removeDuplicates(vectorint nums) {vectorint::iterator fastnums.begin(),slownums.begin();while(fast!nums.end()){if(*fast!*slow){slow;*slow*fast;}fast;}int kslow-nums.begin()1;nums.resize(k);return k;} }; 思路二 把数组遍历一遍遇到和上一个相同的就删除。 class Solution { public:int removeDuplicates(vectorint nums) {vectorint::iterator itnums.begin();while(it!nums.end()){if(it1!nums.end()){   //小心越界加个判断if(*it*(it1)){itnums.erase(it);}else{it;}}else{it;}}int knums.size();return k;} }; 这个思路二挺容易写错的看看我之前的错误写法 class Solution { public:int removeDuplicates(vectorint nums) {vectorint::iterator itnums.begin();while(it!nums.end()){if(it1!nums.end()){if(*it*(it1)){   //如果it没走这里的if条件那它也没法自增程序就陷入死循环了itnums.erase(it);}}else{it;}}int knums.size();return k;} }; 这样写的问题还是出在erase那边。之前我强调过erase因为会引起迭代器失效所以写法非常讲究。 正确的erase写法 要用if else语句并且要用迭代器去承接erase的返回值。 而这里我只写了if漏写了else。在else里it要加加。 错误记录 这样写为什么报错呢 class Solution { public:int removeDuplicates(vectorint nums) {int sznums.size();int i0;while(isz){if(i0){if(nums[i]nums[i-1]){vectorint::iterator posnums.begin()i;posnums.erase(pos);   //这里要考虑迭代器失效吗}else{i;}}else{i;}   }int knums.size();return k;} }; 原来是因为我循环里的erase操作会导致size()被修改sz的值失效了。 只出现一次的数字Ⅱ 力扣LeetCode官网 - 全球极客挚爱的技术成长平台 给你一个整数数组 nums 除某个元素仅出现 一次 外其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 示例 1 输入nums [2,2,3,2] 输出3 示例 2 输入nums [0,1,0,1,0,1,99] 输出99 思路 这道题乍一看长得像单身狗问题但实际并不能用异或的方法去做两个相同的值异或在一起为0而这里是三个相同的值。 思路一先排序再前后比较 这题其实可以借鉴刚刚那道“删除数组中的重复项”把乱序的数组排序使得大小相同的数字紧挨在一起当一个数和前后都不相同那这个数就只出现了一次。 class Solution { public:int singleNumber(vectorint nums) {int sznums.size();//首先要考虑特殊情况if(sz1){return nums[0];}sort(nums.begin(),nums.end());for(int i0;isz;i){//先考虑第一个和最后一个这俩位置比较尴尬容易越界访问if(i0nums[i]!nums[i1]){return nums[i];}else if(isz-1nums[i]!nums[i-1]){return nums[i];}else if(nums[i]!nums[i1]nums[i]!nums[i-1]){return nums[i];}}return 0;} }; 思路二位运算 先撇开那个只出现一次的数字不看我们就叫它A其他数字都是三个三个出现的。 此时将十进制的数字用二进制的视角来看的话32个比特位1出现的次数一定是3的倍数。 而加进来A以后我们将目光投到任意一个比特位上。如果A的这个比特位是0那1的次数依然是3的倍数如果是1那这个次数模3等于1。 也就是说我们可以通过1的次数 倒推出A的 其中一个比特位了设1出现x次x%30那A的这一位就是0x%3 1,这一位就是1。 A一共有32个比特位复刻这个方法可以推出A的每一个比特位A的值自然也就出来了。 class Solution { public:int singleNumber(vectorint nums) {//一共32个比特位每一位的0、1值我们都要获知int ret0;for(int i0;i32;i){//统计1出现的次数nint n0;for(int num:nums){if((numi)11){n;}}if(n%31){ret|1i; //注意二进制的加法就用|} //刚刚右移了i位现在再左移回来}return ret;} }; 小结 1.“去重”问题往往可以考虑先排个序。 2.按位或 相当于是二进制中的加法。
http://www.hkea.cn/news/14437079/

相关文章:

  • 苏州网站建设公司有哪些中国建设教育协会证书查询网站
  • 网站建站哪个品牌好海外推广广告
  • 东莞市电池网站建设饥饿营销案例
  • 保定制作网站软件广州哪里好玩的景点推荐
  • 成品网站 修改首页诏安建设局网站
  • 印刷网站开发的可行性报告温州网站开发流程
  • 做富集分析的网站it学校培训学校哪个好
  • 网站关键词排名系统品牌全案策划案例
  • 美观网站建设价格注册一个公司
  • 网站文字公告代码邯郸网站建设做公司
  • 建设银行 网站无法打开重庆seo点击工具
  • 云南购物网站建设宁波外贸公司排行榜
  • 阿里云可以做电商网站吗wordpress编辑器定义
  • 天津市中小企业局网站东阳网站建设哪家好
  • 网站如何修改后台密码中国建筑网官网查询报考
  • 韶关专业网站建设教程平凉市建设局门户网站
  • 网站设计公司石家庄标志设计宣传册设计公司
  • 网站制造国家工信部网站备案查询系统
  • 安徽元鼎建设工程有限责任公司网站公司建网站流程
  • yahoo网站提交入口什么叫口碑营销
  • 网站做专题提升权重网站建设与管理题
  • 阿里建站官网天元建设集团有限公司张国庆
  • 现在由哪些网站可以做外链自建房设计app
  • 网站 建设 现状分析简易网页一键生成
  • 建永久网站vi设计公司
  • 做视频网站把视频放在哪里做那网站好
  • 外贸汽车网站哪个网站做马代路线好
  • 社交网站图片展示网页设计形考作业2
  • 如何申请个人网站域名建设项目工程信息
  • 专门做设计的网站有哪些硬件开发项目流程