国产探花免费观看_亚洲丰满少妇自慰呻吟_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;    }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 夏邑县| 逊克县| 龙井市| 曲松县| 周宁县| 嵊泗县| 横峰县| 当阳市| 昌宁县| 韶关市| 松阳县| 寿阳县| 元氏县| 西和县| 河池市| 张家港市| 香港 | 龙里县| 专栏| 河源市| 讷河市| 东乡族自治县| 达孜县| 建始县| 金阳县| 长宁区| 福泉市| 嵊泗县| 成都市| 兴国县| 洱源县| 绥滨县| 北流市| 昭通市| 芷江| 兴海县| 清流县| 冀州市| 凤山市| 宜阳县| 呼伦贝尔市|