题目描述:

分析:由样例可以知道,当数组的每一个数字都是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;
}
}

最新文章

  1. 胡说REST(REpresentational State Transfer)
  2. PHP程序员如何突破成长瓶颈(php开发三到四年)
  3. xcode 6 创建的工程上下有黑边
  4. 关于 iOS 10 中 ATS / HTTPS /2017 问题
  5. Spreadsheet Tracking
  6. hdu 1233
  7. underscorejs-findWhere学习
  8. 最小生成树prim算法———模板
  9. jquery结合highcharts插件显示实时数据动态曲线图
  10. vs调试MEX文件
  11. 06-OC分类、协议、ARC
  12. 在vc正在使用xtremetoolkit接口库-----使用简单的控制
  13. Mock拦截ajax请求
  14. Yii2基本概念之——生命周期(LifeCycle)
  15. MongoDB启动报错 32-bit servers don&#39;t have journaling enabled by default. Please use --journal if you want durability. 【转】
  16. Django 应用程序 + 模型 + 基本数据访问
  17. Residual Networks
  18. Elasticsearch学习之深入聚合分析二---案例实战
  19. Using the Console[译]
  20. UltraEdit字体设置(fontlink大法)

热门文章

  1. 【Unity Shader】---Alpha Blending的意义
  2. 简述移动端与PC端的区别
  3. yield,sleep,wait
  4. Samba服务问答
  5. Spark-Core RDD概述
  6. Vue+axios+Node+express实现文件上传(用户头像上传)
  7. poj 2248 Addition Chains (迭代加深搜索)
  8. SCUT - 365 - 鹏哥的数字集合 - wqs二分 - 斜率优化dp
  9. C#设计模式:迭代器模式(Iterator Pattern)
  10. http的Content-Encoding和Content-Type及服务器和客户端处理流程