切換
舊版
前往
大廳
主題

LeetCode - 66. Plus One 解題心得

Not In My Back Yard | 2020-08-06 00:00:07 | 巴幣 0 | 人氣 267

題目連結:


題目意譯:
給定一個非空之位數陣列,代表著一個非負的整數。將該整數 + 1。

位數以最高有效位(Most Significant Digit)為列表的頭之形式儲存。且陣列中每個元素代表整數的一個位數。

你可以假設整數不含有任何前導 0 ,除了數字 0 本身。



範例測資:
範例 1:
輸入: [1,2,3]
輸出: [1,2,4]
解釋: 陣列內容代表著整數 123。

範例 2:
輸入: [4,3,2,1]
輸出: [4,3,2,2]
解釋: 陣列內容代表著整數 4321。


解題思維:
設定進位值 carry = 1。然後從陣列的尾端開始加上 carry 值。對於每個位數,如果其結果值 = 10 ,則代表要進位,carry 設為 1 ,然後繼續到前面的位數;反之,carry = 0 ,然後就可以停止了。

如果最後的 carry 值仍是 1 ,則代表該整數為 9 、 99 、 999 等的形式。因此結果為 10 、 100 、 1000 等等。所以我們需要將該陣列前面再加一個 1 的位數。

接著回傳該陣列即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作