????????????????????????
????Hello,大家好我是Dream,欢迎大家来到刷题乐园????????????
????游园须知:这片乐园从不缺乏天才,努力才是你的最终入场券!????????????
????导游主要使用Python语言,同时欢迎其他语言的小伙伴进来玩耍
☀️☀️☀️
????游园过程中,如果发现有错误的话,欢迎大家评论区及时斧正❤️❤️❤️
????最后,祝大家游园愉快,一起加油进步????????????
????????????游园路线图:
- ????乐园描述
- ????游园准备
- ????开始游玩
- ????游玩总结
- ????????????最后的福利
????乐园描述
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] :
0 <= a, b, c, d < n
a、b、c 和 d 互不相同
nums[a] + nums[b] + nums[c] + nums[d] == target
你可以按 任意顺序 返回答案 。
示例 1:
输入:nums = [1,0,-1,0,-2,2], target = 0
输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]
示例 2:
输入:nums = [2,2,2,2,2], target = 8
输出:[[2,2,2,2]]
提示:
1 <= nums.length <= 200
-109 <= nums[i] <= 109
-109 <= target <= 109
????游园准备
如果之前做过 两数之和 , 三数之和 , 那么,这道题就是无脑多嵌套一层for循环了…
双层for循环判断num1和num2,然后使用双指针执行while循环,直到left == right截止。
????开始游玩
# -*-coding:utf-8 -*-
# @Author:到点了,心疼徐哥哥
# 奥利给干!!!
class Solution():
def foursum(self,nums,target):
length = len(nums)
ret=[]
if not nums or length<4:
return ret
nums.sort()
for i in range(length-3):
num1 = nums[i]
for j in range(i+1,length-2):
num2 = nums[j]
left =j+1
right = length-1
while left<right:
total = num1+num2+nums[left]+nums[right]
if total == target:
zhongjian = [num1,num2,nums[left],nums[right]]
if zhongjian not in ret:
ret.append(zhongjian)
right = right-1
elif total < target:
left += 1
else:
right=right-1
return ret
s=Solution()
print(s.foursum(nums = [1,0,-1,0,-2,2], target = 0))
????游玩总结
The stage extends as far as the heart goes~加油!❤️❤️❤️
**????今天是我打卡的第二十一天,希望每天都能见到最棒的你????**
????????????最后的福利
☀️☀️☀️最后一点小福利带给大家:如果想快速上手python的小伙伴们,这个详细整理PPT可以迅速帮助大家打牢python基础,需要的小伙伴们可以下载一下 Python入门基础教程全套+小白速成+学不会来找我! ????????????
还有自制表白神器,需要自取:
Python表白神器,源码+解析+各种完美配置+浪漫新颖 ????????????
???????????? 好啦,这就是今天要分享给大家的全部内容了
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~