This commit is contained in:
nik
2025-10-01 22:55:09 +03:00
parent 4d0ece634b
commit 74e98c37c4
591 changed files with 20286 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
def three_sum(nums):
res = []
nums.sort()
for i in range(len(nums)):
if i > 0 and nums[i] == nums[i - 1]:
continue
j = i + 1
k = len(nums) - 1
while j < k:
s = nums[i] + nums[j] + nums[k]
if s > 0:
k -= 1
elif s < 0:
j += 1
else:
res.append([nums[i], nums[j], nums[k]])
j += 1
while j < k and nums[j] == nums[j - 1]:
j += 1
return res
if __name__ == "__main__":
nums = [-1, 0, 1, 2, -1, -4]
print(three_sum(nums))

View File

@@ -0,0 +1,20 @@
def sort_colors(nums):
low = 0
mid = 0
high = len(nums) - 1
while mid <= high:
if nums[mid] == 0:
nums[low], nums[mid] = nums[mid], nums[low]
low += 1
mid += 1
elif nums[mid] == 1:
mid += 1
else:
nums[mid], nums[high] = nums[high], nums[mid]
high -= 1
if __name__ == "__main__":
nums = [2, 0, 2, 1, 1, 0]
sort_colors(nums)
print(nums)

View File

@@ -0,0 +1,13 @@
def wiggle_sort(nums):
nums.sort()
mid = (len(nums) + 1) // 2
left = nums[:mid][::-1]
right = nums[mid:][::-1]
nums[::2] = left
nums[1::2] = right
if __name__ == "__main__":
nums = [1, 5, 1, 1, 6, 4]
wiggle_sort(nums)
print(nums)