[leetcode]各數相加[javascript]
https://leetcode-cn.com/problems/add-digits/
描述
給定一個非負整數 num
,反覆將各個位上的數字相加,直到結果為一位數。
示例:
輸入: 38
輸出: 2
解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返回 2。
進階:
你可以不使用迴圈或者遞迴,且在 O(1) 時間複雜度內解決這個問題嗎?
分析
最容易想到的是暴力遞迴,這裡就不展示了…
這其實是一道數學題
將一個正整數的各個數位的數字求和,直到和為一位數為止,這個數被稱為原數的『數根』
**兩個正整數數根相同,意味著它們兩個除以9的餘數相同。**確切地說,一個數的數根就是它除以9的餘數(數根為9時例外,原數除以9餘0)。
這樣就可以一行程式碼解決問題
var addDigits = function(num) {
return (num - 1) % 9 + 1
};
參考資料
相關推薦
[leetcode]各數相加[javascript]
https://leetcode-cn.com/problems/add-digits/ 描述 給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於
LeetCode題庫2:兩數相加——JavaScript解答
題目描述: 給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例
LeetCode - 兩數相加 - Swift
感謝此作者 在這個基礎上添加了一些註釋,讓以後的我能看懂。 還有未解決的地方。以後有時間在解決。 問題: * 如何測試陣列。現在只能單個文字的測試。 import UIKit public class ListNode { public var val: Int
LeetCode---兩數相加
兩數相加(中等) 給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例: 輸入:(2 -> 4 -> 3) + (5 -&g
Leetcode---兩數相加--直觀解法(連結串列)
兩數相加 給出兩個 非空 的連結串列用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。 如果,我們將這兩個數相加起來,則會返回一個新的連結串列來表示它們的和。 您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。 示
LeetCode——兩數相加
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *l3 = new ListNode(0); ListNode *l4 = l3;
leetcode 兩數相加
給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例: 輸入:(2 -> 4 -> 3) + (5 -> 6 -&g
LeetCode-兩數相加
給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例:輸入:(2 -&
兩數相加JavaScript
/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; *
leetcode 兩數相加(中等難度)
題目如下: 給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例: 輸入:(2 -> 4 -> 3
[LeetCode] 67. Add Binary 二進制數相加
strings pre bin ons dbi light 反向輸出 brush AD Given two binary strings, return their sum (also a binary string). For example,a = "11"b = "
leetcode 鏈表 兩數相加
相加 ddt con rap quest list onu 單個 clas 兩數相加 給定兩個非空鏈表來表示兩個非負整數。位數按照逆序方式存儲,它們的每個節點只存儲單個數字。將兩數相加返回一個新的鏈表。 你可以假設除了數字 0 之外,這兩個數字都不會以
【leetcode】兩數相加(演算法)
兩數之和 給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 看到題目我首先想到的是將目標值(target)拆分,將目標值變成0+target,1+(target-1),...,(targe
[Leetcode] 2. 兩數相加 java
給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例: 輸入:(2 -> 4 -> 3) + (5 -> 6 ->
Leetcode進階----學習(一)【兩數相加、無重複字元的最長字串】
①兩數相加 給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例: 輸入:(2 -> 4 -> 3) + (5 -> 6 ->
每日一題--LeetCode 2(兩數相加)java
題目描述: 程式碼如下: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x)
leetcode 2. 兩數相加 C語言版
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) { struct ListNode* l = (struct ListNode*)malloc(sizeof(struct ListNode));
leetcode 刷題(2)--- 兩數相加
nullptr solution 原因 == 表示 node etc 數字 個數字 給定兩個非空鏈表來表示兩個非負整數。位數按照逆序方式存儲,它們的每個節點只存儲單個數字。將兩數相加返回一個新的鏈表。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例: 輸
【LeetCode】Add Two Numbers(兩數相加)
handle bae gif return one cast select inline 產生 這道題是LeetCode裏的第2到題。 這道題的條件判斷很簡單,如下: 1.是否為尾節點 2.是否產生進位 3.是否等於9 4.是否需要拓展空間 代碼如下: ListNod
leetcode演算法題2:兩數相加
題目:給出兩個非空的連結串列用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回一個新的連結串列來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。 示例:輸入:(2 -&g