1
Algo_1
1. Задача: 4Sum
func fourSum(nums []int, target int) [][]int {
sort.Slice(nums, func(i, j int) bool {return nums[i] < nums[j]})
found := make(map[string]bool, 0)
som := make([][]int, 0)
n := len(nums)
for i := 0; i < n-3; i++ {
for j := i+1; j < n-2; j++ {
l := j+1
r := n-1
for l < r {
sum := nums[i]+nums[j]+nums[l]+nums[r]
switch {
case sum == target:
str := fmt.Sprintf("%d%d%d%d", nums[i], nums[j], nums[l], nums[r])
if _, ok := found[str]; !ok {
som = append(som, []int{nums[i], nums[j], nums[l], nums[r]})
found[str] = true
}
l++
r--
case sum > target:
r--
case sum < target:
l++
}
}
}
}
return som
}2. Задача: Remove Invalid Parentheses
func…