LeetCode 1089.复写零

题目

给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。

注意:请不要在超过该数组长度的位置写入元素。请对输入的数组 就地进行上述修改,不要从函数返回任何东西。

思路

代码

java 复制代码
class Solution {
    public void duplicateZeros(int[] arr) {
        int n = arr.length;
        int cnt0 = 0;
        for (int i = 0; i < n; i++) {
            if (arr[i] == 0) {
                cnt0++;
            }
        }
        for (int j = n - 1; j >= 0; j--) {
            if (arr[j] == 0) {
                cnt0--;
            }
            if (j + cnt0 < n) {
                arr[j + cnt0] = arr[j];
            }
            if (arr[j] == 0 && j + cnt0 + 1 < n) {
                arr[j + cnt0 + 1] = 0;
            }
        }
    }
}

性能

时间复杂度o(n)

空间复杂度o(1)

相关推荐
WolfGang0073217 小时前
代码随想录算法训练营 Day50 | 图论 part08
数据结构·算法·图论
aini_lovee9 小时前
多目标粒子群优化(MOPSO)双适应度函数MATLAB实现
人工智能·算法·matlab
yong99909 小时前
图像融合与拼接:完整MATLAB工具箱
算法·计算机视觉·matlab
春风不语5059 小时前
深入理解主成分分析(PCA)
算法
apollowing9 小时前
启发式算法WebApp实验室:从搜索策略到群体智能的能力进阶(二十二)
算法·启发式算法·web app
晚枫歌F9 小时前
最小堆定时器
数据结构·算法
Lumos_77710 小时前
Linux -- 线程
java·jvm·算法
七颗糖很甜10 小时前
“十五五”气象发展规划:聚焦五大核心任务
大数据·python·算法
科研前沿11 小时前
镜像视界浙江科技有限公司的关键技术突破有哪些?
大数据·人工智能·科技·算法·音视频·空间计算
Fuly102411 小时前
技术经理面试相关--技术篇
面试·职场和发展