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

赤峰网站建设招聘品牌展示设计网站

赤峰网站建设招聘,品牌展示设计网站,平面设计教程网站,seo顾问阿亮题目描述: 思路: (双指针) O(n)O(n)O(n) 给定一个数组 nums,要求我们将所有的 0 移动到数组的末尾,同时保持非零元素的相对顺序。 如图所示,数组nums [0,1,0,3,12],移动完成后变成nums [1,3,12,0,0] &am…

题目描述: 

思路:

        (双指针) O(n)O(n)O(n)

        给定一个数组 nums,要求我们将所有的 0 移动到数组的末尾,同时保持非零元素的相对顺序。

        如图所示,数组nums = [0,1,0,3,12],移动完成后变成nums = [1,3,12,0,0] ,下面来讲解双指针的做法。

        我们定义两个指针,i指针和k指针,i指针用来遍历整个nums数组,k指针用来放置nums数组元素。然后将非0元素按照原有的相对顺序都放置到nums数组前面,剩下的位置都置为0。这样我们就完成了0元素的移动,同时也保持了非0元素的相对顺序。

具体过程如下:

  1. 定义两个指针i和k,初始化i = 0,k = 0。
  2. i指针向后移动,遍整个nums数组,如果 nums[i] != 0,也就是说遇到了非0元素,此时我们就将nums[i]元素放置到nums[k]位置,同时k++后一位。
  3. 最后将k位置之后的元素都赋值为0。

实现细节:

遍历数组可以使用for(int x : nums),这样就少定义一个指针,代码也显得更加简洁。

时间复杂度分析: O(n)O(n)O(n) ,nnn是数组的长度,每个位置只被遍历一次。

时间复杂度分析: O(1)O(1)O(1) ,只需要常数的空间存放指针变量。

代码:

class Solution {
public:void moveZeroes(vector<int>& nums) {int k = 0;for(int x : nums)if(x != 0) nums[k++] = x;while(k < nums.size())  nums[k++] = 0;        }
};

 结果:

http://www.yayakq.cn/news/750296/

相关文章:

  • 为什么进行网站备案旅游网网站建设的管理
  • 手机网站关键词优化wordpress ssl配置
  • 哪些分类网站网站建设费的摊销年限
  • wordpress社交网站用wordpress 登录界面
  • 如何在导航网站上做链接温州城市建设投资集团网站
  • 网站收录系统同ip网站做301
  • 手表网站的结构软件外包公司绩效考核内容
  • 济南济南网站建设网站建设财务公司
  • 门户网站建设管理工作的意见景观设计案例网站
  • 顺德品牌网站建设优惠360网站建设商家
  • 网站建设 淄博 兼职国外精彩网站
  • 玉林市住房和城乡建设厅网站国内免费crm系统
  • 不收费的企业查询网站深圳开发公司网站建设比较好的
  • 网站布局规范android应用开发框架
  • 中国新农村建设促进会网站企梦网站建设
  • 广告公司做的网站图片侵权网站开发实训心得800
  • 校园网站建设的感受论文泉州网络公司都
  • 做网站要掌握几种语言多语言网站建设
  • 徐州网站建设哪家专业微信怎么建立小程序
  • android 做分享的网站html网页框架
  • 小程序和网站的区别做体育赛事网站公司
  • 网站项目运营网站建设英文如何表达
  • 外贸网站仿牌主机公司注册资金最少是多少
  • 播州区建设局网站wordpress做小说网站
  • 太原网站建设公司自适应网站开发工具
  • 如何做分类网站信息营销建设网站需要什么基础
  • 网站免费推广计划服务网站建设方案
  • 合肥智能建站模板电子商务专业网站设计
  • 如何做网站监控如何分析网站功能
  • 衡水做网站公司软件开发外包app