数据结构与基础算法
文章平均质量分 82
数据结构与算法题———学习记录
Dive_
这个作者很懒,什么都没留下…
展开
-
哈希表-记录
2021/5/19 1. 两数之和 class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: num2idx=dict(zip(nums,range(len(nums)))) for i in range(len(nums)): # 如果有相同的数 [1,2,3,3,3,3,4] 3-默认会用最后的value # 所以不原创 2021-06-06 19:43:24 · 169 阅读 · 0 评论 -
图题-记录
2021/5/11 785. 判断二分图 这道题真的是烦,明明知道思路了,总是超出递归长度,关键点: dfs 函数遇到fasle怎么 直接return 回去 结束遍历 自己这样写一是有错误,混了dfs和bfs,二是超出递归长度 class Solution: def isBipartite(self, graph: List[List[int]]) -> bool: n=len(graph) self.flag=True # 给节点分成两组原创 2021-06-06 19:42:24 · 87 阅读 · 0 评论 -
搜索题-记录
2021/4/16 1091. 二进制矩阵中的最短路径 BFS 注意: 遍历每一层完之后 ret+1;不是遍历每一个就ret+1 每一层遍历的时候,只要节点被遍历过,就修改为1;就不会再append这个节点了 不要设置 -1 直接设置1 不然超时,不知道为啥 class Solution: def shortestPathBinaryMatrix(self, grid: List[List[int]]) -> int: if(grid==None):原创 2021-06-06 19:41:58 · 124 阅读 · 0 评论 -
动态规划2
目录2021/1/26416. 分割等和子集 背包问题 2021/1/26 416. 分割等和子集 如果不定义第一列为true,就要对于每个i元素,赋值dp[i][nums[i]]=True class Solution: def canPartition(self, nums: List[int]) -> bool: if(len(nums)<2): return False # 求sum/2 numSum=0原创 2021-05-20 22:36:45 · 93 阅读 · 0 评论 -
动态规划
目录2020/12/1070. 爬楼梯198. 打家劫舍213. 打家劫舍 II 2020/12/10 70. 爬楼梯 这道简单题 还有几种数学上的快速求解方法 以后再研究 先弄清楚dp的写法 class Solution: def __init__(self): self.result=[0,1,2] def climbStairs(self, n: int) -> int: # n的结果如果之前计算过 直接取 if(len(sel原创 2021-05-20 22:36:26 · 69 阅读 · 1 评论 -
双指针
目录2020/12/31167. 两数之和 II - 输入有序数组633. 平方数之和345. 反转字符串中的元音字母 2020/12/31 167. 两数之和 II - 输入有序数组 头尾指针 开始迭代 class Solution: def twoSum(self, numbers: List[int], target: int) -> List[int]: if(numbers==None or len(numbers)<2): return原创 2021-05-20 22:36:04 · 51 阅读 · 0 评论 -
排序
2020/12/3 215. 数组中的第K个最大元素 快速排序 class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: l=0 h=len(nums)-1 k=h+1-k index=self.partition(nums,l,h) while(index!=k): if(index>k):原创 2021-01-06 22:06:09 · 141 阅读 · 0 评论 -
树
目录递归2020/10 递归 2020/10原创 2021-01-06 22:05:52 · 92 阅读 · 0 评论 -
贪心
目录2020/8/11455分发饼干2020/10/9435. 无重叠区间452. 用最少数量的箭引爆气球 2020/8/11 455分发饼干 class Solution: def findContentChildren(self, g: List[int], s: List[int]) -> int: g.sort() s.sort() child=0 cookie=0 while(child<len(g原创 2021-01-06 22:05:33 · 125 阅读 · 0 评论 -
二分查找
2020/9/2969 x 的平方根 69 x 的平方根 class Solution: def mySqrt(self, x: int) -> int: if(x<2): return x l=0 h=x while(l<=h): mid=int((l+h)/2) #print(mid) if(mid*mid==x or原创 2021-01-06 22:05:17 · 161 阅读 · 0 评论 -
字符串
2020/9/19 有效的字母异位词 242 class Solution: def isAnagram(self, s: str, t: str) -> bool: charmap1=self.getCharMap(s) charmap2=self.getCharMap(t) if(charmap1==charmap2): return True else: return Fals原创 2021-01-06 22:05:03 · 89 阅读 · 1 评论 -
leetcode链表题
目录2020/8/8160链表相交206翻转链表21合并两个有序链表83 删除排序链表中重复值 2020/8/8 160链表相交 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def getIntersectionNode(self, headA:原创 2021-01-06 22:04:49 · 169 阅读 · 0 评论