# 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`