龙空技术网

小镇做题家 leetcode(3): add

AI让世界更懂你 83

前言:

当前看官们对“java中关于add的使用的代码”都比较看重,同学们都想要分析一些“java中关于add的使用的代码”的相关知识。那么小编同时在网络上网罗了一些关于“java中关于add的使用的代码””的相关资讯,希望我们能喜欢,你们快快来学习一下吧!

前言

在这一讲中,我们主要讲解关于加法的相关题目。

leetcode#2Add Two Numbers

一、题目描述

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

Example

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)

Output: 7 -> 0 -> 8

Explanation: 342 + 465 = 807.

二、思路

这道题就是模拟加法的过程,熟悉加法器的同学都知道这个过程是什么样子的。只需要设置一个进位就可以了。但是这里需要考虑一个问题,就是如果两个数不一般长的时候,如何处理。另外一个要注意的地方是如果最后的和比原来最长的数还要进位,该如何处理。

三、代码

leetcode#445Add Two Numbers II

一、题目描述

You are given two non-empty linked lists representing two non-negative integers. The most significant digit comes first and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

Follow up:

What if you cannot modify the input lists? In other words, reversing the lists is not allowed.

Example:

Input: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)

Output: 7 -> 8 -> 0 -> 7

二、思路

这道题难就难在不能够让列表反转,不然的话,就可以使用上面题目了。因为链表反转是比较容易操作的。但是可以使用其他隐性的反转,比如使用栈来表示倒序,是一个非常不错的方法。

三、代码

小结

本节我们只介绍了2个题目,收获如下:

1.一定弄清楚本质,然后使用计算机来进行模拟。这也是计算机诞生之初所做的事情。

2.一定要熟悉常用的数据结构,比如链表的操作(逆指、快慢指针、插入、删除、合并等),队列和栈,树(二叉检索树,树的插入和删除,深度优先广度优先搜索)以及HashMap等。

本人技术博客同步更新,欢迎关注:刘炫320的博客_CSDN博客-算法编程习题解答(java版),机器学习习题集,leetcode领域博主

标签: #java中关于add的使用的代码