天天看點

leetcode--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.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<code>public</code> <code>class</code> <code>Solution {</code>

<code>    </code><code>/**very fundamental problem.&lt;br&gt;</code>

<code>     </code><code>* @author Averill Zheng</code>

<code>     </code><code>* @version 2014-06-05</code>

<code>     </code><code>* @since JDK 1.7</code>

<code>     </code><code>*/</code>

<code>    </code><code>public</code>

<code>int</code><code>[] plusOne(</code><code>int</code><code>[] digits) {</code>

<code>       </code><code>int</code>

<code>length = digits.length;</code>

<code>       </code><code>int</code><code>[] result =</code><code>null</code><code>;</code>

<code>       </code><code>if</code><code>(length &gt;</code><code>0</code><code>){</code>

<code>           </code><code>int</code><code>[] temp =</code><code>new</code>

<code>int</code><code>[length +</code><code>1</code><code>];</code>

<code>           </code><code>int</code>

<code>carry =</code><code>1</code><code>;</code>

<code>           </code><code>for</code><code>(</code><code>int</code>

<code>i = length -</code><code>1</code><code>; i &gt; -</code><code>1</code><code>; --i){</code>

<code>               </code><code>int</code>

<code>sum = digits[i] + carry;</code>

<code>               </code><code>carry = sum /</code><code>10</code><code>;</code>

<code>               </code><code>temp[i +</code><code>1</code><code>] = sum %</code><code>10</code><code>;</code>

<code>           </code><code>}</code>

<code>           </code><code>if</code><code>(carry !=</code><code>0</code><code>)</code>

<code>               </code><code>temp[</code><code>0</code><code>] =</code><code>1</code><code>;</code>

<code>           </code><code>if</code><code>(temp[</code><code>0</code><code>] !=</code><code>0</code><code>)</code>

<code>               </code><code>result = temp;</code>

<code>           </code><code>else</code><code>{</code>

<code>               </code><code>result =</code><code>new</code>

<code>int</code><code>[length];</code>

<code>               </code><code>for</code><code>(</code><code>int</code>

<code>i =</code><code>1</code><code>; i &lt; length +</code><code>1</code><code>; ++i)</code>

<code>                   </code><code>result[i -</code><code>1</code><code>] = temp[i];</code>

<code>           </code><code>}  </code>

<code>       </code><code>}</code>

<code>       </code><code>return</code>

<code>result;   </code>

<code>    </code><code>}</code>

<code>}</code>