From 2e1db50ece93c107ba70fb6dfbd474f657c2be78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=90=E6=A0=91=E6=A3=AE?= <14021051@buaa.edu.cn> Date: Sat, 1 Sep 2018 21:30:37 +0800 Subject: [PATCH] Create 66. Plus One.md --- 66. Plus One.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 66. Plus One.md diff --git a/66. Plus One.md b/66. Plus One.md new file mode 100644 index 0000000..375dbe5 --- /dev/null +++ b/66. Plus One.md @@ -0,0 +1,23 @@ +# [66. Plus One](https://leetcode.com/problems/plus-one/description/) +# 思路 +首先明确英语中digit代表0-9的一个数字。这题意思就是用一个数组代表一个数,然后计算这个数加1后的结果。 +从后往前遍历,用一个c记录每一个digit所加的数,初试为1,以后每个c为前一次加法的进位。 +注意如果最后有进位的话会使数组size加1 +# C++ +``` +class Solution { +public: + vector plusOne(vector& digits) { + int i = digits.size()-1; + int c = 1; + while(i >= 0){ + digits[i] += c; + c = digits[i] / 10; + digits[i] %= 10; + i--; + } + if(c > 0) digits.insert(digits.begin(), c); + return digits; + } +}; +```