【leetcode】【66】Plus One
2015-06-11 12:37
477 查看
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.
解题思路:此题是把数组每个元素当成整数的一位,但是要考虑到第一个位置的进位问题,所以数组长度可能会增加,发现的问题:java中定义的数组不可变长,要想返回已经变长的,可以申请新的数组
public static int[] plusOne(int[] digits) {
int tag=1;
int i;
for(i=digits.length-1;i>=0;i--){
digits[i]+=tag;
if(digits[i]>=10){
tag=1;
digits[i]%=10;
}else{
break;
}
}
if(tag==1&&i==-1){
int [] str=new int[digits.length+1];
for(int j=digits.length;j>0;j--){
str[j]=digits[j-1];
}
str[0]=1;
return str;
}
return digits;
}
The digits are stored such that the most significant digit is at the head of the list.
解题思路:此题是把数组每个元素当成整数的一位,但是要考虑到第一个位置的进位问题,所以数组长度可能会增加,发现的问题:java中定义的数组不可变长,要想返回已经变长的,可以申请新的数组
public static int[] plusOne(int[] digits) {
int tag=1;
int i;
for(i=digits.length-1;i>=0;i--){
digits[i]+=tag;
if(digits[i]>=10){
tag=1;
digits[i]%=10;
}else{
break;
}
}
if(tag==1&&i==-1){
int [] str=new int[digits.length+1];
for(int j=digits.length;j>0;j--){
str[j]=digits[j-1];
}
str[0]=1;
return str;
}
return digits;
}
相关文章推荐
- C#绘制椭圆的方法
- Windows + Apache 2.2+Tomcat7 集群配置
- 【算法】6 比较排序之外学习新的线性时间排序
- 用Lasagne来实现MLP,测试mnist
- C#设置右键菜单的方法
- Dictionary学习总结
- 在QML的UbuntuApplication Context Property
- 给程序员推荐一些提高工作效率的工具
- host 备份
- Ubuntu 14.04 java环境安装配置(不是openJAVA)
- 关于struct大小的计算
- android删除文件出错
- Android加载图片导致内存溢出(Out of Memory异常)
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- 用SharedPreferences做setting(设置界面)
- erlang 压力测试工具 tsung
- BZOJ 1798: [Ahoi2009]Seq 维护序列seq( 线段树 )
- 关于JDK
- linq读写dt
- junit 4 中的Before After Ignore Test BeforeClass AfterClass