zoukankan      html  css  js  c++  java
  • lintcode-407-加一

    407-加一

    给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。
    该数字按照大小进行排列,最大的数在列表的最前面。

    样例

    给定 [1,2,3] 表示 123, 返回 [1,2,4].
    给定 [9,9,9] 表示 999, 返回 [1,0,0,0].

    标签

    数组 谷歌

    思路

    模拟加法,从个位(数组最后一位)+1,若此位产生进位,继续向前一位加进位,若是最高位(数组第一位)还有进位,则插入新的最高位

    code

    class Solution {
    public:
        
        /*
         * @param digits: a number represented as an array of digits
         * @return: the result
         */
        vector<int> plusOne(vector<int> digits) {
            // write your code here
            int size = digits.size();
            if (size <= 0) {
                return vector<int>();
            }
            int carry = 0;
            digits[size - 1]++;
            if (digits[size - 1] < 10) {
                return digits;
            }
            carry = 1;
            digits[size - 1] = 0;
            for (int i = size - 2; i >= 0; i--) {
                digits[i] = digits[i] + carry;
                if (digits[i] > 9) {
                    carry = 1;
                    digits[i] = 0;
                }
                else {
                    carry = 0;
                    break;
                }
            }
            if (carry == 1) {
                digits.insert(digits.begin(), 1);
            }
            return digits;
        }
    };
    
  • 相关阅读:
    vue的单向数据流
    vue的组件基础
    vue v-for的数组改变导致页面不渲染解决方法
    Binary Heap
    Types of Binary Tree
    Merge Sort
    Master Theorem
    Insertion Sort
    Amazon Redshift and Massively Parellel Processing
    Bubble Sort
  • 原文地址:https://www.cnblogs.com/libaoquan/p/7355122.html
Copyright © 2011-2022 走看看