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++;
			}
		}
	}
}
相关推荐
程序员酥皮蛋2 分钟前
hot 100 第三十三 33.排序链表
数据结构·算法·链表
蚊子码农7 分钟前
算法题解记录-2452距离字典两次编辑以内的单词
开发语言·算法·c#
wangbing11258 分钟前
Java构造函数不能加void
java·开发语言
重生之后端学习11 分钟前
207. 课程表
java·数据结构·算法·职场和发展·深度优先
嵌入式×边缘AI:打怪升级日志19 分钟前
9.2.1 分析 Write File Record 功能(保姆级讲解)
java·开发语言·网络
阿在在38 分钟前
Spring 系列(三):Spring PostProcessor 顶级扩展接口全解析
java·后端·spring
Tisfy1 小时前
LeetCode 1523.在区间范围内统计奇数数目:两种方法O(1)算
算法·leetcode·题解
kyrie学java1 小时前
使用SpringBoot框架搭建简易的项目
java·spring boot·spring
癫狂的兔子1 小时前
【Python】【机器学习】线性回归
算法·回归·线性回归
野犬寒鸦1 小时前
ArrayList扩容机制深度解析(附时序图详细讲解)
java·服务器·数据结构·数据库·windows·后端