-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathCandy.py
More file actions
50 lines (39 loc) · 1.25 KB
/
Candy.py
File metadata and controls
50 lines (39 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"""
Here: https://leetcode.com/problems/4sum/
Given an array nums of n integers, return an array of all the unique quadruplets [nums[a], nums[b], nums[c], nums[d]] such that:
0 <= a, b, c, d < n
a, b, c, and d are distinct.
nums[a] + nums[b] + nums[c] + nums[d] == target
You may return the answer in any order.
"""
def fourSum(nums, target):
ans, n = [], len(nums)
nums.sort()
for a in range(n):
for b in range(a+1, n):
c = b+1
d = n-1
while c < d:
sums = nums[a]+nums[b]+nums[c]+nums[d]
if sums < target:
c += 1
elif sums > target:
d -= 1
else:
to_append = [nums[a], nums[b], nums[c], nums[d]]
if to_append not in ans:
ans.append(to_append)
c += 1
d -= 1
return ans
if __name__ == "__main__":
# taking the input
target = int(input("target: "))
nums = list(map(int, input("Enter the array ").split()))
print(fourSum(nums, target))
"""
Input: nums = [1,0,-1,0,-2,2], target = 0
Output: [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]
Input: nums = [2,2,2,2,2], target = 8
Output: [[2,2,2,2]]
"""