加一

作者: 面向全麦面包编程 | 来源:发表于2020-07-15 16:14 被阅读0次

66. 加一

直接上代码

    //时间复杂度是O(N),空间复杂度O(N)
    public int[] plusOne(int[] digits) {
        int n = digits.length - 1;
        digits[n] += 1;
        for (int i = n; i > 0 && digits[i] == 10; i--) {
            digits[i] = 0;
            digits[i - 1] += 1;
        }
        if (digits[0] != 10) return digits;
        else {
            digits[0] = 0;
            int[] temp = new int[digits.length + 1];
            temp[0] = 1;
            System.arraycopy(digits, 0, temp, 1, digits.length);
            return temp;
        }
    }

Tips:

  • 本质是小学按位相加,传播进位
  • 每次遍历一个数组元素,时间复杂度显而易见
  • 至于空间复杂度高完全是因为给你的是数组,返回的也是数组,如果是List<Integer>的链表完全可以O(1)

相关文章

  • 加一

    从迷糊到清醒 不过是瞬间,就好像你突然不再是那个扎着马尾蹦蹦跳跳不知道烦恼的孩童,会想起在学校的时候,无聊而有趣难...

  • 一加

    给孩子一个梦想,还孩子一个明天。

  • 一加

    今天下午看了一加的发布会,以前也看过,今天认真的看了一下,觉得刘作虎也是实在人,说的相对客观,但有时候略显啰嗦,感...

  • 加一

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

  • 加一

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

  • 加一

    66. 加一 直接上代码 Tips: 本质是小学按位相加,传播进位 每次遍历一个数组元素,时间复杂度显而易见 至于...

  • 加一

    前几天娃就说想吃猪大肠。外面卖的看着实在是不怎么样。于是决定自己动手。 一直拖到今天才去市场买了三根大肠头和一个猪...

  • 加一

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

  • 加一

    终于下了一个早班了,尽然突然有点小开心还。可惜我都做好了,跑路的准备了。真的是一个坑的感觉,可能感觉不到什么成长性...

  • 加一

    给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。 该数字按照数位高低进行排列,最高位的数在...

网友评论

      本文标题:加一

      本文链接:https://www.haomeiwen.com/subject/focjhktx.html