题目:加一
2015-08-19 19:02
501 查看
给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。
该数字按照大小进行排列,最大的数在列表的最前面。
您在真实的面试中是否遇到过这个题?
Yes
哪家公司问你的这个题?
Airbnb
Alibaba
Amazon Apple
Baidu Bloomberg
Cisco Dropbox
Ebay Facebook
Google Hulu
Intel Linkedin
Microsoft NetEase
Nvidia Oracle
Pinterest Snapchat
Tencent Twitter
Uber Xiaomi
Yahoo Yelp
Zenefits
感谢您的反馈
样例
给定
给定
标签 Expand
数组
相关题目 Expand
2
(high-precision)
中等 两个整数相除 16 %
1
(string),(binary)
容易 二进制求和 23 %
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
int add[] = new int[digits.length+1];
int carry = 0;
int k = 0;
for(int i=digits.length-1;i>=0;i--){
if(i==digits.length-1){
add[k++] = (digits[i]+carry+1)%10;
carry = (digits[i]+carry+1)/10;
}else{
add[k++] = (digits[i]+carry)%10;
carry = (digits[i]+carry)/10;
}
}
if(carry == 0){
int m = 0;
int res[] = new int[digits.length];
for(int i=digits.length-1;i>=0;i--){
res[m++] = add[i];
}
return res;
}else{
int m = 1;
int res[] = new int[digits.length+1];
res[0] = carry;
for(int i=digits.length-1;i>=0;i--){
res[m++] = add[i];
}
return res;
}
}
}
该数字按照大小进行排列,最大的数在列表的最前面。
您在真实的面试中是否遇到过这个题?
Yes
哪家公司问你的这个题?
Airbnb
Alibaba
Amazon Apple
Baidu Bloomberg
Cisco Dropbox
Ebay Facebook
Google Hulu
Intel Linkedin
Microsoft NetEase
Nvidia Oracle
Pinterest Snapchat
Tencent Twitter
Uber Xiaomi
Yahoo Yelp
Zenefits
感谢您的反馈
样例
给定
[1,2,3]表示 123, 返回
[1,2,4].
给定
[9,9,9]表示 999, 返回
[1,0,0,0].
标签 Expand
数组
相关题目 Expand
2
(high-precision)
中等 两个整数相除 16 %
1
(string),(binary)
容易 二进制求和 23 %
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
int add[] = new int[digits.length+1];
int carry = 0;
int k = 0;
for(int i=digits.length-1;i>=0;i--){
if(i==digits.length-1){
add[k++] = (digits[i]+carry+1)%10;
carry = (digits[i]+carry+1)/10;
}else{
add[k++] = (digits[i]+carry)%10;
carry = (digits[i]+carry)/10;
}
}
if(carry == 0){
int m = 0;
int res[] = new int[digits.length];
for(int i=digits.length-1;i>=0;i--){
res[m++] = add[i];
}
return res;
}else{
int m = 1;
int res[] = new int[digits.length+1];
res[0] = carry;
for(int i=digits.length-1;i>=0;i--){
res[m++] = add[i];
}
return res;
}
}
}
相关文章推荐
- 静态函数调用非静态函数的小例子
- ExtJS学习之MessageBox
- test
- javascript对闭包的深入理解
- javascript对闭包的深入理解
- Obtain Play's injected object
- Linux 开发闲杂知识点速查
- Javascript闭包
- 解决虚拟机linux端mysql数据库无法远程访问
- mac下安装nginx+uwsgi+webpy出错解决
- 题目:判断数独是否合法
- Unique Paths
- Qt窗口的标题栏自绘
- [LeetCode] Ugly Number
- ios之 微信扫码登录网页实现原理
- udp tcp fax发送
- 题目:判断字符串是否没有重复字符
- GET-POST请求,数据的持久化
- mysql information_schema
- Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项