package com.zjp.start.sort; import java.util.Arrays; /** * 给定一个由正数,负数和0组成的整数数组,将所有为0的元素,挪到数组末尾 */ public class MoveZero { public static void main(String[] args) { int[] arr = {0, 1, 3, 4, 0, -1, -5, 0, -3, 0, 2, 6, 9, 0}; moveZero(arr); System.out.println(Arrays.toString(arr)); } private static void moveZero(int[] arr) { int i=0; int j = arr.length - 1; while (i < j) { //j始终指向右边第一个!=0的数 if (arr[j] == 0) { j--; continue; } //代码走到这里,说明arr[j]!=0,寻找arr[i]==0,交换位置 if (arr[i] == 0) { arr[i] = arr[j]; arr[j] = 0; //从右到左寻找下一个j==0的数 j--; } //从左到右寻找下一个==0的数 i++; } } }
java笔试题--给定一个由正数,负数和0组成的整数数组,将所有为0的元素,挪到数组末尾
最新推荐文章于 2022-10-07 16:06:46 发布