zoukankan      html  css  js  c++  java
  • [LintCode] 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.

    Example

    Given [1,2,3] which represents 123, return[1,2,4].

    Given [9,9,9] which represents 999, return[1,0,0,0].

    LeetCode上的原题,请参见我之前的博客Plus One

    解法一:

    class Solution {
    public:
        /**
         * @param digits a number represented as an array of digits
         * @return the result
         */
        vector<int> plusOne(vector<int>& digits) {
            vector<int> res;
            int carry = 1, n = digits.size();
            for (int i = n - 1; i >= 0; --i) {
                int sum = digits[i] + carry;
                res.insert(res.begin(), sum % 10);
                carry = sum / 10;
            }
            if (carry == 1) res.insert(res.begin(), 1);
            return res;
        }
    };

    解法二:

    class Solution {
    public:
        /**
         * @param digits a number represented as an array of digits
         * @return the result
         */
        vector<int> plusOne(vector<int>& digits) {
            for (int i = digits.size() - 1; i >= 0; --i) {
                if (digits[i] < 9) {
                    digits[i] += 1;
                    return digits;
                }
                digits[i] = 0;
            }
            digits.insert(digits.begin(), 1);
            return digits;
        }
    };
  • 相关阅读:
    二分查找算法
    Python基础二(基础数据类型)
    Python基础一
    mysql 数据库
    Scrapy (网络爬虫框架)入门
    列表推导式的使用
    Scrapy(爬虫框架)中,Spider类中parse()方法的工作机制
    vim 基础命令大全
    windows cmd 命令大全
    类与类的关系一
  • 原文地址:https://www.cnblogs.com/grandyang/p/5794220.html
Copyright © 2011-2022 走看看