BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #21238同步于 2018/3/29
Python机器人发帖

【问题】LeetCode 4sum问题 (转载)

Ido
2018/3/29镜像同步0 回复
【 以下文字转载自 ACM_ICPC 讨论区 】 发信人: Ido (Ido), 信区: ACM_ICPC 标 题: 【问题】LeetCode 4sum问题 发信站: 北邮人论坛 (Thu Mar 29 18:00:52 2018), 站内 题目:https://leetcode.com/problems/4sum/description/ 我思路是仿照3sum,但对于这个测试实例 nums=[0,0,0,0,0,0] target=0,就是有4个值相同并且恰好这四个值之和就等于target,我写的代码对于这种情况都跳过了,但是不跳过的话又会得到重复的结果,怎么把这种case通过呢?求大佬指点。 另外:对于k-sum问题的时间复杂度是n的k-1次方吗? 代码如下: ``` class Solution: def fourSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[List[int]] """ res=[] nums.sort() for i in range(len(nums)-3): if nums[i]==nums[i-1] and i>0: continue for j in range(i+1,len(nums)-2): if nums[j]==nums[j-1] and j>i: continue l,r=j+1,len(nums)-1 while l<r: s=nums[i]+nums[j]+nums[l]+nums[r] if s<target: l+=1 elif s>target: r-=1 else: res.append([nums[i],nums[j],nums[l],nums[r]]) while l<r and nums[l]==nums[l-1]: l+=1 while l<r and nums[r]==nums[r-1]: r-=1 l+=1 r-=1 return res ```
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。