2019年7月20日 - LeetCode0002
https://leetcode-cn.com/problems/add-two-numbers/submissions/

我的方法:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode ans = new ListNode(0);
ans.next = null;
ListNode curr = ans; int c = 0;
while(l1.next != null && l2.next != null){
curr.val = (l1.val + l2.val + c)%10;
c = (l1.val + l2.val + c)/10;
curr.next = new ListNode(0);
curr = curr.next;
l1 = l1.next;
l2 = l2.next;
}
//两数等长度时同时处理最后一个数即可
if(l1.next == null && l2.next == null){
curr.val = (l1.val + l2.val + c)%10;
c = (l1.val + l2.val +c)/10;
//看最终是否还有一位进位
if(c == 1){
curr.next = new ListNode(c);
curr.next.next = null;
}else{
curr.next = null;
}
return ans;
}
//一长一短时,留下长的那个,把短的的最后一个val记录后用不着了
ListNode l;
if(l1.next != null && l2.next == null){
l = l1;
curr.val = l2.val;
}else{
l = l2;
curr.val = l1.val;
}
//处理短的的最后一位
curr.val += l.val + c;
c = curr.val / 10;
curr.val %= 10;
curr.next = new ListNode(0);
curr = curr.next;
l = l.next; while(l.next != null){
curr.val = (l.val + c)%10;
c = (l.val + c)/10;
curr.next = new ListNode(0);
curr = curr.next;
l = l.next;
} //处理长的的最后一位
curr.val = (l.val + c)%10;
c = (l.val + c)/10;
if(c == 1){
curr.next = new ListNode(c);
curr.next.next = null;
}else{
curr.next = null;
} return ans;
}
}
按部就班的考虑与处理.注意不要有考察漏掉的情况
时间复杂度O(n),空间复杂度O(n)
//我所有的时空复杂度都是指级别,有必要具体分析的会特别注明
结果:
官方题解方法:
https://leetcode-cn.com/problems/add-two-numbers/solution/liang-shu-xiang-jia-by-leetcode/
也是朴素方法,区别在于他没有拆开来考虑,而是用了或判断,在末尾前进的时候又加了if
代码量比我的少,优雅一些.
(见仁见智,我不喜欢在简单的循环里加判断,徒增复杂度)
2019年7月20日 - LeetCode0002的更多相关文章
- 【2019年05月20日】A股滚动市盈率PE历史新低排名
2010年01月01日 到 2019年05月20日 之间,滚动市盈率历史新低排名. 上市三年以上的公司, 2019年05月20日市盈率在300以下的公司. 1 - 阳光照明(SH600261) - 历 ...
- tmux使用——2019年11月20日16:40:15
1.tmux 命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令.用户与计算机的这种临时的交互,称为一次"会话& ...
- 2019年7月20日针对iPhone7/7P有锁机的爆破限制
背景 2019年7月20号苹果更改了激活策略,致使卡贴机一夜回到解放前,目前只能使用tmsi或者tmsi+iccid模式激活手机,但是缺点是移动联通信号真的不稳定,漏接电话,无法开启热点等等毛病.尤其 ...
- 【搬家啦】2019年06月20日csdn难民来报道啦~
原博地址:https://blog.csdn.net/the_fool_
- 2019年7月20日 - LeetCode0003
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/submissions/ 我的解法: c ...
- 易初大数据 2019年10月20日 linux死亡导图 王庆超
- 易初大数据 2019年10月20日 spss习题 王庆超
一.选择题 1.有关spss数据字典的说法,正确的是:D A.SPSS数据集的数据字典可以复制到其他数据集中 B.SPSS数据集的数据字典是不能复制的 C.SPSS的数据字典可以通过“复制”和“黏贴” ...
- 西安活动 | 4月20日「拥抱开源,又见.NET :云时代 • 新契机」
云计算日渐兴起,成为提升企业效率和生产力的最终解决方案,而云时代也为软件开发模式带来了翻天覆地的变化.可以说 .NET Core就是这个时代催生的产物.自2016年 .NET Core 1.0 发布以 ...
- 【08月20日】A股滚动市净率PB历史新低排名
2010年01月01日 到 2019年08月20日 之间,滚动市净率历史新低排名. 上市三年以上的公司,2019年08月20日市净率在30以下的公司. 来源:A股滚动市净率(PB)历史新低排名. 1 ...
随机推荐
- 新兴技术袭来,Web开发如何抉择?
土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/ 使用HTML 创建Mac OS App 视频教程. 官方QQ群: (1)App实践出真知 434 ...
- SQLite实现内存键值存储
SQLite数据文件往Linux内存文件系统/dev/shm/data.sqlite3一放,就是内存级读写性能的SQL系统.用SQLite实现内存键值存储:CREATE TABLE IF NOT EX ...
- 使用VS2010开发Qt程序的4点经验(QT4到QT5的升级,更改sln文件,切换工程使用的Qt库,在VS的Solution Explorer视图中建立文件夹)
导读 相比于Qt Creator,我更喜欢用VS2010来进行开发.虽然启动时间相对较慢,但是VS下强大的快捷键和丰富的插件,以及使用多年的经验,都让我觉得在开发过程中得心应手.其中最重要的一点是,有 ...
- SYN5301型 毫秒表时间检定仪
SYN5301型 毫秒表时间检定仪 频率记录仪时间记录仪时间频率信号的精密测量使用说明视频链接; http://www.syn029.com/h-pd-76-0_310_6_-1.html 请 ...
- Spring Boot之Actuator的端点
Spring Boot Actuator的关键特性是在应用程序里提供众多Web端点,通过它们了解应用程序 运行时的内部状况.有了Actuator,你可以知道Bean在Spring应用程序上下文里是如何 ...
- 常用Linux网络命令
TCP状态统计: netstat -anp TCP各个状态的连接数:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a] ...
- 使用Hibernate连接Oracle 无法识别生成的SQL问题
问题: 在JAVA工程中,数据库使用的是OracleXE(Oracle10g Express Edition). 使用hibernate.reveng.xml创建了实体类及其DAO类,如: tt.my ...
- Python初学者的经历
刚开始安装了个python3.6的版本,自己写了个hello world ,发现可以运行,后面又网上找到了下载酷狗音乐的代码,结果报各种包没有,使用pip安装也各种安装不起来 又从网上找了python ...
- webpack 4.0 版本的简单使用
webpack 4.0 学习指南 最近前端又要变天了,vue作者推出了vue-cli 3版本,并且里面使用了webpack 4. 但是webpack 3 和webpack 4 二者的使用方式完全不一样 ...
- Linux htop 使用
引言 一般大家查看进程相关信息常用的命令是 top,之前接触并使用 htop,觉得比较好用,它算是 top 的增强版,这里重新记录下. htop 简介 NAME htop - interactive ...