Plus One
来自 <https://leetcode.com/problems/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,2,1,0],则只需在数组的最后一个元素上做加1运算即可,即[1,2,1,1].
- 如果数组元素的组后一位是9,则在做加1运算时,须将末尾置0,倒数第二位做加1运算。例如数组元素为[1,2,3,9],做加1运算后为[1,2,4,0]
- 如果数组中所有的元素都为9,则需要额外申请空间。例如数组元素为[9,9,9],做加1运算之后的结果为[1,0,0,0]
java代码:
public class Solution { public int[] plusOne(int[] digits) { int carry = 1; for (int i=digits.length-1; i >=0; i--) { if((digits[i] +carry) <= 9) { digits[i] += 1; carry = 0; break; } else { digits[i] =0; carry = 1; } } if(carry == 1) { int[] newDigits = new int[digits.length + 1]; newDigits[0] = 1; for (int j=0; j<digits.length; j++) { newDigits[j+1] = digits[j]; } return newDigits; } return digits; } }
代码解读:
Carry 作为加1 的进位,初始值必须为1.
算法性能:
相关推荐
javascript js_leetcode题解之66-plus-one.js
c语言入门 C语言_leetcode题解之66-plus-one.c
66.加一 (Plus One) 67.二进制求和 (Add Binary) 69.x 的平方根 (Sqrt(x)) 70.爬楼梯 (Climbing Stairs) 83.删除排序链表中的重复元素 (Remove Duplicates from Sorted List) 88.合并两个有序数组 (Merge Sorted ...
66.Plus One 快手-跳格子 Intersection of Two Arrays 17.10. Find Majority Element LCCI Game of Life Find All Numbers Disappeared in an Array Shortest Unsorted Continuous Subarray Rotate Image 宝石与石头...
plusOne 73.矩阵置零 setZeroes 84.柱状图中最大的矩形 largestRectangleArea 152.乘积最大子序列 maxProduct 162.寻找峰值 findPeakElement 动态规划 5.最长回文子串 longestPalindrome(中心扩展法实现) 62.不同...
Leetcode算法练习 Leetcode算法练习 ...MaximumSubarray 58_LengthOfLastWord 66_PlusOne 67_AddBinary 69_Sqrt(x) 70_ClimbStairs 83_RemoveDuplicatesFromSortedList 88_MergeSortedArray 100_SameT
leetcode题库 本仓库用来记录刷leetcode时的感人经历。 题目索引: 位运算 Bit 数组 Array [66. Plus One]( 数字 Number 字符串 String 链表 Link 二叉树 Binary Tree 并查集 动态规划
Plus One easy O O 118 Pascal's Triangle easy O O 119 Pascal's Triangle II easy O 要满足只用一个array大小空间O(k) k为input大小来完成,须具备backtracking概念 151 Reverse Words in a String medium O 这题...
66.Plus One -> 了解加法过程122.Best Time to Buy and Sell Stock II -> 动态规划 -> 27.Remove Element -> 两个指针,前后,交换268.Missing Number -> 数字之和 [0,1,2,...,n] 是一个常数,所以可以计算出缺失的...
def plusOne(self, digits: List[int]) -> List[int]: n = len(digits) - 1 digits[n] += 1 while n >= 0: if digits[0] == 10: digits[n] = 0 digits.insert(0, 1) elif digits[n] >= 10: digits[n] = 0 ...
# [LeetCode](https://leetcode.com/problemset/algorithms/) ![Language](https://img.shields.io/badge/language-Python%20%2F%20C++%2011-orange.svg) [![License]...
leetcode 答案LeetCode LeetCode in Swift 这个Repo 用来存下我在LeetCode 解题的原始档,包含解题中遇到的错误,也包含解出AC ...Plus One Easy #70 Climbing Stairs Easy #83 Remove Duplicates from Sorted L
vector<int> plusOne(vector<int>& digits) { int carry = 1; for (int i = digits.size() - 1; i >= 0; i--) { digits[i] += carry; if (digits[i] > 9) { digits[i] %= 10; carry = 1; } else { carry = 0...
66.Plus One (c++) 67.添加二进制(C++) 69.Sqrt(x) (c++:二元除法) 70.Climbing Stairs(c++:Dynamic Programming) 83.从排序列表中删除重复项(c++) 88.Merge Sorted Array(c++) 00 94.Binary Tree Inorder ...
Plus One 238. Product of Array Except Self 697. Degree of an Array 849. Maximize Distance to Closest Person ——————————————————————————————————————————————...
难度:简单 一、题目描述: 二、解题分析: 1、有进位位 这道题其实关注点只有一个,那就是进位的问题。... def plusOne(self, digits: List[int]) -> List[int]: digits[len(digits)-1] += 1 flag, digi