算法---------数组-----------两数相加
题目:
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-two-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解决方法:
package com.xinyu.test;/*** Created by zy on 2019/4/16.*/
public class TestArray1 {public static void main(String[] args) {ListNode listNodeOne = new ListNode(2);ListNode listNodeOne1 = new ListNode(4);ListNode listNodeOne2 = new ListNode(3);listNodeOne.next = listNodeOne1;listNodeOne1.next = listNodeOne2;ListNode listNodeTwo = new ListNode(5);ListNode listNodeTwo1 = new ListNode(6);ListNode listNodeTwo2 = new ListNode(4);listNodeTwo.next = listNodeTwo1;listNodeTwo1.next =listNodeTwo2;ListNode listNode = addTwoNumbers(listNodeOne, listNodeTwo);System.out.println(listNode);}/**** 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。* @return*/public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode head = null;ListNode curNode = null;int addPlus = 0;do {int val1 = l1 !=null ? l1.val : 0;int val2 = l2 != null ? l2.val : 0;int result = (val1 + val2 + addPlus) % 10;addPlus = (val1 + val2 + addPlus ) /10;ListNode node = new ListNode(result);if (head == null) {head = node;curNode = head;}else {curNode.next = node;curNode = node;}l1 = l1 !=null ? l1.next : null;l2 = l2 !=null ? l2.next : null;}while (l1 != null || l2 != null || addPlus != 0);return head;}static class ListNode {int val;ListNode next;ListNode(int x) { val = x; }
}
}
总结:
算法不能断,一断有危险。
算法---------数组-----------两数相加相关推荐
- 【每日一算法】两数相加
微信改版,加星标不迷路! 每日一算法-两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两 ...
- 【LeetCode每周算法】两数相加
题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-two-numbers 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是 ...
- leetcode算法题--两数相加 II
原题链接:https://leetcode-cn.com/problems/add-two-numbers-ii/ 栈 ListNode* addTwoNumbers(ListNode* l1, Li ...
- leetcode算法题--两数相加
题目地址:https://leetcode-cn.com/problems/add-two-numbers/ 用一个carry记下进位就行,像加法器的原理一样. ListNode* addTwoNum ...
- 两数相加——哈希表算法
力扣刷题总结 一.前言 二.两数相加 1.题意 2.示例 3.题目解析 4.官方题解 思路分析 哈希表算法的优势: 思路及算法: 代码分析 C语言代码实现及详细注释说明: python代码实现及详细注 ...
- 数组中两个数的最大异或值 两数异或值一定小于两数相加和
链接:数组中两个数的最大异或值 给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n . 进阶:你可以在 O(n) 的时间 ...
- 算法实战(二)两数相加
一.前言 今天开始第二题,有句话写给自己也写给大家,Rome wasn't built in one day!算法很难,刷题的过程也很痛苦,但是只要我们能坚持下去,以后的收获将会是巨大的.希望我们都能 ...
- js 实现两数相加的算法
关于算法 两数相加 (leetcod上的的一道算法题) 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我 ...
- 【数据结构与算法】之深入解析“两数相加II”的求解思路与算法示例
一.题目要求 给你两个非空链表来代表两个非负整数,数字最高位位于链表开始位置,它们的每个节点只存储一位数字,将这两数相加会返回一个新的链表. 可以假设除了数字 0 之外,这两个数字都不会以零开头. 示 ...
最新文章
- oracle scn与数据恢复,SCN与数据库恢复的关系
- ABAP將數字輸出前面補0
- [BZOJ1130] [POI2008]POD Subdivision of Kingdom
- android 如何修改百度导航诱导界面,Android 百度导航SDK
- 前端学习(1396):项目包含的知识点cookie和session
- python多线程同步与互斥_python多线程编程(3): 使用互斥锁同步线程
- 《黑客》月刊中文版第一期正式发布,很给力!推荐围观!
- VS2013+OpenCV3.0编译CMT跟踪算法
- ATL(COM) 开发下 -- VS2010
- numpy 加速 矩阵相加_Numpy知识
- 在Unity进行平台打包发布的时候需要注意的一些细节问题
- 二十四、JAVA集合框架(三)
- 华为USG6000单臂路由
- 小米路由固件中lua文件反编译
- Android 适配时用到的限定词
- iOS 直播流程概述
- [解决问题]注册表修改windows用户名后,vscode以前的扩展消失
- MySQL 数据库 day-03
- 如何做一个基于微信酒店预订小程序系统毕业设计毕设作品
- 苏宁易购接口api电商数据获取
热门文章
- python中sys用法_python中os和sys模块的区别与常用方法总结
- java日志切割工具_用 Java 实现的日志切割清理工具
- 线程组名称_Netty在Dubbo中的线程名称
- C++知识点24——使用C++标准库(顺序容器deque的初始化,赋值,访问,添加,删除,交换与迭代器失效)
- matlab光滑曲线连接散点图
- Android Jetpack架构组件之 Room(使用、源码篇)
- 组队练习赛(Regionals 2012, North America - East Central NA)
- 深入浅出Rust-Future-Part-5.md
- mysql function使用
- Wikioi 1020 孪生蜘蛛 Label:Floyd最短路