
LeetCode
Marcus-Bao
这个作者很懒,什么都没留下…
展开
-
LeetCode 42. Trapping Rain Water
传送门题意给你nnn个非负整数,表示围栏的高度(宽度都为1),问你如果下雨一共能储多少水?如图:Input: [0,1,0,2,1,0,1,3,2,1,2,1]Output: 6思路Dp可以发现对于每一个iii来说,它能储水的高度显然取决于它左面和右面最高的围栏高度之间的最小值。所以我们可以简单的想到brute force,对每个iii,分别找它左面和右面的最大值,然后答案就...原创 2020-03-21 22:38:27 · 198 阅读 · 0 评论 -
LeetCode String to Integer (atoi) (正则表达式)
传送门题意:很easy的一道题啊,就是实现一些c语言atoi()将字符转化为integer的函数.##思路:按照题目要求,然后注意下细节其实就可以了.class Solution: def myAtoi(self, _str): _str = _str.strip() if _str == "": return 0 ...原创 2020-03-21 22:36:11 · 207 阅读 · 0 评论 -
LeetCode 48. Rotate Image
传送门题意:给你一个 n×nn \times nn×n的二维矩阵,让你在使用O(1)O(1)O(1)的空间复杂度的情况下,将该矩阵进行顺时针旋转(clockwise)。思路:clockwise一个简单找规律。先将矩阵倒置,在按对角线对称即可。""" * clockwise rotate * first reverse up to down, then swap the symme...原创 2020-03-21 22:35:27 · 183 阅读 · 0 评论 -
LeetCode Regular Expression Matching(动态规划)
传送门题意:给你两个字符串s和p,让你判断两个字符串是否可以完全匹配.匹配采用正则化匹配的方式,’.‘可以匹配任意字符,’*'表示前面的一个字符匹配0次或多次.思路:比较好想的一种方法就是递归.首先p中若没有’.‘和’’,那么只需要看s和p是否完全一样即可.其次若p中有’.‘那么只需要跳过s中和p的’.‘对应的字符,往后继续判断即可最后若p中有’'那么它可以使它前面的字符匹配0次...原创 2020-03-21 22:33:43 · 192 阅读 · 0 评论 -
LeetCode 1349. Maximum Students Taking Exam(状压dp)
题目链接题意:让你给学生安排座位,有’#'号的不能坐,每个学生能看到左右和左上右上四个方向的人的试卷,请你给学生们安排座位使得学生人数最多思路经典的状态压缩dp问题,观察到n和m最大只有8,很明显可以利用二进制来确定第一行的状态,只要第一行定了剩下几行也就定的,最后维护最一行的最大值即可。dp[i][j]dp[i][j]dp[i][j]表示第iii为第jjj个状态时的最大值,状态转移方程...原创 2020-02-17 16:35:19 · 440 阅读 · 0 评论 -
LeetCode 1352. Product of the Last K Numbers(维护前缀和)
题目链接题意:维护一个列表,两个操作add和getnum(k),让你输出每次列表最后的k个数的和思路:操作很多,大概有4w个operation且k最大为4w,所以暴力查询肯定会T。这是就需要空间换时间,O(N)O(N)O(N)空间维护一个前缀和,显然如果列表中出现0则前面的即可清0,否则继续维护,最后O(1)O(1)O(1)查询输出结果即可!class ProductOfNumbers...原创 2020-02-17 16:14:25 · 543 阅读 · 0 评论