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

烟台哪家公司可以做网站一站式海外推广平台

烟台哪家公司可以做网站,一站式海外推广平台,个人做网站语言,布吉网站开发力扣 283 移动零 解法一:双指针 定义一个指针 cur 去遍历数组 ; 定义一个指针 dest 去指向已处理区间中,非零的最后一个位置。 然后让 指针 cur 遇到 0 ,就往后走 ; 遇到的数不是 0 ,就与 dest指针的下…

力扣  283 移动零

解法一:双指针

定义一个指针  cur  去遍历数组 ; 定义一个指针 dest 去指向已处理区间中,非零的最后一个位置。

然后让 指针 cur 遇到 0 ,就往后走 ; 遇到的数不是 0 ,就与 dest指针的下一个数交换位置,直至将数组遍历结束为止。

cur 指向不是0 的位置

让dest+1位置的数与cur 位置的数交换,swap(nums[cur], nums[dest+1)

 

 两个指针的向前走一步。

代码实现:

class Solution {
public:void moveZeroes(vector<int>& nums) {int dest = -1;int cur = 0;while(cur < nums.size()){if(nums[cur] == 0){cur++;}else{swap(nums[dest+1],nums[cur]); //有封装的交换函数dest++;   //vector里面封装的swap是将两个数组进行交换,而不是两个数cur++;}}}
};

 解法二:

同样使用双指针,i 和 j ,不过不是使用交换,而是将后面的非零元素覆盖前面的0元素。

使用指针 i 去遍历数组 ; 如果指针 i 遇到零 , 就 i ++ ; 否则就将指针 i 位置的值赋给 指针 j 位置的值,然后 i ++ , j ++; 最后将 j 后面的元素全部赋值为零。

class Solution {
public:void moveZeroes(vector<int>& nums) {int i = 0, j = 0;while(i<nums.size()){if(nums[i] ==0){i++;}else{nums[j] = nums[i];j++;i++;}}//将 j 后面的元素赋值为0 while(j<nums.size()){nums[j] = 0;++j;}}
};

解法三:

使用指针 cur 遍历数组 , 如果遇到零 , 删除当前位置的零元素,并在数组末尾插入一个零元素;如果遇到的不是零, cur直接往后面走一位。

class Solution {
public:void moveZeroes(vector<int>& nums) {int len = nums.size();  // 用len来限制循环次数int cur = 0 ;while(len > 0){if(nums[cur] ==0){nums.erase(nums.begin()+cur);nums.push_back(0);}else{++cur;}--len;}}
};

解法四:

用来优化解法三的算法,解法三中,在指针cur 走到后面全零区间的第一个元素时,就已经满足题目要求的结果了,应当结束,但解法三多走了 x 步(x为数组nums中零元素的个数),因此需要记录数组非零元素的个数,当指针 cur 等于非零元素个数时,就结束循环。

class Solution {
public:void moveZeroes(vector<int>& nums) {int count = 0; // 记录数组非零元素的个数for(int i = 0 ; i< nums.size();++i){if(nums[i] !=0){++count;}}int cur = 0 ;while(cur < nums.size()){if(nums[cur] ==0){if(cur == count){break;}nums.erase(nums.begin()+cur);nums.push_back(0);}else{++cur;}}}
};

 

http://www.dinnco.com/news/66672.html

相关文章:

  • 南京房地产网站建设自学seo能找到工作吗
  • dremrever怎么做网站nba最新交易信息
  • 伍佰亿网站建设seo顾问收费
  • 建网站找我五种常用的网站推广方法
  • 视频代做网站公众号推广方案
  • 企业网站维护怎么做网站收录
  • 南京网站开发公司哪家好刷死粉网站推广
  • 2019做什么类型网站南京seo整站优化技术
  • 做网站建设销售做国外网站
  • 手机设计培训网站建设建站seo是什么
  • 做个网站软件多少钱百度搜索优化平台
  • 网站后台没有编辑器发帖推广
  • 北京做手机网站建设无锡整站百度快照优化
  • 北京网站seo服务百度云下载
  • 公司网站开发之main区域(2)河北seo技术培训
  • 官方网站面膜做微商深圳seo论坛
  • 成都网站建设好多科技网上营销的方式
  • 社保网站哪里做转入搜索词和关键词
  • 做网站需要用到哪些开发软件广告推广文案
  • 网页设计与制作教程教科书杭州网站优化多少钱
  • 陈巴尔虎旗网站建设互联网推广引流公司
  • 做非洲出口的网站免费友情链接网页
  • php网站开发最新需求新媒体平台
  • 国外网页设计网站北京网站seo费用
  • 如何做网站商铺网站运营推广方式
  • 手机网站变灰郴州网站建设推广公司
  • 怎么建设大型商务网站推广互联网推广
  • 鹤山做网站网站建设seo优化培训
  • 怎么做免流网站流程优化
  • 湘潭哪里做网站服务营销