提交 705a82cf 编写于 作者: 檀越@新空间's avatar 檀越@新空间 🐭

fix:三数之和

上级 bd73b753
"""
盛最多水的容器
"""
from typing import List
class Solution:
def maxArea(self, height: List[int]) -> int:
"""
双指针
:param height:
:return:
"""
max_area = 0
left = 0
right = len(height) - 1
while left < right:
area = (right - left) * min(height[left], height[right])
max_area = max(max_area, area)
if height[left] < height[right]:
left += 1
else:
right -= 1
return max_area
if __name__ == '__main__':
result = Solution().maxArea([1, 8, 6, 2, 5, 4, 8, 3, 7])
print(result)
"""
K 件物品的最大和
"""
from typing import List
class Solution:
def kItemsWithMaximumSum(self, numOnes: int, numZeros: int, numNegOnes: int, k: int) -> int:
if k <= numOnes:
return k
elif numOnes < k <= (numOnes + numZeros):
return numOnes
elif (numOnes + numZeros) < k <= (numOnes + numZeros + numNegOnes):
return numOnes - (k - numOnes - numZeros)
else:
return numOnes - numNegOnes
return result
if __name__ == '__main__':
result = Solution().kItemsWithMaximumSum(3, 2, 0, 2)
print(result)
"""
K 件物品的最大和
"""
from typing import List
class Solution:
def kItemsWithMaximumSum(self, numOnes: int, numZeros: int, numNegOnes: int, k: int) -> int:
return numOnes - (k - numOnes + numZeros) if k > (numOnes + numZeros) else min(numOnes, k)
if __name__ == '__main__':
result = Solution().kItemsWithMaximumSum(3, 2, 0, 2)
print(result)
"""
三数之和
"""
from typing import List
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
nums.sort()
res = []
for i in range(len(nums) - 2):
if nums[i] > 0:
break
if i > 0 and nums[i] == nums[i - 1]:
continue
left, right = i + 1, len(nums) - 1
while left < right:
total = nums[i] + nums[left] + nums[right]
if total < 0:
left += 1
elif total > 0:
right -= 1
else:
res.append([nums[i], 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
if __name__ == '__main__':
result = Solution().threeSum([-1, 0, 1, 2, -1, -4])
print(result)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册