LeetCode刷题66-简单-加一

Posted 布小禅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode刷题66-简单-加一相关的知识,希望对你有一定的参考价值。

☀️ 前言 ☀️

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

第一遍,不求最优解,但求能过!!!

🙀 作者简介 🙀

大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!

📢 博客主页:❤布小禅❤
📢 作者专栏:
❤Python❤
❤Java❤

❤力扣题❤

这是我刷第 24/100 道力扣简单题

💗 一、题目描述 💗

题目描述:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:
\\color{red}{}
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
示例 2:
\\color{red}{}
输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。
示例 3:
\\color{red}{}
输入:digits = [0]
输出:[1]

提示:
\\color{red}{}
1 <= digits.length <= 100
0 <= digits[i] <= 9

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/plus-one
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

💁 二、题目解析 💁

第一思路:

一个整数数组,表示一个整数
通过遍历数组的方法将数组累加为整数再加一
结果:运行超时

第二思路:

从后遍历数组,判断每个元素
如果小于9,就让最后元素+1并返回数组
如果=9,+1的话会变成10
那么让9变成0
前一个元素在下一个循环的时候会处理
如果循环正常,说明数组元素全为9
那么新建一个数组,长度为原数组长度+1,令第一个元素为1
其他元素默认为0

需要注意的是,数组题需要判断当数组为空,数组长度为1的时候的特殊情况

🏃 三、代码 🏃

☁️ 1️⃣. python ☁️

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        n=len(digits)
        m=n
        if not digits: return None
        if n==1 and digits[0]!=9:
            digits[0]+=1 
            return digits
        while n-1>=0:
            if digits[n-1]!=9:
                digits[n-1]+=1 
                return digits
            else: digits[n-1]=0
            n-=1
        digits=[0]*(m+1)
        print(digits)
        digits[0]=1
        print(digits)
        return digits

❄️ 2️⃣. C# ❄️

public class Solution {
    public int[] PlusOne(int[] digits) {
        int n=digits.Length;
        if (n==0) return null;
        if (n==1&&digits[0]!=9) {
            digits[0]++;
            return digits;
        }
        for(int i=digits.Length-1;i>=0;i--)
        {
            if(digits[i]!=9)
            {
                digits[i]++;
                return digits;
            }else
            {
                digits[i]=0;
            }
        }
        int[] ans = new int[digits.Length+1];
        ans[0]=1;
        return ans;
    }
    
}

🌔 结语 🌔

坚持最重要,每日一题必不可少!😸

期待你的关注和督促!😛

以上是关于LeetCode刷题66-简单-加一的主要内容,如果未能解决你的问题,请参考以下文章

java刷题--66加一

⭐算法入门⭐《线性枚举》简单09 —— LeetCode 66. 加一

202004leetcode刷题记录

[leetcode] 66. 加一

LeetCode 第66题,加一

leetcode打卡--66. 加一