思路
凭借三数之和的思路终于做出来了
踩的坑主要是:
不能和三数之和一样,若
收获
借助双指针(本题的left、right),先给定一个维度的值,即套一层循环,可降维解决问题,如三维将二维(三数之和),四维降三维再降二维(本题)
代码
class Solution:
def fourSum(self, nums: List[int], target: int) -> List[List[int]]:
nums.sort()
res = []
for i in range(len(nums) - 1):
if i > 0 and nums[i - 1] == nums[i]:
continue
for j in range(i + 1, len(nums)):
tempTarget = target - nums[i]
if j > i + 1 and nums[j - 1] == nums[j]:
continue
left = j + 1
right = len(nums) - 1
while left < right:
temp = nums[j] + nums[left] + nums[right]
if temp < tempTarget:
left += 1
if temp > tempTarget:
right -= 1
if temp == tempTarget:
res.append([nums[i], nums[j], nums[left], nums[right]])
while left != right and nums[left] == nums[left + 1]:
left += 1
while left != right and nums[right] == nums[right - 1]:
right -= 1
left += 1
right -= 1
return res
分类:
LeetCode刷题随笔
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)