精华内容
下载资源
问答
  • 2022-01-24 13:14:21

    1.题目详情        leetcode 加一

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

    2.解题思路

    1. 倒序遍历数组,若最后一位不为9,则最后一位加一后返回。
    2. 若最后一位为9,则将最后一位的值置为零,下一位(即倒数第二位)的值加一返回。
    3. 依次检索值为9的位数,并进行操作。
    4. 若数组中的值均为9(即跳出循环了),创建一个新数组,长度为原数组长度加一,将首位置0后返回。
    class Solution {
        public int[] plusOne(int[] digits) {
            for(int i=digits.length-1;i>=0;i--){
                if(digits[i]!=9){
                    digits[i]++;
                    return digits;
                }
                digits[i]=0;
            }
            int[] temp=new int[digits.length+1];
            temp[0]=1;
            return temp;
        }
    }
    更多相关内容
  • 解题思路:加一有两种情况,第一种情况是数组的最后一个元素不是9,那么就直接给最后一个元素加1,第二种情况是最后一个元素是9,则将当前位置的数字置0,再检查倒数第二个元素…以此类推。当所有元素都置0后,检查...

    在这里插入图片描述
    解题思路:加一有两种情况,第一种情况是数组的最后一个元素不是9,那么就直接给最后一个元素加1,第二种情况是最后一个元素是9,则将当前位置的数字置0,再检查倒数第二个元素…以此类推。当所有元素都置0后,检查第一个元素是不是0,如果是,通过数组的unshift()方法,给数组添加一个数值为1的首元素。

    var plusOne = function(digits) {
        var i;
        for(i=digits.length-1;i>=0;i--)
            {
                if(digits[i]!=9)
                    {
                        digits[i]++;
                        return digits;
                    }
                else
                    digits[i]=0;
            }
        digits.unshift(1);
        return digits;
    };
    
    展开全文
  • LeetCode加一

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

    加一

    给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。

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

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

    示例 1:

    输入: [1,2,3]
    输出: [1,2,4]
    解释: 输入数组表示数字 123。
    示例 2:

    输入: [4,3,2,1]
    输出: [4,3,2,2]
    解释: 输入数组表示数字 4321。

    解法一:
    效率不高

    vector<int> plusOne(vector<int>& digits) {
            int n=0;
            int x=0;
            vector<int>::iterator iter=digits.end()-1;
            *iter+=1; 
            for(;iter>=digits.begin();--iter)
            {
    
                if(*iter%10==0)
                {
                    if(iter!=digits.begin())
                        *(iter-1)+=1;
                    else
                        x=1;
                    *iter=0;
                    continue;
                }
                else
                {
                    break;
                }
            }
            vector<int> temp=digits;
            if(x)
                temp.insert(temp.begin(),x);
            return temp;
        }

    解法二:
    效率较高

    vector<int> plusOne(vector<int>& digits) {
            int n=digits.size();
            int toadd=1;
            for(int i=n-1;i>=0;i--){
                int sum=toadd+digits[i];
                digits[i]=sum%10;
                if(sum<10){
                    toadd=0;
                    break;
                }
            }
            if(toadd==1){
                digits.insert(digits.begin(),1);
            }
            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 加一

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

    2020-08-08 09:40:56
    题目 解题思路 感觉也没什么技巧,无非就是9+1会产生进位这一点,先上...跳出while循环时,要不就是数组里全是9,i 变成 -1 了,这时候要在首位加一个1;要不就是碰到非9的数字了,那直接加1即可。 执行结果为: ...
  • 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...
  • 加一 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: ...
  • 加一 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 Given a non-empty ...
  • 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,...
  • Leetcode 加一

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

    2019-06-16 21:26:27
    * 加一 执行用时 :1 ms, 在所有Java提交中击败了95.01%的用户 内存消耗 :34 MB, 在所有Java提交中击败了99.16%的用户*/ public static int[] plusOne(int[] digits) { if(digits .length==0){ return null; ...
  • leetcode 加一 java

    2022-04-22 09:05:05
    加一 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 class ...
  • 【Swift】LeetCode 加一

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,076
精华内容 6,430
关键字:

leetcode加一