LeetCode283 移动零
题目
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:
必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。
方法
双指针法
从头分别找到第一个0和之后第一个非0的数进行交换,然后依次往下找0和非0数交换,即把数组看出非零数组和零数组,从头依次交换直至所有的零都在后面
- 时间复杂度:O(n)
- 空间复杂度:O(1)
class Solution {
public void moveZeroes(int[] nums) {
int str0 = 0; //为0的指针
int str1 = 0;//不为零的指针
while (str1
原文:https://www.cnblogs.com/ermiao-zy/p/14890095.html