# 1089. Duplicate Zeros
題目:<https://leetcode.com/problems/duplicate-zeros/>
解法:採用直接解,找到0後插入0,python使用insert()加pop(),c則是將0之後的元素往後位移
Python3:
``` python 3
class Solution:
def duplicateZeros(self, arr: list[int]) -> None:
"""
Do not return anything, modify arr in-place instead.
"""
length = len(arr)
i = 0
while i < length:
if arr[i] == 0:
arr.insert(i, 0)
arr.pop()
i += 1
i += 1
if __name__ == '__main__':
arr = [1, 0, 2, 3, 0, 4, 5, 0]
Solution().duplicateZeros(arr)
print(arr)
```
C:
``` c
#include <stdio.h>
#include <stdlib.h>
void duplicateZeros(int* arr, int arrSize) {
for (int i = 0; i < arrSize; i++) {
if (arr[i] == 0) {
for (int j = arrSize - 1; j > i; j--)
arr[j] = arr[j - 1];
i++;
}
}
}
int main()
{
int arr[] = {1, 0, 2, 3, 0, 4, 5, 0};
int arrSize = sizeof(arr) / sizeof(arr[0]);
duplicateZeros(arr, arrSize);
for (int i = 0; i < arrSize; i++)
printf("%d ", arr[i]);
printf("\n");
return 0;
}
```
###### tags: `leetcode` `array`