1.盛最多水的容器https://leetcode-cn.com/problems/container-with-most-water/

看了一会这道题只能想到暴力法,显然暴力法时间复杂度O(n^2),效率很低

看了官方解答,答案关键点为双指针https://leetcode-cn.com/problems/container-with-most-water/solution/sheng-zui-duo-shui-de-rong-qi-by-leetcode-solution/

 1 class Solution:
 2     def maxArea(self, height: List[int]) -> int:
 3         l, r = 0, len(height) - 1
 4         ans = 0
 5         while l < r:
 6             area = min(height[l], height[r]) * (r - l)
 7             ans = max(ans, area)
 8             if height[l] <= height[r]:
 9                 l += 1
10             else:
11                 r -= 1
12         return ans

双指针思想也是十分的巧妙,直接把时间复杂度缩小为O(n),空间复杂度也为O(1)

 

2.最长公共前缀https://leetcode-cn.com/problems/longest-common-prefix/

 

3.三数之和https://leetcode-cn.com/problems/3sum/

 

posted on 2021-01-14 02:01  zmbreathing  阅读(118)  评论(0编辑  收藏  举报