LeetCode算法學習之--數組--加一

這是我參與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) */

複製代碼

1.png

總結

這道題考察的對數組中對迭代的應用ide

你們能夠看看我分享的一個專欄(前端搞算法)裏面有更多關於算法的題目的分享,但願可以幫到你們,我會盡可能保持天天晚上更新,若是喜歡的麻煩幫我點個贊,十分感謝

文章內容目的在於學習討論與分享學習算法過程當中的心得體會,文中部分素材來源網絡,若有侵權,請聯繫刪除,郵箱 182450609@qq.com

相關文章
相關標籤/搜索