摘要:
如果移动第一步, 那么剩下的格子都可以通过左右横跳来到达; 实质上是求最短距离, 注意的就是因为每次只能移动一步, 所以相邻的格子的数值的奇偶性是相反的, 写了一个dijkstra class Solution: def minimumTime(self, grid: List[List[int]] 阅读全文
摘要:
header 设置 File->Settings->Editor->File and Code Templates->Python Script #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : ${DATE} ${TIME} # @Au 阅读全文
摘要:
随便打开了一道题, 发现是hard, 然后发现自己居然会写... ` class Solution: def makeLargestSpecialSingle(self, s:str) -> str: # 最左的1和最右的0 相对应的字符串 return "1" + self.makeLargest 阅读全文
摘要:
三维空间的接雨水 有一点像dijkstar最短路径搜索。 所谓dijkstar, 是有一个closeset的,closeset表明的是已经确定距离的位置。 初始位置是closeset,每次都取与closeset相邻的最近的点放入到closet中。 相邻的点用一个最小堆来维护。 这道题也是一样, 初始 阅读全文
摘要:
求一个二叉树的右视图. 即从右方看到的元素从上到下的列表. 第一反应是层次遍历, 如果层次遍历的话, 空间复杂度应该是O(n), 第二反应是 如果求右视图相当于把树左右颠倒, 然后求左视图, 那么元素的出现顺序应当是前序遍历的顺序, 但是同一层的元素只取最左的一个. 那么右视图就是一个类似的右向前序 阅读全文
摘要:
我的想法很简单, 先存一下符号, 然后从小数第一位开始进行记录, 每次都乘10 相除, 直到遇到重复的, 为了防止溢出用了long long class Solution { public: string fractionToDecimal(int numerator, int denominato 阅读全文
摘要:
前置题目是300, 对于每个数字, 求得包括其的左递增子序列长度, 和包括其的递减右子列长度, 相加减-即可. class Solution: def calculate_increase_num(self, nums): if not nums: return nums longest_val_l 阅读全文
摘要:
子数组指数组中去掉一些元素(也可以不去)并且不改变剩下元素的顺序后产生的数组. 递增子数组指满足元素为递增的子数组. 给到一个数组, 求得最长的递增子数组的长度. 要求复杂度为O(nlogn) 我想了好久没有想出来一个很好的办法, 后来抄别人答案有点搞懂了, 然后又自己写了一遍. 大概是懂了吧, 但 阅读全文
摘要:
山峰数组指, 先严格递增, 再严格递减的数组. 现给到一个数组, 找到一个连续子数组, 使得该子数组是山峰数组, 输出最长的该子数组的长度. 要求只遍历一遍数组, 并且空间复杂度为O(1) 想了10分钟知道怎么写, 写了40分钟才debug没问题, 提交了5次前后, 我觉得我是一个sb. class 阅读全文
摘要:
和 162 一毛一样, 意义何在? class Solution: def peakIndexInMountainArray(self, arr: List[int]) -> int: start = 0 end = len(arr) - 1 while start < end: mid = (st 阅读全文