其他分享
首页 > 其他分享> > leetcode-66-加一

leetcode-66-加一

作者:互联网

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;
    }
}

标签:digits,加一,int,intArr,returnArr,Length,result,66,leetcode
来源: https://blog.csdn.net/a13407142317/article/details/120871144