leetcode-移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

输入: nums = [0,1,0,3,12]

输出: [1,3,12,0,0]

示例 2:

输入: nums = [0]

输出: [0]

提示:

1 <= nums.length <= 104

-231 <= nums[i] <= 231 - 1
思路:原数组中执行插入操作移动数据。一个指针start相当于新数组的开始位置,指针i遍历数组。当i指向的当前值不为0时,插入到start的位置,start++。遍历完成后,start之后的数都是0。

c 复制代码
class Solution {
    public void moveZeroes(int[] nums) {
        int start = 0;
        for(int i = 0;i<nums.length;i++){
            if(nums[i]!=0){
                nums[start] = nums[i];
                start++;
            }
        }
        for(int i = start;i<nums.length;i++){
            nums[i] = 0;
        }
    }
}
相关推荐
谷雨不太卷1 天前
进程的状态码
java·前端·算法
散峰而望1 天前
【算法竞赛】C/C++ 的输入输出你真的玩会了吗?
c语言·开发语言·数据结构·c++·算法·github
躺不平的理查德1 天前
时间复杂度与空间复杂度备忘录
数据结构·算法
yaki_ya1 天前
yaki-C语言:从概念基础到内存解析---数组(array)完全指南
java·c语言·算法
刃神太酷啦1 天前
扒透 STL 底层!map/set 如何封装红黑树?迭代器逻辑 + 键值限制全手撕----《Hello C++ Wrold!》(23)--(C/C++)
java·c语言·javascript·数据结构·c++·算法·leetcode
挽星安1 天前
代码随想录算法训练营第五十天|卡码网 99 岛屿数量、卡码网 100 最大岛屿的面积
算法
葫三生1 天前
《论三生原理》系列构建文理同构的认知体系?
人工智能·科技·深度学习·算法·机器学习·transformer
多加点辣也没关系1 天前
数据结构与算法|第六章:队列
数据结构·算法·队列
_深海凉_1 天前
LeetCode热题100-分割回文串
算法·leetcode·职场和发展