Plus One
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.
算法描述
这个题目需要注意的地方是假设数组的长度是n,那么一个数的最高有效位是数组的第0个数,数组的最低有效位是数组的第n-1个数。
- new一个ArrayList为resDigits
- 按照n-1, n-2, ..., 0这样的顺序读取数组的值,首先将第n-1个数和1相加值为sum
- 如果有进位(也即sum == 10),那么resDigits就加个0元素,接着原数组余下元素,即第n-2, n-3, ..., 0位的数值跳到步骤2)继续执行;
如果没有进位,那么resDigits就加上sum,并且数组的余下元素也加到resDigits中 - 因为得到的resDigits的第0个数是最低有效位,因此按照题目的要求,把resDigits倒过来。
程序代码
public class Solution {
public int[] plusOne(int[] digits) {
int length = digits.length;
if (digits == null || length == 0) {
return null;
}
List<Integer> resDigits = new ArrayList<Integer>();
int n = digits.length - 1;
Boolean flag = true;
do {
if (flag) {
int sum = digits[n--] + 1;
if (sum == 10) {
resDigits.add(0);
flag = true;
} else {
resDigits.add(sum);
flag = false;
}
} else {
resDigits.add(digits[n--]);
}
}while(n >= 0);
if (flag) {
resDigits.add(1);
}
int[] newDigits = new int[resDigits.size()];
for (int i = resDigits.size() - 1; i >= 0; i--) {
newDigits[newDigits.length - 1 - i] = resDigits.get(i);
}
return newDigits;
}
}
随机推荐
- C#开发的高性能EXCEL导入、导出工具DataPie(支持MSSQL、ORACLE、ACCESS,附源码下载地址)[转]
转自:http://www.cnblogs.com/yfl8910/archive/2012/05/19/2509194.html 作为财务数据核算人员,面对大量的业务与财务数据,借助于传统的EXCE ...
- ToDoList:一款非常优秀的任务管理软件 —— 工具类
ToDoList是一款非常优秀的任务管理软件,用户可以方便地组织和安排计划.这是一个开源的项目,很多细节都考虑到了,推荐大家使用~ ToDoList 帮你把要做的事情列出来,一项一项,类似思维导图. ...
- 记录一次Mac虚拟机安装的过程(有图有真相)
这是我今天在公司用Vmware workstation虚拟机安装小狮子的全过程,记录一下没什么特别的用途,希望以后不要忘记,整个过程我总共花了半个多小时,挺快的.确实苹果的系统配上苹果的电脑就是牛叉, ...
- [c#] const 与 readonly
c# 中 const 与 readonly 关键字看似相同,实则不同.重点在于确定值的时间. const const 很简单,就是一个常量,不可以被 static 修饰,因为被 const 修饰的字段 ...
- mysql命令行备份数据库
MySQL数据库使用命令行备份|MySQL数据库备份命令 例如: 数据库地址:127.0.0.1 数据库用户名:root 数据库密码:pass 数据库名称:myweb 备份数据库到D盘跟目录 mysq ...
- [Azure] Notification Hubs注册模式
[Azure] Notification Hubs注册模式 关于Azure Notification Hubs的注册模式,可以参考下列连结的文件内容. Notification Hubs Featur ...
- css3属性小结
/*border-radius*/ .demo2{ border:2px solid #a1a1a1; padding:10px 40px; background:#dddddd; width:300 ...
- ABAP常用函数集锦
函数名 描述 SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织VI ...
- MS10-046漏洞测试
这次用到MS10-046这个远程执行漏洞(Windows快捷方式LNK文件自动执行代码漏洞攻击) 命令: 1. msfconsole //启动MSF Metasploit 2. sear ...
- JTS Geometry关系判断和分析
关系判断 Geometry之间的关系有如下几种: 相等(Equals): 几何形状拓扑上相等. 脱节(Disjoint): 几何形状没有共有的点. 相交(Intersects): 几何形状至少有一个共 ...