Move Zeroes

来源:互联网 发布:淘宝火拼是怎么弄的 编辑:程序博客网 时间:2024/06/15 10:52

https://leetcode.com/problems/move-zeroes/description/
题意:把数组中所有0都移到最后。
思路1:非0的数字向前压缩,如102030压缩后为123,后面的数字置0

class Solution {    public void moveZeroes(int[] nums) {        int len = nums.length;        int index = 0;        for(int i = 0;i < len;i++) {            if(nums[i] != 0) {                nums[index++] = nums[i];            }        }        for(int i = index;i < len;i++)            nums[i] = 0;    }}

思路2:遍历数组,遇到0时从数组末尾开始遍历,跳过0的位置,不为0的则替换位置

class Solution {    public void moveZeroes(int[] nums) {        int len = nums.length;        for(int i = 0;i < len;i++) {            if(nums[i] == 0) {                for(int j = len-1; j > i;j--){                    if(nums[j] != 0) {                        int tmp = nums[j];                        nums[j] = nums[i];                        nums[i] = tmp;                    }                 }            }        }    }}
原创粉丝点击