1.问题描述
https://leetcode-cn.com/problems/plus-one/
2.解题代码
2.1 朴素解法
/*
* @lc app=leetcode.cn id=66 lang=csharp
*
* [66] 加一
*/
// @lc code=start
public class Solution {
public int[] PlusOne(int[] digits) {
int[] intArr=new int[digits.Length];
bool full=true;
for (int i = digits.Length-1; i >=0; i--)
{
int result=digits[i];
if(full)
{
result+=1;
}
if(result>9)
{
intArr[i]=result-10;
full=true;
}
else
{
intArr[i]=result;
full=false;
}
}
int[] returnArr=null;
int index=0;
if(full)
{
returnArr=new int[digits.Length+1];
returnArr[0]=1;
index=1;
}
else
{
returnArr=new int[digits.Length];
}
for (int i = 0; i < intArr.Length; i++)
{
returnArr[i+index]=intArr[i];
}
return returnArr;
}
}
// @lc code=end
2.2 官方解法
public class Solution {
public int[] PlusOne(int[] digits) {
int n = digits.Length;
for (int i = n - 1; i >= 0; --i) {
if (digits[i] != 9) {
++digits[i];
for (int j = i + 1; j < n; ++j) {
digits[j] = 0;
}
return digits;
}
}
// digits 中所有的元素均为 9
int[] ans = new int[n + 1];
ans[0] = 1;
return ans;
}
}