题目来源:
leetcode题目,网址:1089. 复写零 - 力扣(LeetCode)
解题思路:
遍历数组并重新赋值。若当前元素为 0 ,将两个 0 添加到队列中,否则将当前元素添加到队列中,最后将队首元素弹出并将其放在当前位置。
解题代码:
class Solution {
public void duplicateZeros(int[] arr) {
Queue<Integer> queue=new LinkedList<>();
for(int i=0;i<arr.length;i++){
if(arr[i]!=0){
queue.offer(arr[i]);
arr[i]=queue.poll();
}else{
queue.offer(0);
queue.offer(0);
arr[i]=queue.poll();
}
}
}
}
总结:
官方题解使用的是双指针,确定哪个元素放置在最后一个元素的位置后从后往前修改数组。