LeetCode - Move Zeroes
2015-09-20 00:32
405 查看
问题如图:
解答如下:
结果:
解答如下:
/* 问题描述:给出一个数组,写一个函数是数组中所有的0移到最后,并且保持其他的数字的顺序不变。 注意,不能额外申请一个数组。最小化额外操作数的数目。 思路:做一次for循环,每当遇到一个0时,与和他距离最近的一个不为0的数交换,T(n) = O(n). */ var moveZeroes = function(nums) { var i,j=0,len = nums.length; if(nums){ for(i = 0; i< len-1; i++){ if(nums[i] === 0) { j = i + 1; while(nums[j] === 0 && j<nums.length - 1) j++; nums[i] = nums[j]; nums[j] = 0; if(j == nums.length - 1) //如果一直遍历到了最后,则说明后面的全部是0,可以结束循环了 i = nums.length - 1; } } } console.log(nums); };
结果:
相关文章推荐
- 我就是我
- Zookeeper linux下使用
- LeetCode ZigZag Conversion
- LeetCode ZigZag Conversion
- 纯虚函数和虚函数的区别
- Delphi XE7的蓝牙 Bluetooth
- hdu3861(tarjan缩点 + Hungary)
- 我对GIT的认识`
- 第一种感想
- usaco Feed Ratios
- C++ 笔试题
- Cocos2d-x学习笔记之常用的宏
- DBGrideh 实现自动排序
- CPP-Calling constructors(调用构造函数)
- 努力学习 HTML5 (1)—— 初体验
- linux-软件包管理
- 应用Tomcat的WebappClassLoader加载指定目录的jar文件
- servlet&jsp
- emSecure Use Digital Signatures to protect your products
- git 的认识