示例 1:
示例 2:
class Solution {public void duplicateZeros(int[] arr) {int len = arr.length;int top = 0;int i = -1;while(top < len){i++;if(arr[i] != 0){top++;}else{top+=2;}}int j = len - 1;if(top == len + 1){arr[j] = 0;i--;j--;}while(j >= 0){arr[j] = arr[i];j--;if(arr[i] == 0){arr[j] = arr[i];j--;}i--;}}
}
void duplicateZeros(int* arr, int arrSize)
{int i = -1;int top = 0;while(top < arrSize){i++;if(arr[i] != 0){top++;}else{top+=2;}}int j = arrSize - 1;if(top == arrSize + 1){arr[j] = 0;i--;j--;}while(j >= 0){arr[j] = arr[i];j--;if(arr[i] == 0){arr[j] = arr[i];j--;}i--;}
}
class Solution:def duplicateZeros(self, arr: List[int]) -> None:size = len(arr)i = -1top = 0while top < size:i+=1if arr[i] == 0:top+=2else:top+=1j = size - 1if top == size + 1:arr[j] = 0j-=1i-=1while j >= 0:arr[j] = arr[i]j-=1if arr[i] == 0:arr[j] = arr[i]j-=1i-=1
class Solution {
public:void duplicateZeros(vector& arr) {int len = arr.size();int i = -1;int top = 0;while(top < len){i++;if(arr[i] == 0){top+=2;}else{top++;}}int j = len - 1;if(top == len + 1){arr[j]=0;j--;i--;}while(j >= 0){arr[j] = arr[i];j--;if(arr[i] == 0){arr[j] = arr[i];j--;}i--;}}
};
Java语言版
C语言版
Python语言版
C++语言版