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

承德网站开发成人培训机构

承德网站开发,成人培训机构,深圳福田网站建设公司,seo营销外包一、双指针 1.1移动零 链接:283. 移动零 - 力扣(LeetCode) 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操…

一、双指针

1.1移动零

链接:283. 移动零 - 力扣(LeetCode) 

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0] 

解法:

通过两个指针(并非是真的指针,只是数组的下标),dest和cur将长度为n的数组划分为三个部分;

[0,dest]:cur已经遍历过的地方,处理过不为0的部分;

[dest+1,cur-1]:cur已经遍历过的地方,处理过为0的部分;

[cur,n-1]:cur未遍历的地方;


第一种情况: cur指向数组元素为0

[0,dest]部分是处理过并且元素不为0的部分,cur指向0,所以处理后[0,dest]不变;

[dest+1,cur-1]部分是处理过为0的部分,所以处理后[dest+1,cur-1]长度加一;

[cur,n-1]部分长度减一;

 第二种情况: cur指向数组元素不为0

[0,dest]部分是处理过并且元素不为0的部分,cur指向1,所以处理后[0,dest]长度加一,dest往后移一位,用来存放1;

[dest+1,cur-1]部分是处理过为0的部分,所以处理后[dest+1,cur-1]长度不变;

[cur,n-1]部分长度减一;

 dest往后移一位,dest指向为0的部分,只需要将此时的dest指向和cur指向元素交换即可,之后cur++;


初始状态,dest=-1,cur=0;

1.nums[cur]为0,cur++;

2.nums[cur] 不为0,dest++后,在交换nums[dest]和nums[cur];

c++解法: 

class Solution {
public:void moveZeroes(vector<int>& nums) {for(int dest=-1,cur=0; cur<nums.size(); cur++){if(nums[cur])swap(nums[cur], nums[++dest]);}}
};

c语言解法: 

void moveZeroes(int* nums, int numsSize) 
{for(int dest=-1,cur=0; cur<numsSize; cur++){if(nums[cur]){       int temp = 0;temp = nums[++dest];nums[dest] = nums[cur];nums[cur] = temp;}}
}


http://www.hkea.cn/news/611969/

相关文章:

  • 四海网络网站建设咨询什么叫做网络营销
  • 安徽建设网官方网站优化分析
  • 网站根目录文件名游戏推广员是做什么的
  • 个体工商户怎么做网站西安网站seo技术
  • 报名网站制作2345网址导航官网下载安装
  • 图书购物网站开发总结百度发广告需要多少钱
  • 做网站 业务流程图站长统计性宝app
  • 长沙做网站大概多少钱万网域名注册教程
  • 成都网站建设网站产品推广计划书怎么写
  • 深圳个人网站建设大连网络推广公司哪家好
  • 建设工程教育appseo技术培训中心
  • 家教中介怎么利用网站来做的免费广告推广
  • wordpress仿制建设seo是什么平台
  • 商城网站建设分为几块seo臻系统
  • 网络营销对于个人而言有什么作用seo文章
  • 做书籍封皮的网站今日中国新闻
  • 东莞建设网站电工培训技术学校
  • 深圳聘请做网站人员成都排名seo公司
  • 网站备案之后东莞网站关键词优化公司
  • 多种专业网站建设潍坊网站排名提升
  • 网站投稿系统怎么做网站制作流程是什么
  • 交警网站建设整改百度推广怎么推广
  • 重庆网站建设哪里比较好呢网站下载
  • 网站运行速度慢的原因看b站二十四小时直播间
  • 电商网站开发服务全网营销骗局揭秘
  • 个人网站怎么做互联网营销师培训课程免费
  • 微信网站建设价格网站开发报价方案
  • wordpress utc时间慢8小时大连seo关键词排名
  • 中国建设承包商网站创建软件平台该怎么做
  • 中小企业网站建设费用海外推广服务