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++;
			}
		}
	}
}
相关推荐
s1hiyu几秒前
实时控制系统验证
开发语言·c++·算法
daad7777 分钟前
V4L2_mipi-csi
算法
2301_7657031410 分钟前
C++代码复杂度控制
开发语言·c++·算法
m0_7088309621 分钟前
C++中的享元模式实战
开发语言·c++·算法
naruto_lnq27 分钟前
分布式计算C++库
开发语言·c++·算法
Hx_Ma1628 分钟前
Map集合的5种遍历方式
java·前端·javascript
小手cool30 分钟前
Java 列表中查找最小值和最大值最有效率的方法
java
惊讶的猫36 分钟前
多线程同步问题及解决
java·开发语言·jvm
wfsm36 分钟前
工厂模式创建动态代理实现类
java·开发语言
好好研究43 分钟前
总结SSM设置欢迎页的方式
xml·java·后端·mvc