LeetCode solutions

1168. Duplicate Zeros

My accepted C++ solution to LeetCode problem 1168, Duplicate Zeros, running in 0ms.

  • Difficulty: Easy
  • C++
  • Runtime 0ms
  • Memory 13.9MB

Read the problem on LeetCode View on GitHub

C++

Accepted on LeetCode — runtime 0ms, memory 13.9MB, accepted 2025-12-28.

cpp
class Solution {
public:
    void duplicateZeros(vector<int>& arr) {
        int n = arr.size();
        int zeros = 0;
        for (int i = 0; i < n - zeros; i++) {
            if (arr[i] == 0) {
                if (i == n - zeros - 1) {
                    arr[n - 1] = 0;
                    n--;
                    break;
                }
                zeros++;
            }
        }
        int last = n - zeros - 1;
        for (int i = last; i >= 0; i--) {
            if (arr[i] == 0) {
                arr[i + zeros] = 0;
                zeros--;
                arr[i + zeros] = 0;
            } else {
                arr[i + zeros] = arr[i];
            }
        }
    }
};

Source