移动零(java)

简介: 移动零(java)

移动零(java)


来自于LeetCode算法题(java)

移动零

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

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

输入: nums = [0,1,0,3,12]

输出: [1,3,12,0,0]

示例 2:

输入: nums = [0]

输出: [0]

class Solution {
    public void moveZeroes(int[] nums) {
        int n = nums.length, left = 0, right = 0;
        //必须在不复制数组的情况下原地对数组进行操作。
        while (right < n) {     //进入循环的条件
            if (nums[right] != 0) {     //如果nums数组中下标为right的不等于0,进入判断
                swap(nums, left, right);//right和left交换
                left++;
            }
            right++;
            /**
            第一次[0, 1, 0, 3, 12]
            第二次[1, 0, 0, 3, 12]
            第三次[1, 0, 0, 3, 12]
            第四次[1, 3, 0, 0, 12]
            第五次[1, 3, 12, 0, 0]
             */
        }
    }
    public void swap(int[] nums, int left, int right) {
        int temp = nums[left];
        nums[left] = nums[right];
        nums[right] = temp;
    }
}
相关文章
|
消息中间件 缓存 Java
Java中再一个你可能不经常用,但使用时候不一定会注意的一个知识
Java中再一个你可能不经常用,但使用时候不一定会注意的一个知识 我们都知道在遇到一些单线程处理很慢的场景,往往我们会采用多线程的方式进行处理,从而缩短处理时间提升性能。
|
分布式计算 安全 Java
A First Look At Java
A First Look At Java
126 0
A First Look At Java
|
存储 Dubbo 固态存储
JAVA问答10
JAVA问答10
113 0
|
分布式计算 Java API
赶快看看Java11,不然你就out了!
由于直接从Java8跨越到Java11,所以特性介绍就把Java9-Java11的部分特性一起介绍一下。想要了解Java8特性的朋友可以去我的博客找「Java8系列」。
655 3
赶快看看Java11,不然你就out了!
|
存储 缓存 Java
java7 WatchService 您用过吗?
java7 WatchService 您用过吗?
131 0
|
Java
Java常见的坑(二)
你猜上述程序输出的是什么? 是 ABC easy as 123 吗? 你执行了输出操作,你才发现输出的是 ABC easy as [C@6e8cf4c6 ,这么一串丑陋的数字是什么鬼? 实际上我们知道字符串与任何数值的相加都会变为字符串,上述事例也不例外, numbers输出其实实际上是调用了Object.toString()方法,让numbers转变为'[c' + '@' + 无符号的十六进制数。
55 0
|
Java
java24-if..else...if
java24-if..else...if
101 0
java24-if..else...if
|
Java
6、Java——常用小技巧总结
6、Java——常用小技巧总结
111 0
|
存储 Java 开发者
Java - 9 个小技巧让你的 if else 看起来更优雅(三)
Java - 9 个小技巧让你的 if else 看起来更优雅(三)
236 0