
贪心
算法
dinosaurcity
这个作者很懒,什么都没留下…
展开
-
【12月打卡~Leetcode每日一题】861. 翻转矩阵后的得分(难度:中等)
861. 翻转矩阵后的得分有一个二维矩阵 A 其中每个元素的值为 0 或 1 。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。思路:贪心思想,分两步①:利用行翻转保证每行的首个数字为1②:利用列翻转(从第二列开始)保证每列的1比0多时间复杂度O(mn)空间复杂度O(1)class Solution: def原创 2020-12-07 09:50:28 · 142 阅读 · 1 评论 -
【11月打卡~Leetcode每日一题】452. 用最少数量的箭引爆气球(难度:中等)
452. 用最少数量的箭引爆气球思路:使用贪心的思想,本题其实是一个求并集的题目,我们从x轴方向考虑,若一个气球需要被引爆,引爆点需要在[start,end]间,且肯定需要1根弓箭,那么我们要做的就是让这一根弓箭引爆更多的气球,即查找某个点的并集数量class Solution: def findMinArrowShots(self, points: List[List[int]]) -> int: points.sort(key=lambda x:x[0])原创 2020-11-23 13:36:51 · 178 阅读 · 0 评论 -
【11月打卡~Leetcode每日一题】402. 移掉K位数字(难度:中等)
402. 移掉K位数字给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。贪心的思路,每次从开头循环,如果当前字符大于之后的一个字符,则删除,即可满足题意,但是速度比较慢,需要优化class Solution: def removeKdigits(self, num: str, k: int) -> str: while(k):原创 2020-11-15 19:51:52 · 155 阅读 · 0 评论