查看: 1106| 回复: 1
跳转到指定楼层
上一主题 下一主题
收起左侧

[树/链表/图] MARK一下,完全独立写出了这个回溯解法代表刷题进入不惧阶段

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
445. Add Two Numbers II

class Solution:
    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        len1 = self.getLen(l1)
        len2 = self.getLen(l2)
        if len1 > len2:
            l2 = self.padLL(l2, len1-len2)
        elif len1 < len2:
            l1 = self.padLL(l1, len2-len1)
        carry, node = self.recurrAdd(l1, l2)
        if carry > 0:
            res = ListNode(carry)
            res.next = node
            return res
        return node
            
    def recurrAdd(self, l1, l2):
        if not l1:
            return 0, None
        c, r = self.recurrAdd(l1.next, l2.next)
        v = l1.val + l2.val + c
        res = ListNode(v%10)
        res.next = r
        return v//10, res
        
   
    def getLen(self, l):
        if not l:
            return 0
        res = 0
        while l:
            res += 1
            l = l.next
        return res
   
    def padLL(self, l, zeros):
        head = ListNode(0)
        node = head
        while zeros > 1:
            zeros -= 1
            node.next = ListNode(0)
            node = node.next
        node.next = l
        return head

上一篇:有没有人想一起合买 a collection of data science take home challenge
下一篇:求问这道图的题怎么做
🔗
 楼主| malco008 2019-9-28 12:34:35 | 只看该作者
全局:
77%还可以
飞机上刷题感觉有些开始刷透了,但是最近的面试居然一道算法题都没有,看来DS逐渐要和刷题流分道扬镳了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表