首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >1.《双指针篇》---①移动零

1.《双指针篇》---①移动零

作者头像
用户11288958
发布2024-11-21 15:06:00
发布2024-11-21 15:06:00
5790
举报
文章被收录于专栏:学习学习

题目传送门

这道题可以归类为 数组划分/数组分块 。 题目制定了一个规则,我们可以在这个规则下,将数组划分为若干个区间。 这道题让我们把所有非零元素移动到左边。所有零元素移动到右边。 将数组划分为: 左区间非0; 右区间:全0 解决这类我们使用双指针算法

代码语言:javascript
复制
class Solution {
        public void moveZeroes(int[] nums) {
            //定义left和right双指针。并在right<n的情况下循环。
            //如果nums[right] != 0则交换left和right指向的元素。
            //若等于零则right++。
            //保证left之前的数据非零。left指向第一个零。
            //right之后的数据待处理。
            int left = 0,right = 0;
            int n = nums.length;
            while(right < n){
                if(nums[right] != 0){
                    int temp = nums[left];
                    nums[left] = nums[right];
                    nums[right] = temp;
                    left++;
                }
                right++;
            }
        }
}

复杂度分析

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 题目传送门
  • 复杂度分析
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档