国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Plus One

2019-11-15 01:16:23
字體:
來源:轉載
供稿:網友
Plus OnePlus One

https://leetcode.com/PRoblems/plus-one/

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.

算法描述

這個題目需要注意的地方是假設數組的長度是n,那么一個數的最高有效位是數組的第0個數,數組的最低有效位是數組的第n-1個數。1) new一個ArrayList為resDigits2) 按照n-1, n-2, ..., 0這樣的順序讀取數組的值,首先將第n-1個數和1相加值為sum3) 如果有進位(也即sum == 10),那么resDigits就加個0元素,接著原數組余下元素,即第n-2, n-3, ..., 0位的數值跳到步驟2)繼續執行;如果沒有進位,那么resDigits就加上sum,并且數組的余下元素也加到resDigits中4) 因為得到的resDigits的第0個數是最低有效位,因此按照題目的要求,把resDigits倒過來。

程序代碼
public class Solution {    public int[] plusOne(int[] digits) {        int length = digits.length;        if (digits == null || length == 0) {            return null;        }              List<Integer> resDigits = new ArrayList<Integer>();        int n = digits.length - 1;        Boolean flag = true;        do {            if (flag) {                int sum = digits[n--] + 1;                if (sum == 10) {                    resDigits.add(0);                    flag = true;                } else {                    resDigits.add(sum);                    flag = false;                }            } else {                resDigits.add(digits[n--]);            }        }while(n >= 0);               if (flag) {            resDigits.add(1);        }                int[] newDigits = new int[resDigits.size()];        for (int i = resDigits.size() - 1; i >= 0; i--) {            newDigits[newDigits.length - 1 - i] = resDigits.get(i);        }                return newDigits;    }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江津市| 舟山市| 三穗县| 湘潭市| 饶河县| 乌拉特前旗| 清涧县| 南溪县| 攀枝花市| 甘南县| 顺平县| 文登市| 西吉县| 惠州市| 吉安县| 图们市| 栾城县| 宁津县| 南城县| 岳阳县| 永春县| 三明市| 陕西省| 长汀县| 玉环县| 八宿县| 怀集县| 区。| 诏安县| 崇州市| 台州市| 鄱阳县| 舒城县| 金溪县| 长兴县| 阿克苏市| 惠水县| 张家口市| 乳源| 同心县| 阿拉善盟|