一亩三分地

 找回密码 注册账号

扫描二维码登录本站

BBS
Offer多多
Salarytics
交友
Learn
Who's Hiring?
Visa Tracker
疫情动态
指尖新闻
Instant
客户端
微信公众号
扫码关注公众号
留学申请公众号
扫码关注留学申请公众号
Youtube频道
留学博客
关于我们
查看: 347|回复: 0
收起左侧

[Leetcode] 3Sum With Multiplicity 解法的效率问题

[复制链接] |只看干货 |leetcode, 刷题
我的人缘0

升级   50%


分享帖子到朋友圈
李浩泉 | 显示全部楼层 |阅读模式
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   92% (1336)
 
 
7% (107)    👎

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

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

x

[Python] 纯文本查看 复制代码
while left < right:
                if A[i] + A[left] + A[right] == target:



上面这个我写的CODE,在LC上无法通过,显示:Time Limit Exceeded

[Python] 纯文本查看 复制代码
diff = target - A[i]
            while left < right:
                sum = A[left] + A[right]
                if sum == diff:



改成这个样子,LC就通过了,为什么呢?

[Python] 纯文本查看 复制代码
def threeSumMulti(self, A, target):
        """
        :type A: List[int]
        :type target: int
        :rtype: int
        """
        result = 0
        A.sort()
        for i in range(len(A)-2):
            left = i + 1; right = len(A) - 1
            diff = target - A[i]
            while left < right:
                sum = A[left] + A[right]
                if sum == diff:
                    if A[left] == A[right]:
                        result = (result + (right-left+1)*(right-left) // 2) % (10**9 + 7)
                        left += 1; right -= 1
                        break
                    left_count, right_count = 1, 1
                    while left < right and A[left] == A[left+1]:
                        left += 1
                        left_count += 1
                    while left < right and A[right] == A[right-1]:
                        right -= 1
                        right_count += 1
                    result = (result + left_count * right_count) % (10**9 + 7)
                    left += 1; right -=1
                elif sum < diff:
                    left += 1
                else:
                    right -= 1
        return result


评分

参与人数 1大米 +1 收起 理由
14417335 + 1

查看全部评分


上一篇:用动态规划怎么做这道《The Cheapest Flight》
下一篇:难一点的公司,字符串算法需要准备什么算法呢?
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://pay.1point3acres.com/tools/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

Some icons made by Freepik from flaticon.com

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