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

牡丹区建设局网站手机百度推广怎么打广告

牡丹区建设局网站,手机百度推广怎么打广告,余江县建设局网站,wordpress段首空2字给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出: […

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

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

示例 2:
输入: nums = [0]
输出: [0]

提示:
1 <= nums.length <= 104
-231 <= nums[i] <= 231 - 1

进阶:你能尽量减少完成的操作次数吗?


知识点:
数组、双指针


解:
采用双指针实现,初始时,左指针指向第一个元素,右指针指向第二个元素。
这里实际上已经考虑了一个元素的情况:只有一个元素时,不管是0还是非零元素,实际上不用动这个数组的内容,因此只考虑两个及以上元素数量的情况。
左指针,实际上指向的是0;右指针,实际上指向的是左指针指向的0后面第一个非零元素。
如何判断遍历结束了?通过判断右指针不等于数组长度,即可。原因在后面进行说明

这里对于指针指向的元素,分为3种情况:
case1:左指针指向0,右指针指向非零元素
这种情况下,需要交换左右指针指向的元素,实现非零元素向前移动、0向后移动。由于题目要求的是保证非零元素的相对顺序不变,而不同0的顺序实际上没区别,因此这种交换元素的方式是可取的。交换后,左指针就指向了非零元素,右指针指向了0,那么就来到了case3
case2:双指针均指向0
这种情况表示存在多个连续的0,那么交换0是没有实际意义的,为了减少交换次数,我们将右指针后移,直到后面的某次遍历时,右指针指向了非零元素,那么就来到了case1
case3:左指针指向非零元素
这种情况正是交换完0和非零元素后的结果,此时,左指针原来指向的0已经完成移动,标明左指针的使命已经完成,因此左指针后移。而双指针同时指向同一个元素,并没什么用,因此我们直接将右指针也后移。所以就有双指针同时后移

这里,以测试用例1进行说明,给出while循环的结束条件是如何确定的。
测试用例1推导过程
蓝色圈圈就说明了为什么右指针等于数组长度时,表明循环结束。

class Solution {public void moveZeroes(int[] nums) {//双指针分别指向第一个、第二个元素int pi = 0;int pj = 1;//数组只有一个元素则不处理(处理后数组不会变)if (nums.length > 1) {while (pj != nums.length) {if (nums[pi] == 0 && nums[pj] != 0) {//左指针指向0,右指针指向非零元素,直接交换双指针所指向的两个元素int tmp = nums[pi];nums[pi] = nums[pj];nums[pj] = tmp;} else if (nums[pi] == 0 && nums[pj] == 0) {//双指针均指向0,则更新右指针,直至遇到非零元素pj += 1;} else if (nums[pi] != 0) {//已进行元素交换,更新双指针pi += 1;pj += 1;}}}}
}
http://www.dtcms.com/wzjs/222140.html

相关文章:

  • 网站解析后外贸营销型网站制作公司
  • 网站建设 模板品牌推广的步骤和技巧
  • 哈尔滨营销网站制作广东seo点击排名软件哪家好
  • 广州做包包的网站seo外包多少钱
  • 西安哪家公司网站做的好摘抄一小段新闻
  • 上海家装口碑最好的公司百度seo白皮书
  • 泰安网课seo指的是搜索引擎
  • 网站开发 项目规划 怎么写国外网站排名前十
  • 做网站的框架结构百度推广一个点击多少钱
  • 专业做二手房的网站有哪些windows7系统优化工具
  • 购物网站设计意义北京seo代理公司
  • 网络公司网站案例如何推广一个项目
  • 菏泽定制网站建设推广哈尔滨seo
  • 设计制作植物标识牌最好用的系统优化软件
  • 响应式网站开发框架最佳磁力吧ciliba磁力链
  • 政府网站建设与维护网盟推广平台
  • 大连 做网站公司seo全网营销
  • 深圳营销网站制作优化一下
  • 桂林市临桂区最新疫情seo点击器
  • 网站链轮内有死链百度搜索排名优化
  • 商务网站建设与维护试题百度词条搜索排行
  • 自己做个公司网站网络培训平台有哪些
  • 公众号怎么做微网站吗网站运营方案
  • 网站收录量下降青岛做网站推广
  • 如何选择适合的图像和照片网络优化器下载
  • 站长统计幸福宝网站统计提高工作效率总结心得
  • 微信小程序注册后怎么使用搜索引擎关键词优化
  • wordpress视频商店站长工具查询seo
  • 豫建市2021 42号seo承诺排名的公司
  • 济南品质网站建设哪家好一份完整的活动策划方案