zoukankan      html  css  js  c++  java
  • [LeetCode] 1089. Duplicate Zeros

    使用 Java 爬取 LeetCode 题目内容以及提交的AC代码

    传送门

    Description

    Given a fixed length array arr of integers, duplicate each occurrence of zero, shifting the remaining elements to the right.

    Note that elements beyond the length of the original array are not written.

    Do the above modifications to the input array in place, do not return anything from your function.

    Example 1:

    Input: [1,0,2,3,0,4,5,0]
    Output: null
    Explanation: After calling your function, the input array is modified to: [1,0,0,2,3,0,0,4]
    

    Example 2:

    Input: [1,2,3]
    Output: null
    Explanation: After calling your function, the input array is modified to: [1,2,3]

    Note:

    1. 1 <= arr.length <= 10000
    2. 0 <= arr[i] <= 9

    思路

    题意:给定一个固定长度的整数数组arr,复制每次出现的零,将剩余的元素向右移动。不使用其他辅助数据结构对输入数组进行上述修改。

    题解:不使用其他辅助数据结构对数组进行原地修改,那么通过一个变量来记录数组中零值的个数,从后往前遍历,交换数组中的值。

    static const auto io_sync_off = []()
    {
        // turn off sync
        std::ios::sync_with_stdio(false);
        // untie in/out streams
        std::cin.tie(nullptr);
        return nullptr;
    }();
    
    class Solution {
    public:
        void duplicateZeros(vector<int>& arr) {
            int zeroCnt = 0;
            int size = arr.size();
            for (int i = 0; i < size; i++){
                if (arr[i] == 0)    zeroCnt++;
            }
            int j = size + zeroCnt;
            for (int i = size - 1; i >= 0; i--){
                if (--j < size)    arr[j] = arr[i];
                if (arr[i] == 0 && --j < size){
                    arr[j] = 0;
                }
            }
        }
    };
    
  • 相关阅读:
    iOS开发 | 自定义不规则label
    监控redis的操作命令
    HTML常用标签
    前端学习【第一篇】: HTML内容
    MySQL数据库修改字段的长度
    python模块之:paramiko
    使用pymysql操作mysql数据库
    Python开发【第九篇】: 并发编程
    JNI调用实例
    JVM性能调优入门
  • 原文地址:https://www.cnblogs.com/ZhaoxiCheung/p/leetcode-duplicate-zeros.html
Copyright © 2011-2022 走看看