leetcode283-Move Zeroes

这道题目要求把所有的0元素都放到数组末尾,并且不能改变数组其它元素的相对数序,类似这种题目思维一定要往快慢指针上靠,快指针从头到尾遍历,快指针永远去找非0元素,慢指针则从头开始遍历,找到以后交换俩个元素的位置,然后俩个指针分别往前走一步。注意这里如果慢指针的策略是永远去找0元素的话,那么就会涉及到一些和快指针的比较,只有在慢指针比快指针小的时候所指向的元素才可以交换,cpu时间会更高一点

java 复制代码
public class moveZeroes {
	public static void main(String[] args) {
		int[] arr = {0,1,0,3,12};
		moveZero(arr);
		for(int i = 0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}
	}
	public static void moveZero(int[] arr) {
		for(int i = 0,j=0;i<arr.length;i++) {
			if(arr[i] != 0) {
				int tmp = arr[i];
				arr[i] = arr[j];
				arr[j] = tmp;
				j++;
			}
		}
	}
}
相关推荐
獭.獭.1 分钟前
C++ -- 二叉搜索树
数据结构·c++·算法·二叉搜索树
TOYOAUTOMATON2 分钟前
自动化工业夹爪
大数据·人工智能·算法·目标检测·机器人
poggioxay6 分钟前
JAVA零基础入门知识3(持续更新中)
java·开发语言·python
im_AMBER12 分钟前
Leetcode 67 长度为 K 子数组中的最大和 | 可获得的最大点数
数据结构·笔记·学习·算法·leetcode
清晓粼溪19 分钟前
SpringMVC-01:基础知识
java·spring
互亿无线明明40 分钟前
如何为全球业务构建可扩展的“群发国际短信接口”?
java·c++·python·golang·eclipse·php·erlang
写完代码就回家结婚1 小时前
Java函数式编程:用Stream API重构你的代码逻辑
java
buyue__1 小时前
C++实现数据结构——链表
数据结构·c++·链表
琢瑜1 小时前
问题1:Oracle Java路径干扰。问题2:环境变量加载顺序问题
java·maven
feifeigo1231 小时前
MATLAB实现两组点云ICP配准
开发语言·算法·matlab