1168. Duplicate Zeros
My accepted C++ solution to LeetCode problem 1168, Duplicate Zeros, running in 0ms.
- Difficulty: Easy
- C++
- Runtime 0ms
- Memory 13.9MB
- Updated
Read the problem on LeetCode View on GitHub
The problem statement is LeetCode’s and stays on their site. What follows is my accepted solution.
C++
Accepted on LeetCode — runtime 0ms, memory 13.9MB, accepted 2025-12-28.
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];
}
}
}
};