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

咋么做网站在电脑上网站地图制作视频教程

咋么做网站在电脑上,网站地图制作视频教程,wordpress投稿送积分,wordpress文章摘要缩略图文章目录 题目移动零复写零两数之和N数之和(2个数) 答案讲解移动零复写零两数之和N数之和 题目 力扣 移动零 1、移动零:题目链接 复写零 2、复写零:题目链接 两数之和 3、两数之和题目链接 N数之和(2个数) 4、N数之和(三个数、四个数) 三个数:题目链接 四个数题目链接… 文章目录 题目移动零复写零两数之和N数之和(2个数) 答案讲解移动零复写零两数之和N数之和 题目 力扣 移动零 1、移动零:题目链接 复写零 2、复写零:题目链接 两数之和 3、两数之和题目链接 N数之和(2个数) 4、N数之和(三个数、四个数·····) 三个数:题目链接 四个数题目链接 答案讲解 移动零 思路 移动零这个题目是利用双指针算法 双指针不一定是用2个指针可以是下标或者值来代替 拿案例1来讲 让一个left指向-1 这个位置 让一个right指向0 这个位置 让right 走 如果right下标的数不为0 那么left swap(nums[left],nums[right]) 让right继续走 如果遇到0 那么 left不动 那么left的下一个数必定为0 交换完之后 0就会到后面去 代码 class Solution { public:void moveZeroes(vectorint nums) {int cur 0;int dest -1;while(curnums.size()){if(nums[cur]!0){dest;swap(nums[cur],nums[dest]);}cur;}} };复写零 思路 复写零 同样也是用双指针 先找到要复写之后最后一个数 这么找 用下标 一个定义cur为0 dest为-1 cur和dest同时 如果cur下标的数为0 那么dest多一次 如果dest走到最后一个元素那么就结束 cur位置就是最后复写的数 但是有一个小细节 因为如果最后一个要复写的数(cur位置为size-2的位置)并且为0 那么dest可能越界 所以要判断一下dest是否会越界 如果是这个情况 让数组最后一个数置为0 另一个0 因为越界了所以不用管 并且让cur–dest-2 这样子他们就不会越界了 找到需要复写的数下标cur之后 从后往前遍历 把cur下标位置的值赋值到dest位置下 如果cur下标位置为0 那么就让dest位置2次并且复写2次0 代码 class Solution { public:void duplicateZeros(vectorint arr) {vectorint s;int cur 0;int dest -1;while(curarr.size()){if(arr[cur]){dest;}else{dest2;}if(destarr.size()-1){break;}cur;}if(destarr.size()){arr[arr.size()-1]0;cur--;dest-2;}while(cur0){if(arr[cur]){arr[dest--]arr[cur--];}else{arr[dest--]arr[cur];arr[dest--]arr[cur];cur--;}}} }; 两数之和 思路 同样是双指针算法 这个是升序的数组 定义一个下标为0的left和一个数组长度-1的数right 还有定义一个vector 用来接受最后的2个数 用下标left的数下标为right的数 一个数 如果这个数大于target 那么吧right-- 因为是升序把大的干掉 如果小于 把left 把小的干掉 代码 : class Solution { public:vectorint twoSum(vectorint price, int target) {vectorint s;int left 0,right price.size()-1;while(leftright){if(price[left]price[right]target){right--;}else if(price[left]price[right]target){left;}else{s.push_back(price[left]);s.push_back(price[right]);break;}}return s; } };N数之和 三个数 题目解析: 要3个数相加0 并且不能重复 思路 因为要找出三个数的和为0 优质解法是双指针 先定一个i让i指向下标为0这个数 然后在[1,nums.size()-1]中定义一个left 指向i1这个位置 right 指向 size()-1这个位置 让一个数B接收 i下标位置的数并改成 他的相反数 这有一个小细节如果 i下标位置0那么 他后面的数都不用算了因为0的数相加肯定大于0 然后让一个数来接受left下标和right下标的数的和 如果这个和大于B 那么把大的干掉 如果小于 那么把小的干掉 找到之后吧他插入到vector中 然后left right– 去重(★) 如果left 位置和他的前一个位置 left-1的值相同 那么就 因为如果 相同那么都判断过了 他插入也是插入重复的 题目不要重复的 所以直接一直到不重复的为止 right也是一样 不过right是判断和他1位置的值如果相等那么– 四个数就是定2个数然后再后面的区间找 代码: class Solution { public:vectorvectorint threeSum(vectorint nums) {sort(nums.begin(),nums.end());//排序吧数组变成有序vectorvectorint arr;for(int i 0;inums.size();){int left i1,right nums.size()-1;int a -nums[i];if(nums[i]0){//如果大于0 那么就说明后面的都是正数 正数正数 比他们两个小的正数break;}while(leftright){if(nums[left]nums[right]a){right--;}else if(nums[left]nums[right]a){left;}else{//{}扩起来的内容会形成一个vector 的数组扔到里面arr.push_back({nums[i],nums[left],nums[right]});left;right--;//去重操作while(leftright nums[left]nums[left-1]){left;}while(leftright nums[right]nums[right1]){right--;}}}//对nums[i]这个位置去重i;while(inums.size() nums[i]nums[i-1]){i;}}return arr; } };
http://www.dnsts.com.cn/news/175444.html

相关文章:

  • 成都网站建设企业金融类网站设计
  • 咋样做班级主页网站公司网站维护工作
  • 做黑界头像网站哈尔滨网站建设企业
  • 淘宝客网站做京东贵阳德天信网站建设
  • 门户网站建设需要多少钱制造动漫网站开发目的
  • 专门找建筑案例的网站那里可以做旅游网站的吗
  • 博客网站程序大型自适应的网站开发
  • 网站上传图片教程建设网站需要哪些素材
  • 有啦域名网站怎么做网站布局方案
  • 网站首页设计要求最新做网站技术
  • 比较好的购物网站鞍山网上制作网站
  • 专业网站建设出售无锡网站建设专注千客云网络
  • 网站建设设计猫和老鼠郏县网站制作公司
  • 合肥外贸网站推广南昌定制网站公司
  • 如何用ps设计网页首页seo关键词优化方案
  • 高青云速网站建设做视频网站资质
  • 南昌网站建设制作商网站生成pc应用
  • 全响应式网站用什么做的wordpress 子菜单
  • 网站类网站开发源代码pk10网站开发
  • 服务器租用网站模版网站管理模式
  • 软文网站推荐扬州网站建设 天维
  • 如何向雅虎提交网站什么网站做网页好
  • 广州大题小做考研网站单页面销售网站
  • 网站建设及目标佳木斯seo
  • 陇南市建设局网站公示小程序做一个要多少钱
  • 建设网站个人简介范文惠州手工外发加工网
  • vps怎么添加网站网站 用户体验
  • 做网站月度总结中信建设有限责任公司招聘2021
  • 山西山西省建设厅网站首页碧辉腾乐 网站建设
  • 山东省建设厅教育网站报表网站建设