1 Star 0 Fork 0

临窗旋墨/basics

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
J0066_E_PlusOne.java 1.77 KB
一键复制 编辑 原始数据 按行查看 历史
临窗旋墨 提交于 2021-01-05 09:31 . leetcode : 70. 爬楼梯
package pers.vic.basics.leetcode;
import java.util.Arrays;
/**
* @description: 66. 加一 {@literal https://leetcode-cn.com/problems/plus-one/}
* @author Vic.xu
* @date: 2020/12/29 0029 9:16
*/
public class J0066_E_PlusOne {
/*
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
*/
public static int[] plusOne(int[] digits) {
for (int i = digits.length - 1; i >= 0; i--) {
int temp = digits[i] + 1;
digits[i] = temp % 10;
if (temp <10) {
return digits;
}
}
//因为只有99 999 类似的才能进位到最后
int[] res = new int[digits.length + 1];
res[0] = 1;
return res;
}
public static int[] plusOne2(int[] digits) {
int carry = 0;
for (int i = digits.length - 1; i >= 0; i--) {
int temp = digits[i] + 1;
if (temp > 9) {
digits[i] = temp % 10;
carry = 1;
} else {
digits[i] = temp;
carry = 0;
break;
}
}
if (carry > 0) {
int[] res = new int[digits.length + 1];
res[0] = carry;
System.arraycopy(digits, 0, res, 1, digits.length);
return res;
}
return digits;
}
public static void main(String[] args) {
int[] digits = {1, 2, 3};
System.out.println(Arrays.toString(plusOne(digits)));
int[] digits2 = {9, 9, 9};
System.out.println(Arrays.toString(plusOne(digits2)));
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/xuqiudong/basics.git
git@gitee.com:xuqiudong/basics.git
xuqiudong
basics
basics
master

搜索帮助

Cb406eda 1850385 E526c682 1850385