258. Add Digits [easy] (Python)

【十万字拆解】从零开始实现GPT-2(完整版) 本文是一篇 14 万字、从零硬核实现 GPT 的保姆级指南。内容全面覆盖四个阶段:①从最基础的 Bigram 语言模型切入,跑通数据处理与训练闭环;②仿照 Transformer 架构,深度研究 Multi-Head Attention、残差网络、LayerNorm 及 Dropout 的底层数学与代码实现;③从零构建BPE 分词器,对齐 GPT-2 规范;④从头搭建 GPT-1/2 工业级预训练流程,包含混合精度、梯度累积等十余项硬件级工程调优,并在 AutoDL 算力平台上从0开始训练!适合所有层次! 阅读详情

题目链接

https://leetcode.com/problems/add-digits/

题目原文

Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.

For example:
Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.

Follow up:
Could you do it without any loop/recursion in O(1) runtime?

题目翻译

给定一个非负整数,将该整数的所有数字的和作为新的整数,重复直至得到只有一个数的整数。
比如:给定num=38,上述过程为:3 + 8 = 11, 1 + 1 = 2。因为2只有一个数字,所以返回2。
进一步:你能不用迭代或循环,在O(1)时间解决该问题吗?

思路方法

Hint:
1. A naive implementation of the above process is trivial. Could you come up with other methods?
2. What are all the possible results?
3. How do they occur, periodically or randomly?
4. You may find this Wikipedia article useful.

思路一

先不考虑“进一步”,根据定义来循环计算,效率低,但是可以AC。

代码

class Solution(object):
    def addDigits(self, num):
        """
        :type num: int
        :rtype: int
        """
        while num > 9:
            s = 0
            while num >= 1:
                s += num%10
                num /= 10
            num = s
        return num

思路二

根据提示,当输入从1到100变化时,可以发现,输出在“1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,…”这样循环。于是,就有了下面O(1)的算法。
dr(n) = 0, if n = 0
dr(n) = 9, if n != 0 and n mod 9 == 0
dr(n) = n mod 9, if n mod 9 != 0
或,
dr(n) = 1 + (n-1) mod 9

这个问题又叫做“digit root”问题,参看:
https://en.wikipedia.org/wiki/Digital_root#Congruence_formula

代码一

class Solution(object):
    def addDigits(self, num):
        """
        :type num: int
        :rtype: int
        """
        if num == 0:
            return 0
        else:
            return 1 + (num - 1) % 9

代码二

class Solution(object):
    def addDigits(self, num):
        """
        :type num: int
        :rtype: int
        """
        if num == 0:
            return 0
        elif num % 9 == 0:
            return 9
        else:
            return num % 9

PS: 新手刷LeetCode,新手写博客,写错了或者写的不清楚还请帮忙指出,谢谢!
转载请注明:http://blog.youkuaiyun.com/coder_orz/article/details/51378231

全双工AI语音交互:从原理到实践,构建实时对话系统 语音交互技术正从传统的半双工模式向全双工模式演进,以实现更自然、实时的对话体验。全双工交互的核心原理在于模拟人类电话通话,允许双方同时发送和接收音频流,这需要流式语音识别(Streaming ASR)和实时自然语言理解(Real-time NLU)技术的深度整合。其技术价值在于显著降低交互延迟,支持智能打断(Barge-in),从而提升人机对话的流畅度和自然度。在应用场景上,全双工技术是智能助手、实时翻译、车载语音及无障碍交互等领域的关键突破。本文以微软MAI Realtime等模型为例,探讨如何利用开源技 阅读详情

相关推荐

ICM42670-P嵌入式开发实战:从寄存器配置到姿态解算全解析

本文全面解析ICM42670-P高性能6轴MEMS运动传感器的嵌入式开发实战,涵盖寄存器配置、数据采集滤波、低功耗优化及姿态解算算法。通过详细代码示例和应用案例,帮助开发者快速掌握从硬件对接到姿态跟踪系统的完整开发流程,适用于可穿戴设备和智能家居等低功耗应用场景。

gold的博客 1067

Add Digits -- 增加数字

Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. 给出一个正整数,对它的每一位进行相加,直到结果是个一位的数字。

whyalwaysmea 675

IP2315高效同步降压充电IC在快充应用中的硬件与软件控制策略

本文深入解析IP2315高效同步降压充电IC在快充应用中的硬件与软件控制策略,涵盖其核心特性、硬件电阻调节技巧、I2C动态控制方案、散热设计优化及典型问题排查。IP2315支持多种快充协议,如Type-C PD、华为FCP等,适用于便携设备快速充电需求,并通过I2C实现灵活的充电参数设置,提升充电效率与安全性。

weixin_29248313的博客 539

Python : 深度学习DIGITS

DIGITS并不是一个真正的深度学习库(虽然它是用Python写的)。DIGITS(深度学习GPU培训系统)实际上是用于培训Caffe深度学习模式的web应用程序(虽然我认为你可以破解源代码然后使用Caffe以外其他的后端进行工作,但这听起来就像一场噩梦)。 如果你曾经用过Caffe,那么你就会知道通过它的终端来定义.prototxt文件、生成图像数据、运行网络并监管你的网络训练是相当繁琐的。 D...

