zoukankan      html  css  js  c++  java
  • leetcode66- Plus One- easy

    Given a non-negative integer represented as a non-empty array of digits, plus one to the integer.

    You may assume the integer do not contain any leading zero, except the number 0 itself.

    The digits are stored such that the most significant digit is at the head of the list.

    1.善用/ %,用c记录,踏踏实实做就好。问一下能不能直接改原数组,不能的话就再开个list辅助也行。

    2.观察规律,最后大一格的话只可能发生在输入全是9的情况,而且加后的结果就是新位1后面全是0。所以你可以直接先假设不是极端情况一直加上去,如果遇到不是9的时候就可以直接把改后的原数组返回了。如果最后还是没有返回的话就说明遇到极端情况,直接开一个新的长一点的第一个位改1即可。

    1.基础版模拟法实现

    class Solution {
        public int[] plusOne(int[] digits) {
            List<Integer> list = new ArrayList<>();
            int[] result;
            int idx = digits.length - 1;
            int c = 1;
            while (idx >= 0) {
                int digit = digits[idx] + c;
                list.add(digit % 10);
                c = digit / 10;
                idx--;
            }
            
            result = new int[digits.length + c];
            int start = c;
            result[0] = c;
            for (int i = start; i < result.length; i++) {
                result[i] = list.get(list.size() - (i - start) - 1);
            }
            
            return result;
        }
    }

    2.观察规律实现

    public int[] plusOne(int[] digits) {
            
        int n = digits.length;
        for(int i=n-1; i>=0; i--) {
            if(digits[i] < 9) {
                digits[i]++;
                return digits;
            }
            
            digits[i] = 0;
        }
        
        int[] newNumber = new int [n+1];
        newNumber[0] = 1;
        
        return newNumber;
    }
  • 相关阅读:
    HTTP接口测试
    1 ThinkPHP MVC框架初识
    解决python2.7 scripts和pip缺失问题
    图片重绘
    Oracle数据库提权
    二阶注入
    去重算法,简单粗暴&优化版
    常用集合
    冒泡排序 -- 算法原理
    MySQL-配置环境变量及修改密码(附-mysql安装教程)
  • 原文地址:https://www.cnblogs.com/jasminemzy/p/7965843.html
Copyright © 2011-2022 走看看