LintCode之加一
题目描述:

分析:由样例可以知道,当数组的每一个数字都是9时,加一会产生一个最高位的数字1,所以先判断这个数组的每一位是否都是9,如果是,那么新数组的大小是原数组大小加一,否则新数组的大小等于原数组的大小。数字加一,其实也就是数组的最后一个数字加一,但是加一的时候可能会产生进位(9+1=10:就产生了向前一位的进位),用一个数字k表示向前一位的进位(k=1:向前产生了进位,k=0:没有产生进位)由此加到原数组的第一个数字为止,如果最高位也就是原数组的第一位也产生了进位,那么将新数组的第一位置为1。
代码:
public class Solution {
/*
* @param digits: a number represented as an array of digits
* @return: the result
*/
public int[] plusOne(int[] digits) {
// write your code here
if(digits.length == 0 || digits == null) {
return null;
}
int[] num = null;
int i;
//判断数组的每位数字是否都是9
for(i=0; i<digits.length; i++) {
if(digits[i] != 9) {
break;
}
}
if(i == digits.length) {
num = new int[digits.length+1];
}else {
num = new int[digits.length];
}
int n = num.length-1;
//k表示低位向高位的进位
int k = 1;
for(int j=digits.length-1; j>=0; j--) {
num[n--] = (digits[j]+k)%10;
k = (digits[j]+k)/10;
}
if(k == 1) {
num[n] = k;
}
return num;
}
}
LintCode之加一的更多相关文章
- lintcode:Plus One 加一
题目: 加一 给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组. 该数字按照大小进行排列,最大的数在列表的最前面. 样例 给定 [1,2,3] 表示 123, 返回 [1,2,4 ...
- [LintCode] Plus One 加一运算
Given a non-negative number represented as an array of digits, plus one to the number. The digits ar ...
- (lintcode全部题目解答之)九章算法之算法班题目全解(附容易犯的错误)
--------------------------------------------------------------- 本文使用方法:所有题目,只需要把标题输入lintcode就能找到.主要是 ...
- [LintCode] Mini Twitter 迷你推特
Implement a simple twitter. Support the following method: postTweet(user_id, tweet_text). Post a twe ...
- lintcode: k Sum 解题报告
K SUM My Submissions http://www.lintcode.com/en/problem/k-sum/ 题目来自九章算法 13% Accepted Given n distinc ...
- leetcode & lintcode for bug-free
刷题备忘录,for bug-free leetcode 396. Rotate Function 题意: Given an array of integers A and let n to be it ...
- LintCode题解之斐波纳契数列
直接使用递归的方法会导致TLE,加个缓存就好了: public class Solution { private Integer[] buff = new Integer[1000]; /* * @p ...
- (二分查找 拓展) leetcode 162. Find Peak Element && lintcode 75. Find Peak Element
A peak element is an element that is greater than its neighbors. Given an input array nums, where nu ...
- leetcode & lintcode 题解
刷题备忘录,for bug-free 招行面试题--求无序数组最长连续序列的长度,这里连续指的是值连续--间隔为1,并不是数值的位置连续 问题: 给出一个未排序的整数数组,找出最长的连续元素序列的长度 ...
随机推荐
- 查询IP地址
在黑窗口里面输入:ipconfig
- 好的计数思想-LightOj 1213 - Fantasy of a Summation
https://www.cnblogs.com/zhengguiping--9876/p/6015019.html LightOj 1213 - Fantasy of a Summation(推公式 ...
- 剑指offer--day02
1.1题目:用两个栈实现队列:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 1.2解题思路: 创建两个栈stack1和stack2,使用两个“先进后出”的栈实现 ...
- C语言 malloc()、memcpy()、free()等
1.malloc()函数: void *malloc(unsigned int num_bytes); 头文件:#include <malloc.h> 或 #include <al ...
- SQL取年月日的不同格式
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE( ...
- dfs(魔力转圈圈)
http://oj.jxust.edu.cn/contest/problem?id=1563&pid=4 题目描述 Storm有一个m行n列的整数矩阵. 他会从(1,1)开始,顺时针螺旋访问该 ...
- Java8 HashMap详解(转)
Java8 对 HashMap 进行了一些修改,最大的不同就是利用了红黑树,所以其由 数组+链表+红黑树 组成. 根据 Java7 HashMap 的介绍,我们知道,查找的时候,根据 hash 值我们 ...
- 让鼠标滚轮在WINDOWS系统中也和MAC一样滚动(WIN系统鼠标滚轮反向)
用习惯MAC系统偶尔要用用WINDOWS系统,或者由于各种原因总之时不时需要由MAC转向WIN系统或同时需要两个平台机器上倒腾来倒腾去的同学,一般来说最痛苦的就是鼠标滚轮方向不一致. 基本上我们知道苹 ...
- File基本操作
File (1)File是文件和目录路径名的抽象表示.IO流操作中大部分都是对文件的操作,因此Java就提供了File类供我们来操作文件. (2)构造方法 根据一个路径得到一个File对象 ...
- Sql在Group by的select中包含多列
SELECT A , B , COUNT(Id) AS '数量' FROM dbo.[Table] GROUP BY A , B