weixin_44523387的博客 3324

避开PFC设计大坑:从环路分析到参数整定的5个常见误区与解决方案

本文深入解析PFC电路设计中从环路分析到参数整定的5个常见误区,包括电感参数设计、小信号模型适用边界、电压环与电流环耦合效应等。通过实际案例和PSIM仿真数据,提供工程落地的解决方案,帮助工程师避开设计陷阱,提升电路性能与可靠性。

weixin_30666401的博客 325

告别CMake依赖!在Visual Studio 2022中直接配置VTK 9.4开发环境(附完整项目示例)

本文详细介绍了如何在Visual Studio 2022中直接配置VTK 9.4开发环境,无需依赖CMake。通过图文教程和完整项目示例,帮助C++开发者快速集成VTK库,简化开发流程,提升工作效率。特别适合科学可视化任务的开发者。

weixin_26804345的博客 415

DIGITS使用步骤

1 切换到你的digits目录下 2 ./digits-devserver 启动digits 3 在浏览器上输入 http://0.0.0.0.5000/ (将其作为一个服务器) 4 制作数据库,制作模型     自己在用vgg模型时遇到的问题   需要自定义网络(将train_val.prototxt进行修改)再下载一个预训练模型。 下面是网上搜到的修改prototxt的方法

fish20122016的博客 1万+

电路设计学习一:DAC/ADC原理

文章目录参考文献DAC基本原理DAC分类倒T型电阻网络权电流转换器DAC的性能指标分辨率转换速度ADC基本原理ADC分类ADC的性能指标ADC的位数分辨率基准源转换速率量化误差 参考文献 DAC数模转换/ADC模数转换 单片机 AD/DA数模转换 模数转换(A/D)与数模转换(D/A) DAC基本原理 DAC将输入的数字量按权的大小,通过电阻网络转化为模拟量,再通过加法电路,转换为与数字量成比例的模拟量。 实际上就是二进制转换为十进制的过程。 基本组成包括锁存器、电子开关、基准源、权电阻网络和求和电路。 锁

coin的博客 3万+

digit函数

digit函数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 420     通过数: 247  【题目描述】 在程序中定义一函数digit(n,k),它能分离出整数n从右边数第k个数字。 【输入】 正整数n和k。 【输出】 一个数字。 【输入样例】 31859 3 【输出样例】 8 【来源

小马的博客 1万+

【图像超分】论文复现:新手入门!Pytorch实现SRCNN,数据预处理、模型训练、测试、评估全流程详解,注释详细,简单修改就可以训练你自己的图像数据,有训练好的模型下载地址,随取随用

【图像超分】论文精读:Image Super-Resolution Using Deep Convolutional Networks(SRCNN)请配合上述论文精读文章使用,效果更佳!图像超分辨率SRCNN和FSRCNN复现代码,除基本的网络实现外,还有特征图可视化,PSNR曲线图可视化,测试自己的图像数据等不想理解原理,希望直接跑通然后应用到自己的图像数据的同学,请直接下载上面的代码,有训练好的模型,直接用即可。具体使用方式见代码中的README!有问题来本文评论区留言!准备数据集,以及数据预处理。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 2万+

Ubuntu 22.04+/WSL2 中解决 `error: externally-managed-environment` 并成功安装 PyTorch + vLLM 的完整指南

Ubuntu 22.04+/WSL2 因遵循 PEP 668 规范,系统 Python 被标记为“外部管理”,导致直接使用 pip install 安装包时报错 externally-managed-environment。解决方案是创建虚拟环境: 通过 python3 -m venv ~/vllm-env 创建隔离环境 激活环境后安装 PyTorch(CUDA 12.1)和 vLLM 避免使用 sudo pip 或 --break-system-packages,防止破坏系统依赖 关键点: 虚拟环

刘一说的IT专栏 296

初识“列表”--Python入门笔记

列表(List)是 Python 中最基本、最常用的可变序列(Mutable Sequence),可以动态增删改,支持多种数据类型混合存储,是 Python 编程的核心数据结构之一。

2301_79195831的博客 1634

用ChatGPT 5.5掌握SCI的4个实操润色技巧,论文质量极速提升!(附提示词)

ChatGPT 5.5的发布,在学术写作中的应用变得更加精准和安全,通过正确的使用方法,不仅可以改善语法与表达,让论文达到SCI发表水准,还能最大程度保留作者原意,将AIGC检测率控制在低风险区间。可以帮大家省下大量纠结语法、梳理逻辑的时间,在保证润色质量的同时,兼顾AIGC检测的合规要求,为论文投稿成功率提供实实在在的提升。通过智能调整语序、优化用词和句式结构,该方法能够在保留学术质感的同时,使文章表达更自然、贴近人工撰写的风格,从而避免文字过于程式化,提升论文整体可读性和表达的个性化特征。

智能AI让学术科研更容易 64

Leetcode----258.Add Digits(easy)

Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. For example: Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has

Txiaomiao的博客 532

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【LeetCode】 258. Add Digits 解题报告(Java & Python)

