zoukankan      html  css  js  c++  java
  • 加一

    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

    最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

    你可以假设除了整数 0 之外,这个整数不会以零开头。

    示例 1:

    输入: [1,2,3]
    输出: [1,2,4]
    解释: 输入数组表示数字 123。
    示例 2:

    输入: [4,3,2,1]
    输出: [4,3,2,2]
    解释: 输入数组表示数字 4321。

    /**
     * @param {number[]} digits
     * @return {number[]}
     */
    var plusOne = function(digits) {
       let i = digits.length-1;
        let currentValue = 0;
        let forwardvalue = 1;
        
       while(i>=0&&forwardvalue >0){
            currentValue = (digits[i]+forwardvalue)%10;
            
            forwardvalue = parseInt((digits[i]+forwardvalue)/10);
            digits[i] = currentValue;
            i -- ;
       }
       if(forwardvalue>0){
            digits.unshift(forwardvalue);
       }
       return digits;
    };

    对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。

    给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。

    示例 1:

    输入:A = [1,2,0,0], K = 34
    输出:[1,2,3,4]
    解释:1200 + 34 = 1234
    解释 2:

    输入:A = [2,7,4], K = 181
    输出:[4,5,5]
    解释:274 + 181 = 455
    示例 3:

    输入:A = [2,1,5], K = 806
    输出:[1,0,2,1]
    解释:215 + 806 = 1021
    示例 4:

    输入:A = [9,9,9,9,9,9,9,9,9,9], K = 1
    输出:[1,0,0,0,0,0,0,0,0,0,0]
    解释:9999999999 + 1 = 10000000000

    /**
     * @param {number[]} A
     * @param {number} K
     * @return {number[]}
     */
    var addToArrayForm = function(digits,k) {
         let i = digits.length-1;
        let currentValue = 0;
        let forwardvalue = 0;
        let add_bit = k ;
        let next_bit =k;
       while(i>=0){
            add_bit = next_bit % 10;
            next_bit = parseInt(next_bit/10);
            currentValue = (digits[i]+forwardvalue+add_bit)%10;
            forwardvalue = parseInt((digits[i]+forwardvalue+add_bit)/10);
            digits[i] = currentValue;
            i -- ;
       }
     demo = forwardvalue+next_bit;
       if((demo)>0){
            //循环的将剩余的字符放入到数组中
            
            while(demo>0){
                 let temp = demo %10;
                digits.unshift(temp);
                demo = parseInt(demo/10);
            }
           
            
       }
       return digits;
    };

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/plus-one
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 相关阅读:
    不吐不快之EJB演练——开篇概述
    URL重写:RewriteCond指令与RewriteRule 指令格式
    刚到公司有点压力山大,在此希望有大神给点正能量
    053第449题
    选择排序---简单选择排序 堆排序
    bzoj-1492 货币兑换Cash (2)——CDQ分治
    MySQL 提高Insert性能
    Codeforces Round #313 (Div. 2) 560C Gerald's Hexagon(脑洞)
    Matlab矩阵基础
    Android 带清除功能的输入框控件EditTextWithDel
  • 原文地址:https://www.cnblogs.com/panjingshuang/p/11807565.html
Copyright © 2011-2022 走看看