`
huntfor
  • 浏览: 201079 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

[leetcode]Plus One

 
阅读更多

这道题包含在难度一的习题汇总里面。现在单独列出来。

新博文换了一种思路,代码更简洁,空间更节省

新博文地址:[leetcode]Plus One

 

Plus One

Given a non-negative number represented as an array of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.

 

题目大意是,一个非负数用数组表示,对这个数+1,返回+1后的数组结果

第一反应肯定是把数组的数转换成自然数,但是肯定是不对的(我们只见过数位太多,用数组表示大数,逆向显然不对的,虽然我没试过,其实就是一个加法的模拟,不多说)

 

    public int[] plusOne(int[] digits) {
       		if(digits == null || digits.length == 0){
			return null;
		}
		int length = digits.length;
		int[] result = new int[1+length];//放结果,可能进位,因此多开一位
		for(int i = length - 1; i >= 0; i--){
			result[i + 1] = digits[i];
		}
		result[0] = 0;
		digits[length - 1] = digits[length - 1] + 1;
		if(digits[length - 1] < 10){
			return digits;
		}else{
			result[length] = digits[length - 1];
			for(int i = length - 1; i >= 0; i--){
				result[i] += 1;
				result[i + 1] -= 10;
				if(result[i] < 10){
					break;
				}
			}
		}
		if(result[0]!=0){
			return result;
		}else{
			int[] tem = Arrays.copyOfRange(result, 1, result.length );
			return tem;
		}
    }

 感觉自己空间开的太多。。。。

分享到:
评论

相关推荐

    java-leetcode题解之Plus One.java

    java java_leetcode题解之Plus One.java

    java-leetcode题解之066-Plus-One

    java入门 java_leetcode题解之066_Plus_One

    js-leetcode题解之66-plus-one.js

    javascript js_leetcode题解之66-plus-one.js

    LeetCode最全代码

    # [LeetCode](https://leetcode.com/problemset/algorithms/) ![Language](https://img.shields.io/badge/language-Python%20%2F%20C++%2011-orange.svg) [![License]...

    Leetcode book刷题必备

    18. Plus One:给定一个由非负整数组成的非空数组,将数组中的每个元素加一。 19. Palindrome Number:判断一个整数是否是回文数。 【链表】 20. Merge Two Sorted Lists:合并两个有序链表。 21. Add Two Numbers...

    Leetcode题目+解析+思路+答案.pdf

    - **Plus One**:给定一个整数数组,将其加一。 - **Pascal's Triangle**:生成帕斯卡三角形的某一行。 - **Merge Sorted Array**:合并两个已排序的数组,使合并后的数组仍然有序。 - **Sum**:计算数组的总和...

    LeetCode C++全解

    Plus One iv. Pascal's Triangle v. Merge Sorted Array vi. Sum vii. Find Minimum in Rotated Sorted Array viii. Largest Rectangle in Histogram ix. Maximal Rectangle x. Palindrome Number xi. Search a 2D ...

    _leetcode-python.pdf

    - Plus One: 给定一个由整数组成的非空数组,表示一个非负整数,将这个整数加一。 - Add Binary: 给定两个二进制字符串,返回它们的和。 - Text Justification: 给定一个单词数组和一个长度 maxWidth,设计一个方法...

    LeetCode leetcode部分题解答代码实现

    * Plus One:给定一个数组,返回数组每个元素加一后的结果。这个题目非常简单,只需要遍历数组,并将每个元素加一。 * Pascal's Triangle:给定一个整数 n,返回帕斯卡三角形的前 n 行。这个题目需要使用动态规划的...

    leetcode-常见考题2.pdf

    - 数学问题是算法面试中另一类重要的问题,例如 PlusOne 和 Pow(x,n) 题目涉及数学计算。 - 数学问题往往需要对特定的数学规则有深入理解,如数学归纳、组合数学等。 9. **二叉树**: - 二叉树的遍历和构建是...

    leetcode答案-LeetCode:Swift中的LeetCode

    leetcode 答案LeetCode LeetCode in Swift 这个Repo 用来存下我在LeetCode 解题的原始档,包含解题中遇到的错误,也包含解出AC ...Plus One Easy #70 Climbing Stairs Easy #83 Remove Duplicates from Sorted L

    戳气球leetcode-leetcode:leetcode

    leetcode category other hot keywords:Palindrome(mic), Subsequence Array 螺旋矩阵Spiral Matrix 顺时针打印矩阵 Next Permutation Product of Array Except Self 189.rotate-array 283.move-zero Range Sum ...

    leetcode切割分组-leetcode:leetcode

    066_plus_one.py # 数列末尾值+1 069_sqrt.py # 实现开根号 136_single_number.py # 位操作:异或(xor)操作 x ^ 0 = x; x ^ x = 0 sum 001_two_sum.py # 求list中能加和成指定值的两个位置 015_3_sum**.py # 求list...

    leetcodepython001-LeetCode:力码

    Plus One String 043 Multiply Strings 066 Add Binary Linked-list 002 Add Two Numbers Stack 020 Valid Parenthesis Hash Table 001 TwoSum Reference 完整的学习流程 How to be a softwair engineer: 其他人详解...

    判断链表是否为回文链表leetcode-LeetCode:LeetCode刷题

    6.PlusOne 加一:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 7.RemoveDuplicates 从排序数组中删除重复项:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素

    Leetcode部分试题解析

    20. **Plus One**:给数组中的所有数字加一。理解进位的概念,从数组末尾开始处理。 21. **Add Two Numbers**:两个链表表示的数相加。可以模拟笔算加法,从低位到高位逐位相加。 22. **Multiply Strings**:两个...

    leetcode java

    - "加一"(Plus One)要求在不改变原数字结构的情况下,对数字加一。 - "回文数"(Palindrome Number)问题则是判断一个整数是否为回文。 **链表(LinkedList)** 链表是一种基本的数据结构,对于链表的操作可以很好...

    leetcode-cpp刷题

    - **2.1.17 Plus One** - 给定一个表示大整数的非负数数组,将其加一。 - 实现思路:从数组末尾开始向前遍历,遇到9则进位,否则直接加一。 - **2.1.18 Climbing Stairs** - 上楼梯问题,每次可以上1阶或2阶。 ...

    c++-c++编程基础之leetcode题解第66题加一.zip

    vector&lt;int&gt; plusOne(vector&lt;int&gt;& digits) { int carry = 1; for (int i = digits.size() - 1; i &gt;= 0; i--) { digits[i] += carry; if (digits[i] &gt; 9) { digits[i] %= 10; carry = 1; } else { carry = 0...

Global site tag (gtag.js) - Google Analytics