zoukankan      html  css  js  c++  java
  • LeetCode 283 移动零

    LeetCode 283 移动零

    问题描述:
    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

    双指针

    执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
    内存消耗:39 MB, 在所有 Java 提交中击败了79.88%的用户

    class Solution {
        public void moveZeroes(int[] nums) {
            if(nums==null || nums.length<=1) {
                return;
            }
            //双指针
            int p1 = 0, p2 = 0, tmp = 0;
            //找到第一个0元素
            while(p1<nums.length && nums[p1]!=0) {
                p1++;
            }
            p2 = p1;
            while(p2 < nums.length) {
                //找到第一个0后的第一个非0元素
                while(p2<nums.length && nums[p2]==0) {
                    p2++;
                }
                if(p2==nums.length) {
                    break;
                }
                //交换
                tmp = nums[p2];
                nums[p2] = nums[p1];
                nums[p1] = tmp;
                p1++;
                p2++;
            }
    
            return;
        }
    }
    
  • 相关阅读:
    第四周作业及总结
    第三周作业及其总结
    第二周作业及总结
    我所敬佩的老师
    秋季学习总结
    自我介绍
    寒三总结
    2019春第7周作业
    2019春第六周作业
    2019春第五周作业
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13703813.html
Copyright © 2011-2022 走看看