【LeetCode】Plus One

来源:互联网 发布:java.util.locale详解 编辑:程序博客网 时间:2024/06/11 06:37

Given a number represented as an array of digits, plus one to the number.

hint : 类似于字符串模拟加减法的思路:

class Solution {public:    vector<int> plusOne(vector<int> &digits) {        // Note: The Solution object is instantiated only once and is reused by each test case.        vector<int> res;        if(digits.size() == 0)            return res;        int carry = 1;        int sum ;        for(int i = digits.size() - 1; i >=0; i--)        {            sum = carry + digits[i];            carry = sum / 10;            sum %= 10;            res.push_back(sum);        }        if(carry == 1)            res.push_back(1);        reverse(res.begin(),res.end());        return res;    }};

java什么的:

public class Solution {    public int[] plusOne(int[] digits) {        // Note: The Solution object is instantiated only once and is reused by each test case.        int len = digits.length;        for(int i = len-1; i >= 0; i--)        {            if(digits[i] != 9)            {                digits[i]++;                return digits;            }            else digits[i] = 0;        }                int[] res = new int[len+1];        res[0] = 1;        return res;                }}