DW_Leetcode编程实践_Day3

博客围绕LeetCode三道题展开。“呈最多水的容器”题,用双指针法,从首尾开始,取矮柱算面积并向中间移动指针;“最长公共前缀”题,先对列表单词排序,再找首尾单词的共同前缀;“三数之和”题因难度大暂时放弃。

11.呈最多水的容器

题目链接:呈最多水的容器

题目理解:选取两个指针,指针开始位置为第一个柱子和最后一个柱子。取矮的一个计算面积,计算之后的指针位置就要从矮的位置往中间走一下。直到两个指针碰到。

class Solution:
    def maxArea(self, height: List[int]) -> int:
        i, j, res = 0, len(height) - 1, 0
        while i < j:
            if height[i] < height[j]:
                res = max(res, height[i] * (j - i))
                i += 1
            else:
                res = max(res, height[j] * (j - i))
                j -= 1
        return res

在这里插入图片描述

14.最长公共前缀

题目链接:最长公共前缀

题目理解:先将列表中的单词排序,然后看第一个单词和最后一个单词的共同前缀就可以了。

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:

        if not strs:
            return ""
        strs.sort()
        n = len(strs)
        a = strs[0]
        b = strs[n-1]
        res = ""
        for i in range(len(a)):
            if i < len(b) and a[i] == b[i]:
                res += a[i]
            else:
                break
        return res

在这里插入图片描述

14.三数之和

题目链接:三数之和

太难了,先放弃。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值