当前位置: 首页 > article >正文

leetcode (算法)66.加一(python版)

需求

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 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]

代码

class Solution:
    # todo 方法一
    # 将原本列表中数字转化为字符串保存下来,再将字符串转化为整数,进行+1操作
    # 之后将操作后的数字转化为字符串进行便利,将便利结果追加到新的列表中
    def add_one(self,list_int):
        result=''
        result_list=[]
        for i in list_int:
            result+=str(i)
        # print(int(result))
        result=str(int(result)+1)
        # print(result)
        for i in result:
            result_list.append(int(i))
        return result_list

    # todo 方法二
    # 初始化一个进位变量 carry 为 1。
    # 从数组的最后一位开始,依次将当前位上的数字加上进位变量 carry。
    # 如果当前位的结果大于等于 10,则将进位变量 carry 设为 1,并将当前位的结果减去 10。
    # 如果当前位的结果小于 10,则将进位变量 carry 设为 0,并停止遍历。
    # 继续处理前一位,重复步骤 2-4,直到处理完所有位或进位变量 carry 变为 0。
    # 如果处理完所有位后,进位变量 carry 仍为 1,说明原数组的最高位有进位,需要在数组的头部插入一个 1。
    def plusOne(self,digits):
        carry = 1
        for i in range(len(digits) - 1, -1, -1):
            digits[i] += carry
            if digits[i] >= 10:
                digits[i] -= 10
                carry = 1
            else:
                carry = 0
                break
        if carry == 1:
            digits.insert(0, 1)
        return digits


if __name__ == '__main__':
    call=Solution()
    list_int=[1,2,3,4]
    digits=[1,2,3,9]
    print(call.add_one(list_int))
    print(call.plusOne(digits))

运行结果

在这里插入图片描述


http://www.kler.cn/a/232566.html

相关文章:

  • 67页PDF |埃森哲_XX集团信息发展规划IT治理优化方案(限免下载)
  • Spring——事务
  • Python Plotly 库使用教程
  • 飞牛云fnOS本地部署WordPress个人网站并一键发布公网远程访问
  • 如何使用 Web Scraper API 高效采集 Facebook 用户帖子信息
  • 三、损失函数
  • 美国服务器如何
  • 眸思MouSi:“听见世界” — 用多模态大模型点亮盲人生活
  • Bee+SpringBoot稳定的Sharding、Mongodb ORM功能(同步 Maven)
  • C#系列-访问SqlServer+Mysql+Oracle数据库(6)
  • 4.0 Zookeeper Java 客户端搭建
  • B2080 计算多项式的值(洛谷)
  • 【Linux】Linux开发工具(yum、gdb、git)详解
  • API接口访问鉴权设计和实现的经验总结
  • 如何开始深度学习,从实践开始
  • seata分布式事务
  • Redis 单线程
  • Qt网络编程-ZMQ的使用
  • 算法随想录第五十一天打卡|309.最佳买卖股票时机含冷冻期, 714.买卖股票的最佳时机含手续费 ,总结
  • npm install express -g报错或一直卡着,亲测可解决
  • HLS 三角函数报错:undefined reference to ‘cordic_apfixed::circ_table_arctan_128‘
  • 蓝桥杯省赛模板构建——uart
  • 告别mPDF迎来TCPDF和中文打印遇到的问题
  • 【数据分享】1929-2023年全球站点的逐年平均风速(Shp\Excel\免费获取)
  • C#用Array类的FindAll方法和List<T>类的Add方法按关键词在数组中检索元素并输出
  • 【专业技术】高效并行分布式深度学习策略,助力模型训练与量化