zoukankan      html  css  js  c++  java
  • Plus One leetcode java

    问题描述:

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

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

    分析:非负整数,存储在数组中。the most significant digit 最高位存储在列表的第一个,例如:98, array[0] 存储9,array[1]存储8。

    定义变量carry存储进位,遍历数组,每次修改digits[i] 与 carry

     public int[] plusOne(int[] digits) {
         if(digits == null || digits.length == 0)
                return null;
            int len = digits.length;
            int carry = 0; //进位,只借用一个变量,不需要数组
            for(int i = len - 1; i >= 0; i--){
                if(i == len - 1){
                    carry = (digits[i] + 1 ) / 10; //进位
                    digits[i] = (digits[i] + 1 ) % 10; //本位
                } else {
                    int digit = (digits[i] + carry) % 10; //本位
                    carry = (digits[i] + carry) / 10; //进位
                    digits[i] = digit;
                }            
            }
            
            if(carry == 0)
                return digits;
            else {
                int[] new_digits = new int[len + 1];
                for (int i = 1; i < new_digits.length; i++) {
                    new_digits[i] = digits[i - 1];
                }
                new_digits[0] = carry;
                return new_digits;
            }
        }
  • 相关阅读:
    第一阶段冲刺02
    梦断代码阅读笔记01
    第一阶段冲刺01
    第十周总结报告
    单词统计
    用户模板分析
    第九周总结
    第九周课后作业
    py_11_ 0726
    Day_01
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/5051599.html
Copyright © 2011-2022 走看看