LeetCode刷题66-简单-加一

举报
布小禅 发表于 2021/08/22 18:35:33 2021/08/22
【摘要】 LeetCode刷题66-简单-加一

在这里插入图片描述

@[toc]

☀️ 前言 ☀️

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

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

🙀 作者简介 🙀

大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的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;
    }
    
}

🌔 结语 🌔

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

期待你的关注和督促!:stuck_out_tongue:

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。