LeetCode每日一题:2.两数相加
这题一开始准备用最笨的方法,把两个链表的数化出来,相加,再把结果化成链表的形式,但执行起来比较繁琐,且超时;
所以参考了官方解答,采用进位逐个相加的方式简单不少,并且量少;
而且从今天官网给出的java官方解答,java不用指针,比如ListNode head=new ListNode(0);
有时间还是学学java吧,毕竟跨平台且实用性强,语法方面和C++差别不大;
一开始时间70+ms,现在又是24ms,搞不懂什么内子
#include <iostream>
using namespace std;struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};
/*
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
*/
class Solution {public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {ListNode *head=new ListNode(0);ListNode *curr=head;int carry=0;//carry表示进位ListNode *p=l1,*q=l2;while(p!=NULL||q!=NULL){int a=(p!=NULL)?p->val:0;int b=(q!=NULL)?q->val:0;int sum=carry+a+b; //对应位数字与进位相加carry=sum/10;curr->next=new ListNode(sum%10);curr=curr->next;if(p!=NULL) p=p->next;if(q!=NULL) q=q->next;}if(carry>0) curr->next=new ListNode(carry);//注意最后弄完还要对进位判别return head->next;}
};
int main()
{ListNode a(2),b(4),c(3);ListNode d(5),e(6),f(4);a.next=&b;b.next=&c;d.next=&e;e.next=&f;Solution s;ListNode *result=s.addTwoNumbers(&a,&d);while(result!=NULL){cout<<result->val<<" ";result=result->next;}return 0;
}
如有意见,感谢指明!
LeetCode每日一题:2.两数相加相关推荐
- LeetCode第二题:两数相加(Add Two Numbers)
LeetCode第二题:两数相加(python,java) You are given two non-empty linked lists representing two non-negative ...
- 【leetcode】 算法题1 两数之和
[leetcode] 算法题1 两数之和 问题 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums ...
- 20200720:每日一题之两数之和Ⅱ(leetcode167)
每日一题之两数之和Ⅱ 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 今日份笑点如下: 暴力遍历,视为TLE 双指针左右移动,根据大小判断左指针右移还是右指针左移,清晰易懂,为正解. 代码实 ...
- leetcode 第1题【两数之和】C语言
leetcode 第1题[两数之和] 今天开始刷 leetcode 了,坚持每天做 因为不太会编程,只是想记录下来,若有错误,欢迎指正. /*** Note: The returned array m ...
- leetCode刷题 2. 两数相加
原题链接: leetcode-cn.com/problems/ad- 题目描述 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你 ...
- 【每日一算法】两数相加
微信改版,加星标不迷路! 每日一算法-两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两 ...
- 学渣的刷题之旅 leetcode刷题 2. 两数相加
给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序的方式存储的,并且它们的每个节点只能存储一位数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和. 您可以 ...
- LeetCode第1题:两数之和
生命无罪,健康万岁,我是laity. 我曾七次鄙视自己的灵魂: 第一次,当它本可进取时,却故作谦卑: 第二次,当它在空虚时,用爱欲来填充: 第三次,在困难和容易之间,它选择了容易: 第四次,它犯了错, ...
- leetcode刷题 2.两数相加
解法 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() ...
最新文章
- mac 10.12显示隐藏文件
- 使用CocoaPods出现 The `master` repo requires CocoaPods 0.32.1 - 问题解决
- Excahnge 2010断开连接的邮箱无法找到
- 基于业务解释的特征重要性计算
- RedisTemplate中opsForValue()中的方法
- SOAP:简单对象访问协议
- Windows安装Python教程
- 前端菜鸟是这样入门学习的,点进来!
- 小程序 Serverless: 解放生产力,驱动研发效能提升
- 【2020牛客寒假基础算法训练营】第四场总结
- OPPO Reno ACE的刷机
- 10款网站后台管理系统模板_bootstrap网站后台模板_html后台模板下载(五)
- 带你学习《深入理解计算机系统》虚拟存储器(1)——虚存概念及页、页表和地址翻译基础
- python——基础教程——8
- 通过url给action传中文参数乱码解决方案
- 重庆万豪行政公寓:经典焕新,传奇永续
- 【七夕送好书】转微博获赠书!
- 当新三板公司踏入币圈 |链捕手
- python延时函数 微秒_Python程序可显示当前时,分,秒和微秒
- HMAC和NMAC 生日攻击