Add Digits [LeetCode] Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.

负雪明烛 1731

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

leetcode(3),Add Digits详解(python)

question: 一个非负整数,将所有位数上的数字相加,得到一个数,如果得数不是个位数,继续相加,直到得数为个位数为止。 例入,num=38,3+8=11,1+1=2。写一段代码,计算所有数相加的得数。 answer: 初级:使用循环或递归解题。 def adddigits(num): snum = str(num) count = len(snum) re

吴祺育的技术记录 1787

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Leetcode】258. Add Digits(配数学证明)

题目地址: https://leetcode.com/problems/add-digits/ 给定一个非负整数nnn,加总其各位数之和得到另一个整数,再重复做此操作直到得到一位数。求那个一位数。 首先如果这个数本身就是一位数,则返回自己;否则判断一下其能否被999整除,如果能则返回999,否则返回余数。代码如下: public class Solution { public int addDigits(int num) { if (num < 10) {

数学、算法爱好者的博客 252

ArcGis如何插入图片_如何批量插入图片,并自动排版——《超级处理器》应用

下表中,如何将图片插入到对应的单元格中,数据不多的话,可以手动操作。如果有几十个数据,甚至更多的数据,怎么批量快速插入,并排版好呢?人员名单我们用《超级处理器》中的批量插入图片功能,可以自动完成,具体操作步骤如下:操作流程打开超级处理器;点击批量插入图片;插入方式,选择根据单元格内容添加图片;大小设定选择指定大小,高度输入30,宽度输入25;点击确定;选中要插入的图片并点击打开;选择图片名称所在单...

weixin_39520149的博客 3007

python学习之——Add Digits

Given a non-negative integernum, repeatedly add all its digits until the result has only one digit. For example: Givennum = 38, the process is like:3 + 8 = 11,1 + 1 = 2. Since2has only one dig...

weixin_30443731的博客 224

addDigits 加数字

问题: Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. For example: Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only on...

初学者乐园的博客 481

Python的string模块

和是用于表示字母和数字字符的常量字符串。它们可以用于生成随机字符串验证字符串内容或其他需要处理字母和数字的场景。这些常量使得处理字符串的任务变得更加简单和直观。

weixin_50537404的博客 778

LeetCode之路:258. Add Digits

LeetCode之路:258. Add Digits 一、引言这是一道比较难的题,之所以下这个定义,是因为要做出来这道题的正确答案,需要一点点数学知识。当然,能看到这篇博客的人,大部分都是程序员,那么作为程序员,我们自然有自己的方法来实现它,这样看来,这道题其实也不算太难。直接上题目信息吧: Given a non-negative integer num, repeatedly add all its

(ÒωÓױ) 956

@Digits长度限制与mysql数据库中decimal长度限制不一致问题

在 MySQL 数据库中,decimal(24,2) 中的 24 和 2 分别代表了 DECIMAL 数据类型的总位数和小数位数的含义。因此,decimal(24,2) 数据类型可以存储总共 24 位数,其中 2 位用于小数部分,剩余 22 位用于整数部分。对于 decimal(24,2),可以存储像 12345.67 这样的数字,其中整数部分占 5 位,小数部分占 2 位。对于 decimal(24,2),可以存储像 0.01 这样的数字,其中整数部分占 1 位,小数部分占 2 位。

zzy7075的专栏 1929

python中digits用法_在sklearn digits examp中使用自己的图像

所以我一直在研究sklearn和python,试图理解机器学习是如何工作的。我的基本例子是对的,但有一件事我正在努力。在例如,假设我正在使用digits数据集,一旦我准备好并测试了分类器。在这个例子中,我该如何使用自己手写的图像呢?在我设法加载了图像并用matplotlib读取了它的像素,但是我从中得到了一个数组(8,8,3),而digits数据集的一个样本的形状是(8,8)。在这是我用来训练分类...

weixin_39954487的博客 2907

pythondigits_Python标准库

round(number[, ndigits])返回 number 舍入到小数点后 ndigits 位精度的值。 如果 ndigits 被省略或为 None,则返回最接近输入值的整数。对于支持 round() 的内置类型,值会被舍入到最接近的 10 的负 ndigits 次幂的倍数;如果与两个倍数的距离相等,则选择偶数 (因此,round(0.5) 和 round(-0.5) 均为 0 而 rou...

weixin_39876592的博客 1677

java digit_LeetCode算法题-Add Digits(Java实现-3种解法)

这是悦乐书的第199次更新,第207篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第63题(顺位题号是258)。给定非负整数num,重复添加其所有数字,直到结果只有一位数。例如:输入:38输出:2说明:过程如下:3 + 8 = 11,1 + 1 = 2。由于2只有一位数,所以请将其返回。跟进:你可以在O(1)运行时间内没有任何循环/递归的情况下执行此操作吗?本次解题使用的...

weixin_35761245的博客 210
上一篇: 292. Nim Game [easy] (Python)
下一篇: 226. Invert Binary Tree [easy] (Python)
coder_orz
博客等级 码龄14年 102粉丝 90原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值