LeetCode之Move Zeroes(Java+C)

来源:互联网 发布:windows phone 输入法 编辑:程序博客网 时间:2024/04/30 21:01

题意:给定一个数组,将所有0元素放到数组尾部,并保持非零元素的相对顺序
Java代码:

public 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;    }}

C代码:

void moveZeroes(int* nums, int numsSize) {    int index = 0;    for(int i = 0; i < numsSize; i++) {        if(nums[i])            nums[index++] = nums[i];    }    for(int i = index; i < numsSize; i++) {        nums[i] = 0;    }}

解题思路:其实,只要看了上面的代码,思路就显而易见了,无非就是重新对原数组赋值
Step 1:将所有非零元素按相对顺序取出依次从零下标开始赋值,记录最后一个非零元素的下标;
Step 2:显然,数组剩下的均是零元素,填入0即可

0 0
原创粉丝点击