摘要:原題如下意思就是數(shù)字被逆序拆分保存在鏈表的各個(gè)節(jié)點(diǎn)中,現(xiàn)有兩條鏈表,要將這兩條鏈表相加返回新的鏈表。以示例來(lái)說(shuō)原數(shù)字為和,所以相加結(jié)果為。
原題如下:
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.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
意思就是數(shù)字被逆序拆分保存在鏈表的各個(gè)節(jié)點(diǎn)中,現(xiàn)有兩條鏈表,要將這兩條鏈表相加返回新的鏈表。
以示例來(lái)說(shuō)原數(shù)字為342和465,所以相加結(jié)果為807。
var addTwoNumbers = function(l1, l2) { const res = test(l1,l2,[],false); return res; }; var test = function(l1,l2,res,overflow=false){ res = res||[]; l1=l1||{val:0,next:null};//這里判斷傳入的數(shù)組是否存在 l2=l2||{val:0,next:null};//如果不存在就給他賦值后面的對(duì)象 //這里計(jì)算想加后的結(jié)果,Number() 函數(shù)把對(duì)象的值轉(zhuǎn)換為數(shù)字 const val = l1.val+l2.val+Number(overflow); if(val>=10){ res.push(val%10); overflow=true; }else{ res.push(val); overflow=false; } //所有的對(duì)象都被當(dāng)作 true //當(dāng)且僅當(dāng)字符串為空時(shí),該字符串被當(dāng)作 false //null 和 undefined 被當(dāng)作 false //當(dāng)且僅當(dāng)數(shù)字為零時(shí),該數(shù)字被當(dāng)作 false if(l1.next||l2.next||overflow){ test(l1.next,l2.next,res,overflow); } return res; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/87165.html
摘要:更新之前說(shuō)感覺(jué)優(yōu)秀答案的最后三行可以用尾遞歸優(yōu)化不知道尾遞歸的小伙伴可以點(diǎn)這里,仔細(xì)想了一下,并不能。尾遞歸的實(shí)現(xiàn),往往需要改寫(xiě)遞歸函數(shù),確保最后一步只調(diào)用自身。 上周日就想寫(xiě)vue.nextTick的源碼分析,可是總是不知道從哪兒下手,今天有時(shí)間,先把leetcode第二題補(bǔ)了,感覺(jué)這道題還挺簡(jiǎn)單的 一、題目 兩數(shù)相加: 給出兩個(gè) 非空 的鏈表用來(lái)表示兩個(gè)非負(fù)的整數(shù)。其中,它們各自...
摘要:同時(shí)題目假設(shè)每組輸入恰好只有一個(gè)答案,并且不能重復(fù)使用同一元素。理解這道題是可以用兩層循環(huán)蠻力解決的,但是效率太低了。如果這兩個(gè)元素和大于目標(biāo)數(shù)組,指針左移如果小于,指針右移。如果等于,則返回這兩個(gè)元素的位置記得用數(shù)組的數(shù)值加一解法 題目詳情 Given an array of integers that is already sorted in ascending order, fi...
摘要:這是我在平時(shí)有時(shí)間的時(shí)候做的一些算法上的題目想看更新請(qǐng)移步這里題目描述解法這個(gè)問(wèn)題當(dāng)時(shí)拿到的時(shí)候是完全沒(méi)有思路的,后面上網(wǎng)查詢(xún)了一下這個(gè)題目,知道了使用斐波那契數(shù)列就能夠解這道題目,,,當(dāng)然百度作業(yè)幫上面也有相應(yīng)的解法,套路就是題目為一 這是我在平時(shí)有時(shí)間的時(shí)候做的一些算法上的題目 想看更新請(qǐng)移步這里 題目: Climbing Stairs 描述 You are climbing a ...
摘要:我們的目的是求出兩個(gè)數(shù)字的加和,并以同樣的形式返回。假設(shè)每個(gè)都不會(huì)存在在首位的,除非數(shù)字本身就是想法這道題主要要求還是熟悉的操作。這道題由于數(shù)字反序,所以實(shí)際上從首位開(kāi)始相加正好符合我們筆算的時(shí)候的順序。 題目詳情 You are given two non-empty linked lists representing two non-negative integers. The d...
摘要:就不說(shuō)了,使用的解法思路如下建立,對(duì)應(yīng)該元素的值與之差,對(duì)應(yīng)該元素的。然后,循環(huán),對(duì)每個(gè)元素計(jì)算該值與之差,放入里,。如果中包含等于該元素值的值,那么說(shuō)明這個(gè)元素正是中包含的對(duì)應(yīng)的差值。返回二元數(shù)組,即為兩個(gè)所求加數(shù)的序列。 Problem Given an array of integers, find two numbers such that they add up to a s...
閱讀 1478·2021-10-18 13:29
閱讀 2725·2021-10-12 10:18
閱讀 3593·2021-09-22 15:06
閱讀 2607·2019-08-29 17:09
閱讀 2798·2019-08-29 16:41
閱讀 1502·2019-08-29 13:48
閱讀 3237·2019-08-26 13:49
閱讀 3333·2019-08-26 13:34