力扣算法笔记——加一

题目信息:

给定一个由 整数 组成的非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。
实例: 输入 **:**digits = 1,2,3

输出:1,2,4

**解释:**输入数组表示数字 123。
思路:

刚看到这道题的时候我还想终于有个能一眼看到思路的简单算法题了,没想到简单题也有坑。我的想法是先把这个数组遍历一遍赋值给一个字符串,然后把字符串转化成整数再+1,然后再拆分之后赋值给新的数组。

笨方法但是思路是正确的,But!运行的时候没问题,提交的时候就出Bug了,后来研究了一下才想到Int类型是有大小限制的,一旦组成的Int类型的数值太大,就会导致溢出。所以这个笨方法也不行。

后来看了别人的一些解法才茅塞顿开,题目是由数组组成的数基础上+1,那就可以直接在数组内给最后一位+1,如果这一位等于9,那就置0往前

正确方法

cs 复制代码
  public int[] PlusOne(int[] digits) 
    {   
        for(int i=digits.Length-1;i>=0;i--)
        {
            if(digits[i]<9)
            {
                digits[i]++;
                return digits;
            }
            digits[i]=0;

        }
        int[] outDigits=new int[digits.Length+1];
        outDigits[0]=1;
        return outDigits;
    }
复制代码
相关推荐
love530love16 小时前
【笔记】AutoClaw NSIS 安装器卡死、进程杀不掉、目录删不了?我是这么解决的
人工智能·windows·笔记·agent
可编程芯片开发19 小时前
基于MATLAB的PEF湍流风场生成器模拟与仿真
算法
谙弆悕博士19 小时前
系统集成项目管理工程师教程(第3版)笔记——第2章:信息技术发展
笔记·计算机网络·信息安全·学习方法·业界资讯·软考·系统分析师
罗西的思考19 小时前
【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (9)--- Reward Judging
人工智能·算法·机器学习
吃着火锅x唱着歌20 小时前
Effective C++ 学习笔记 条款37 绝不重新定义继承而来的缺省参数值
c++·笔记·学习
风曦Kisaki20 小时前
# Linux笔记:操作系统优化与资源管理
linux·运维·服务器·笔记
阿米亚波20 小时前
【C++】流式数据输入处理(不完全整理)
开发语言·c++·笔记
Mr.HeBoYan21 小时前
一次持续三天才出现的丢包故障——深入解析 DPDK Memory Ordering、rte_ring 与 CPU Memory Barrier (下)
linux·网络·算法·架构·dpdk
wabs66621 小时前
关于图论【深度优先搜索的理论基础】
算法·深度优先·图论
zhangrelay1 天前
笔记本轻量高品质延寿工具完整分系统清单
运维·笔记·学习