移动零

作者: 二进制的二哈 | 来源:发表于2019-12-26 22:46 被阅读0次

    题目来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/perfect-squares

    给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。

    示例 1:

    输入: n = 12
    输出: 3 
    解释: 12 = 4 + 4 + 4.
    

    示例 2:

    输入: n = 13
    输出: 2
    解释: 13 = 4 + 9.
    

    双指针解法:

    class Solution {
        public void moveZeroes(int[] nums) {
            if(nums.length <= 1)
                return;
            int i = 0;
            int j = i+1;
            while(j < nums.length){
                if(nums[i] == 0 && nums[j] == 0){
                    j++;
                }else if(nums[i] == 0 && nums[j] != 0){
                    int tmp = nums[j];
                    nums[j] = nums[i];
                    nums[i] = tmp;
                    i++;
                    j++;
                }else if(nums[i] != 0 && nums[j] == 0){
                    i = j;
                    j = i+1;
                }else{
                    i++;
                    j++;
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:移动零

          本文链接:https://www.haomeiwen.com/subject/qzfroctx.html