leetcode 258 各位相加 ------
給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。
示例:
輸入: 38
輸出: 2
解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返回 2。
進階:
你可以不使用迴圈或者遞迴,且在 O(1) 時間複雜度內解決這個問題嗎?
思路,題幹要求輸出結果為1位數,且時間複雜度為O(1),因此考慮原資料直接對某個數求餘數:假設二位數ab,則ab=(a10 +b)=(a9+a+b),因此ab%9 = (a+b)%9,找到了將ab與a+b對應的關係,此時用ab%9能滿足要求,但是當輸入數為9的倍數時不滿足情況,因此將原資料進行如下處理:
(ab-1)%9 +1
def addDigits(self, num):
if num <= 0:
return 0
else:
return((num-1)%9 +1)
相關推薦
leetcode 258. 各位相加
復雜度 leet ret num 整數 pan 獲得 直接 git 給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。 示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返
LeetCode--258--各位相加*
給定 -- style 由於 type 返回 col div 整數 問題描述: 給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。 示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於 2
leetcode-258. 各位相加
給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。 示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返回 2。 進階: 你可以不使用迴圈或者遞迴,且在 O(1) 時間複雜度內解決這個
Leetcode-------258. 各位相加
給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。 示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返回 2。 --------------------------
leetcode 258 各位相加 ------
給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。 示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返回 2。 進階: 你可以不使用迴圈或者遞迴,且在 O(1) 時間複雜度內解決這個
LeetCode—258. 各位相加
#include <stdio.h> #include <stdlib.h> #include <string.h> int addDigits(int num) {
leetcode 258. 各位相加(Add Digits)
pre tle solution urn 整數 目錄 相加 lse digits 目錄 題目描述: 示例: 進階: 解法: 題目描述: 給定一
Leetcode -- 258 數位相加
pan -- roc lee class 取出 do it oop urn 258. Given a non-negative integer num, repeatedly add all its digits until the result has only one
【LeetCode】各位相加
給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。 示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於2是一位數,所以返回 2。 import java.lang.reflect.Array;
258.各位相加
給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。 示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返回 2。 進階: 你可以不使用迴圈或者遞迴,且在 O(1) 時
LeetCode筆記-----各位相加
寫在前邊 本文為系列文章,記錄自己在leetcode上刷題的一些筆記,歡迎大家一塊兒討論。 題目描述 給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。 示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8
LeetCode刷題記錄——第258題(各位相加)
題目描述 給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。 示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返回 2。 思路分析 很明顯,需要
【LeetCode 簡單題】68-各位相加
宣告: 今天是第68道題。給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。以下所有程式碼經過樓主驗證都能在LeetCode上執行成功,程式碼也是借鑑別人的,在文末會附上參考的部落格連結,如果侵犯了博主的相關權益,請聯絡我刪除 (手動比心ღ( ´・ᴗ・` ))
leetcode題庫——各位相加
題目描述: 給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。 示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返回 2。 進階: 你可以不使用迴圈或者遞
各位相加
整數 pro code 思想 light int 實現 digits logs 題目鏈接 http://www.lintcode.com/zh-cn/problem/add-digits/ 題目大意 給出一個非負整數 num,反復的將所有位上的數字相加,直到得到一個一位的整
LeetCode 258. Add Digits
gpo 返回 only follow ddd java roo 來源 beat Given a non-negative integer num, repeatedly add all its digits until the result has only one dig
leetcode-258-Add Digits
process 復雜度 lee etc 原本 原來 方法 比較 AD 題目描述: Given a non-negative integer num, repeatedly add all its digits until the result has only one di
[leetcode]258.Add Digits
觀察 pub 枚舉 etc nat 規律 leetcode ret ESS 題目 Given a non-negative integer num, repeatedly add all its digits until the result has only one di
leetcode258:各位相加
思想: 根據舉例,發現最後所得數是num求餘9。但有個特殊情況,nums是9的倍數時,求餘等於0,但是按題目要求應該是9。大佬的處理是nums-1在求餘9,最終返回1+(nums-1)%9。這樣很好解決問題 class Solution: def addDigits(self, nu
LeetCode - 兩數相加 - Swift
感謝此作者 在這個基礎上添加了一些註釋,讓以後的我能看懂。 還有未解決的地方。以後有時間在解決。 問題: * 如何測試陣列。現在只能單個文字的測試。 import UIKit public class ListNode { public var val: Int