
LeetCode
LeetCode分类总结
HanhahnaH
此人不懒,依然什么都没有写
展开
-
LeetCode刷题碎碎念(十二)-- 堆
LeetCode刷题碎碎念(十二)-- 堆堆的应用基本问题堆的应用基本问题堆排序所有元素堆化(最小堆为例)pop堆顶元素(最小值),放入数组中储存直到堆中没有元素得到数组为元素从小到大排序N: N个数据(节点)时间复杂度:O(N log N) – N 个元素 * pop O(log N)空间复杂度:O(N) 堆Top K利用 堆 的数据结构获取 Top K 大的元素或者 Top K 小的元素。同堆排序,pop出K个堆顶元素时间复杂度: O(KlogN)空间复杂度:O(N)原创 2021-03-26 08:06:46 · 135 阅读 · 0 评论 -
剑指offer刷题碎碎念
剑指offer刷题剑指 Offer 03. 数组中重复的数字剑指 Offer 04. 二维数组中的查找剑指 Offer 03. 数组中重复的数字返回数组中重复出现的任意数字。对于 Python 可以使用 dict 或 set 进行解体, 因为 Python 的 dict 和 set 都是使用 hash 表实现的所以查找操作都是 O(1)的时间复杂度。但是, 如果想使用 list 进行解题, 则不应该使用 in 操作符, 因为 Python list 使用顺序表实现, 所以其 in 的时间复杂度为 O原创 2020-08-14 10:13:19 · 162 阅读 · 0 评论 -
LeetCode刷题碎碎念(十一):DP(3)
LeetCode刷题碎碎念(十一):DP(3)91. Decode Waysdp[ i ]:前 i 位数可以有几种代表方式每一位,判断两次:自己代表一个字母(如果该位是 ‘0’,不加结果,因为‘0‘不对应任何数)1, 2, 3多代表了一个数,要加上前一位的结果自己和前一位数代表一个字母:1, 2, 3加上两位以前的结果class Solution: def numDecodings(self, s: str) -> int: n = len(s)原创 2020-10-16 10:30:49 · 133 阅读 · 0 评论 -
LeetCode刷题碎碎念(十):Binary Search
LeetCode刷题碎碎念(十):Binary Search4. Median of Two Sorted Arrays4. Median of Two Sorted Arraysclass Solution: def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float: n1 = len(nums1) n2 = len(nums2) # 保证在小原创 2020-09-22 09:08:01 · 177 阅读 · 1 评论 -
LeetCode刷题碎碎念(九):Tree
LeetCode刷题碎碎念(九):Tree二叉树637. 二叉树的层平均值(简单)二叉树637. 二叉树的层平均值(简单)https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.le原创 2020-09-12 11:58:11 · 215 阅读 · 0 评论 -
LeetCode刷题碎碎念(八):Design
LeetCode刷题碎碎念(八):Design146. LRU Cache146. LRU CacheMore detail in Hash Table哈希表查找快,但是数据无固定顺序;链表有顺序之分,插入删除快,但是查找慢。双向链表 + 哈希表:为什么需要双向链表?因为我们需要删除操作。删除一个节点不光要得到该节点本身的指针,也需要操作其前驱节点的指针,而双向链表才能支持直接查找前驱,保证操作的时间复杂度 O(1)O(1)O(1)。class Node(): def __init_原创 2020-09-06 11:38:35 · 140 阅读 · 0 评论 -
LeetCode刷题碎碎念(七):Linked List
LeetCode刷题碎碎念(七):Linked List单向链表LeetCode206 Reverse Linked ListLeetCode 92 Reverse Linked List II单向链表https://blog.youkuaiyun.com/haiyu94/article/details/79406082单链表结构:class Node: ''' data: 节点保存的数据 next: 保存下一个节点对象 ''' def __init__(self, d原创 2020-08-30 10:19:39 · 271 阅读 · 0 评论 -
LeetCode刷题碎碎念(六):Array
LeetCode刷题碎碎念(六):Array54. Spiral Matrix (Medium)59. Spiral Matrix II54. Spiral Matrix (Medium)https://leetcode.com/problems/spiral-matrix/Input:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]Output: [1,2,3,6,9,8,7,4,5]有可能不是square matrixclass Solution(obje原创 2020-08-26 09:02:29 · 212 阅读 · 0 评论 -
LeetCode刷题碎碎念(五):Hash Table
LeetCode刷题碎碎念(五):Hash TableHash Table1. Two Sum (Easy)Hash Table一次存取便能得到所查记录,那就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系 f,使每个关键字和结构中一个唯一的存储位置相对应。(关键字就是所要存储的数据,存储位置相当于数组的索引)。当然,可以把哈希表理解为一个数组,每个索引对应一个存储位置,哈希表的索引并不像普通数组的索引那样,从0到length-1,而是由关键字(数据本身)通过哈希函数得到。1. Two Su原创 2020-08-05 09:08:47 · 326 阅读 · 0 评论 -
LeetCode刷题碎碎念(四):Graph
LeetCode刷题碎碎念(四):GraphGraphqueue + hashtableGraphqueue + hashtable原创 2020-07-25 06:22:13 · 1158 阅读 · 0 评论 -
LeetCode刷题碎碎念(三):DP (2)
LeetCode刷题碎碎念(二):DP 2DPI: n, S = O(n), T = O(n*sqrt(n))279. Perfect Squares (Medium)I: O(n), S = O(n), T = O(n^2)139. Word Break (Medium)300. Longest Increasing Subsequence (Medium)673. Number of Longest Increasing Subsequence (Medium)1048. Longest String原创 2020-07-24 12:45:56 · 249 阅读 · 0 评论 -
LeetCode刷题碎碎念(二):DP (1)
LeetCode刷题碎碎念(贰):DPDPI: O(n), S = O(n), T = O(n)70. Climbing Stairs (Easy)746. Min Cost Climbing Stairs (Easy)1137. N-th Tribonacci Number (Easy)303. Range Sum Query - Immutable (Easy)1218. Longest Arithmetic Subsequence of Given Difference (Medium)DPI:原创 2020-07-14 01:20:21 · 429 阅读 · 0 评论 -
LeetCode刷题碎碎念(一):Search
LeetCode刷题碎碎念Intro如何刷题各个语言对比LeetCode day by daySearch39 & 40 Combination sumIntro如何刷题各个语言对比构造函数StringLeetCode day by daySearch39 & 40 Combination sum用dfs生成组合的大体思想C(nums, d, N, s, curr, ans): # d:当前dfs深度 N:目标元素个数 # S:数组中的其实位置:保证原创 2020-06-24 05:28:36 · 517 阅读 · 0 评论