這是我參與8月更文挑戰的第4天,活動詳情查看:8月更文挑戰javascript
你們好今天給你們分享下一道 LeetCode 簡單難度 的題目[加一]前端
給定一個由 整數 組成的 非空 數組所表示的非負整數,在該數的基礎上加一。java
最高位數字存放在數組的首位, 數組中每一個元素只存儲單個數字。git
你能夠假設除了整數 0 以外,這個整數不會以零開頭。算法
示例 1:
輸入:digits = [1,2,3]
輸出:[1,2,4]
解釋:輸入數組表示數字 123。
示例 2:
輸入:digits = [4,3,2,1]
輸出:[4,3,2,2]
解釋:輸入數組表示數字 4321。
示例 3:
輸入:digits = [0]
輸出:[1]
複製代碼
1.一個整數被拆開組成一個數組數組
2.整數加1,若是末尾爲9 就須要進位markdown
解法網絡
1.迭代app
思路
1.從後向前迭代
2.取餘數
3.若是取餘後是0則繼續向前加1,可是若是遇到了第一個位置上是0,則須要在數組前面加一位1
*/
var plusOne = function (digits) {
for (let i = digits.length - 1; i >= 0; i--) {
digits[i] = (digits[i] + 1) % 10;
if (digits[i] !== 0) {
break;
} else {
//若是已是第一個位 則須要在數組前面加一位1
if (i === 0) {
digits.unshift(1);
}
}
}
return digits;
};
/* 複雜度 時間 最小是O(n), 最大是2n 空間 O(1) */
複製代碼
這道題考察的對數組中對迭代的應用ide
你們能夠看看我分享的一個專欄(前端搞算法)裏面有更多關於算法的題目的分享,但願可以幫到你們,我會盡可能保持天天晚上更新,若是喜歡的麻煩幫我點個贊,十分感謝
文章內容目的在於學習討論與分享學習算法過程當中的心得體會,文中部分素材來源網絡,若有侵權,請聯繫刪除,郵箱 182450609@qq.com