【leetcode-66】 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例 1:
输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。
示例 2:
输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。 我的错误解法:
不能转为数字然后操作,算法正确但是会越界然后得不到正确结果
    public static int[] plusOne(int[] digits) {
        int num = 0;
        for (int i=0;i<digits.length;i++) {
            num = num*10 + digits[i];
        }
        num = num + 1;
        //新数长度
        int length = 0;
        int k = num;
        while(k !=0) {
            k /= 10;
            length++;
        }
        int[] res = new int[length];
        for (int i=length-1;i>=0;i--) {
            res[i] = num%10;
            num = num/10;
        }
        return res;
    }
参考解法:
链接:https://www.nowcoder.com/questionTerminal/4d135ddb2e8649ddb59ee7ac079aa882
来源:牛客网 //1.不需要flag! 从右向左,遇到9就变0,非9就加1,然后break;
//2.digits[0]如果等于0,说明长度增加了1,则新建数组,首位为1,其他位为0;
public int[] plusOne(int[] digits) {
for (int i = digits.length-1; i >= 0 ; i--) {
if (digits[i] == 9)digits[i] = 0;
else {
digits[i] = digits[i]+1;
break;
}
}
if (digits[0] == 0){
int[] arr = new int[digits.length+1];
arr[0] = 1;
for (int i = 1; i < arr.length; i++) arr[i] = 0;
return arr;
}
return digits;
}
【leetcode-66】 加一的更多相关文章
- 前端与算法 leetcode 66. 加一
		目录 # 前端与算法 leetcode 66. 加一 题目描述 概要 提示 解析 解法一 解法二 算法 # 前端与算法 leetcode 66. 加一 题目描述 给定一个由整数组成的非空数组所表示的非 ... 
- Java实现 LeetCode 66 加一
		66. 加一 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示 ... 
- [LeetCode]66. 加一(数组)
		###题目 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 ... 
- python(leetcode)-66加一问题
		给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: 输入 ... 
- Leetcode——66.加一
		@author: ZZQ @software: PyCharm @file: leetcode66_加一.py @time: 2018/11/29 16:07 要求:给定一个由整数组成的非空数组所表示 ... 
- Leetcode 66.加一 By Python
		思路 如果单独操作最后一个元素,令其加一,满十进一,会挺麻烦的,要分情况. 所以我的思路是将list还原到字符串,再变成数值,直接+1,然后再还原到list.详见代码 代码 class Solutio ... 
- [LeetCode]66.加一(Java)
		原题地址: plus-one 题目描述: 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 ... 
- leetcode 66.加一 python3
		class Solution: def plusOne(self, digits): """ :type digits: List[int] :rtype: List[i ... 
- LeetCode:加一【66】
		LeetCode:加一[66] 题目描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 0 之外 ... 
- 【Leetcode】【简单】【66. 加一】【JavaScript】
		题目描述 66. 加一 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零 ... 
随机推荐
- Matplotlib学习---用seaborn画联合分布图(joint plot)
			有时我们不仅需要查看单个变量的分布,同时也需要查看变量之间的联系,这时就需要用到联合分布图. 这里利用Jake Vanderplas所著的<Python数据科学手册>一书中的数据,学习画图 ... 
- day5 range 用法示例
			函数语法 range(start, stop[, step]) 参数说明: start: 计数从 start 开始.默认是从 0 开始.例如range(5)等价于range(0, 5); stop: ... 
- 爬虫_淘宝(selenium)
			总体来说代码还不是太完美 实现了js渲染网页的解析的一种思路 主要是这个下拉操作,不能一下拉到底,数据是在中间加载进来的, 具体过程都有写注释 from selenium import webdriv ... 
- Pycharm自动添加文件头注释
			1.选择File -> Settings 2.选择 File and Code Templates -> Files -> Python Script 3.设置 #!/usr/bin ... 
- 763. Partition Labels
			我一开始看数据范围很小,没怎么想就直接暴力了. 暴力的思路是: 对于每一段S的前缀,这个前缀中的每一个字母都不应该在前缀的补集中出现,所以直接循环i:0 to S.length然后对于每一次循环,再循 ... 
- Tomcat内存监控及调优
			JDK(1.6版本以上)自带有个jvisualvm工具.该工具是用来监控java运行程序的cpu.内存.线程等的使用情况.并且使用图表的方式监控java程序.还具有远程监控能力. 界面如下: 1.JD ... 
- Python函数的定义与调用、返回值、参数
			一.函数是什么 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.比如print(),len()等.但你也可以自己创建函数,这被叫做用户自 ... 
- celery分布式异步框架
			1.什么是Celery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组成,消息中间件( ... 
- JAVA 微信支付  native方式
			最近做了一个微信native方式支付的demo,整理一下. 首先到微信公众号官网阅读开发文档,虽然文档对于java没有例子,但是也可以作参考.https://pay.weixin.qq.com/wik ... 
- spring中获取当前项目的真实路径
			总结: 方法1: WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext ... 
