问题:
package com.example.demo; public class Test283 { /** * 将数组中的0移动到数组后边,同事保持其他元素的相对位置 * 将所有非0元素向前移动 * 定义一个索引,该索引代表的非0元素,从0向上递增 * * @param nums */ public void moveZeroes(int[] nums) { int k = 0; for (int i = 0; i < nums.length; i++) { if(nums[i] != 0){ nums[k++] = nums[i]; } } // 上边遍历完成之后,0-k之间的值局势所有的非0元素,所以需要将k-len之间的元素全都置0 for (int i = k; i < nums.length; i++) { nums[i] = 0; } } public static void main(String[] args) { Test283 t = new Test283(); int[] arr = {1, 0, 0, 3, 4, 5, 0, 4}; t.moveZeroes(arr); for (int i : arr) { System.out.print(i + " "); } } }
原文:https://www.cnblogs.com/nxzblogs/p/11270583.html