精华内容
下载资源
问答
  • Leetcode 加一

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

    加一

    题目描述:

    给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
    最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
    你可以假设除了整数 0 之外,这个整数不会以零开头。
    提示:
       1 <= digits.length <= 100
       0 <= digits[i] <= 9

    题目链接

    class Solution {
        public int[] plusOne(int[] digits) {
            int carry = 0; // 进位
            for(int i = digits.length-1 ; i>=0 ; i--){
                if(i == digits.length - 1){
                    int temp = digits[i]+1+carry;
                    carry = temp/10;
                    digits[i] = temp%10;
                }else{
                    int temp = digits[i]+carry;
                    carry = temp/10;
                    digits[i] = temp%10; 
                }
            }
            if(carry == 1){
                int[] result = new int[digits.length+1];
                result[0] = carry;
                System.arraycopy(digits,0,result,1,digits.length);
                return result;
            }else{
                return digits;
            }
        }
    }
    

    按照题意逻辑即可。

    展开全文
  • leetcode 加一

    2021-03-26 14:33:13
    109 / 109 个通过测试用例状态:通过执行用时:1 ms内存消耗:34.9 MB提交时间:6 月,3 周之前class Solution { public int[] plusOne(int[] digits) { if (digits[digits.length - 1] < 9){digits[digits....

    109 / 109 个通过测试用例
    状态:通过
    执行用时:1 ms
    内存消耗:34.9 MB
    提交时间:6 月,3 周之前

    class Solution {
        public int[] plusOne(int[] digits) {
     if (digits[digits.length - 1] < 9){digits[digits.length - 1] += 1;return digits;}
            int temp = 1;
            int[] nums = new int[digits.length+1];
            nums[0] = 1;
            if (digits.length == 1 && digits[0] == 9)return nums;
            digits[digits.length - 1] = 0;
            for (int i = digits.length - 2; i >= 0 ; i--) {
                if (digits[i] == 9 && temp > 0){
                    digits[i] = 0;
                    temp = 1;
                }else if (digits[i] < 9 && temp > 0){
                    digits[i] += temp;
                    temp = 0;
                }
                if ((digits[0] == 9 || digits[0] == 0) && temp > 0) {
                    return nums;
                }
            }
            return digits;
        }
    }
    展开全文
  • leetCode加一

    2019-07-15 22:27:01
    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 来源:力扣(LeetCode...

    66.

    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

    最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。

    你可以假设除了整数 0 之外,这个整数不会以零开头。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/plus-one
     

    解法:

    public static int[] plusOne(int[] digits) {
                
            for(int i=digits.length-1;i>=0;i--){//从最后一位开始
                digits[i]++;
                digits[i]=digits[i]%10;
                if(digits[i]!=0) return digits;
            }
            digits=new int[digits.length+1];//原来的数组每位都是9,创建一个新数组并且比原数组多一位
            digits[0]=1;//第一位为1,因为其他都是0
            return digits;
            }
        
        
        public static void main(String[] args) {
            int[] digits={4,2,2,1};
            int[] l=plusOne(digits);
            for(int a:l){
                System.out.print(a+" ");
            }
            

        }

    展开全文
  • LeetCode 加一

    2020-02-01 14:16:23
    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] ...

    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
    最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

    你可以假设除了整数 0 之外,这个整数不会以零开头。

    示例 1:

    输入: [1,2,3]
    输出: [1,2,4]
    

    解释: 输入数组表示数字 123。
    示例 2:

    输入: [4,3,2,1]
    输出: [4,3,2,2]
    

    解释: 输入数组表示数字 4321。

    主要思路:

    这个题只需要考虑进位问题,从右往左判断,无进位则结束,末位+1,进位则置0,继续判断是否进位。

    代码实现:

    //判断是否有进位
    int plus(int x)
    {
        if (x + 1 >= 10)  
            return 1;
        else
        {
            return 0;
        }
    }
    vector<int> plusOne(vector<int> &digits)
    {
        const int n = digits.size();
        int i = n - 1;
        //循环判断到进位到哪一位结束
        while (i >= 0 && plus(digits[i]) != 0)  
        {
            digits[i] = 0;
            i--;
        }
        //判断 9,99等情况,需要改变数组大小,首位置1
        if (i < 0)
        {
            digits.resize(n + 1);
            for (int k = n; k >= 1; k--)
            {
                digits[k] = digits[k - 1];
            }
            digits[0] = 1;
        }
        else
        {
            digits[i] += 1;
        }
        return digits;
    }
    
    展开全文
  • leetcode加一

    2018-09-08 14:11:44
    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,...
  • LeetCode加一

    2018-04-24 23:45:12
    加一给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,...
  • leetcode 加一 C++

    2019-09-10 21:22:47
    class Solution { public: vector<int> plusOne(vector<int>& digits) { int len = digits.size()-1; for(int i=len;i>=0;i--){ //如果发生了进位 if((dig...
  • leetcode加一c++

    2019-04-01 15:09:57
    加一 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: ...
  • java解LeetCode 加一

    2020-11-02 09:06:34
    1.加一 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例1: 输入...
  • 解题思路:加一有两种情况,第一种情况是数组的最后一个元素不是9,那么就直接给最后一个元素加1,第二种情况是最后一个元素是9,则将当前位置的数字置0,再检查倒数第二个元素…以此类推。当所有元素都置0后,检查...
  • LeetCode加一(Python)

    2020-08-08 09:40:56
    题目 解题思路 感觉也没什么技巧,无非就是9+1会产生进位这一点,先上...跳出while循环时,要不就是数组里全是9,i 变成 -1 了,这时候要在首位加一个1;要不就是碰到非9的数字了,那直接加1即可。 执行结果为: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,703
精华内容 4,681
关键字:

leetcode加一