zoukankan      html  css  js  c++  java
  • LeetCode 1089. 复写零(Duplicate Zeros) 72

    1089. 复写零
    1089. Duplicate Zeros

    题目描述
    给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。

    注意:请不要在超过该数组长度的位置写入元素。

    要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。

    每日一算法2019/7/14Day 72LeetCode1089. Duplicate Zeros

    示例 1:

    输入:[1,0,2,3,0,4,5,0] 输出:null 解释:调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4]

    示例 2:

    输入:[1,2,3] 输出:null 解释:调用函数后,输入的数组将被修改为:[1,2,3]

    提示:

    1. 1 <= arr.length <= 10000
    2. 0 <= arr[i] <= 9

    Java 实现

    class Solution {
    	public void duplicateZeros(int[] arr) {
    		int countZero = 0;
    		for (int i = 0; i < arr.length; i++) {
    			if (arr[i] == 0) {
    				countZero++;
    			}
    		}
    		int len = arr.length + countZero;
    		for (int i = arr.length - 1, j = len - 1; i < j; i--, j--) {
    			if (arr[i] != 0) {
    				if (j < arr.length) {
    					arr[j] = arr[i];
    				}
    			} else {
    				if (j < arr.length) {
    					arr[j] = arr[i];
    				}
    				j--;
    				if (j < arr.length) {
    					arr[j] = arr[i];
    				}
    			}
    		}
    	}
    }
    

    参考资料

  • 相关阅读:
    [USACO06NOV]Corn Fields(状压DP)
    关灯问题II (状态压缩 BFS)
    天梯---至多删三个字符(DP)
    天梯
    蓝桥
    天梯
    天梯
    天梯
    天梯
    蓝桥
  • 原文地址:https://www.cnblogs.com/hgnulb/p/11184042.html
Copyright © 2011-2022 走看看