阅读 82

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

文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