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-简单-加一的主要内容,如果未能解决你的问题,请参考以下文章