数据结构与刷题
文章平均质量分 59
Foyn_
这个作者很懒,什么都没留下…
展开
-
【菜鸡刷题 - leetcode480】 滑动窗口中位数 几个要注意的点 | 有新意的解法 | python
先马一下,最近做的题太多了,特别累,来不及更新中位数获取方法1: 排序+ 索引中位数获取方法2: 对抗双顶堆small_heap : 大顶堆larger_heap : 小顶堆两种合理情况:len(small_heap ) == len(larger_heap )len(small_heap ) == len(larger_heap )+1...原创 2021-02-03 17:38:21 · 211 阅读 · 0 评论 -
【菜鸡刷题-leetcode778 】水位上升的泳池中游泳 |并查集 | 字典 | python
@author = YHR | 转载请标明来源!文章目录题目描述题解python 代码题目描述题解先马一下重点吧,这几天真的好累,来不及更博,刷题强度也有点大,大概马一下几个关键的地方并查集 – 连通问题官方给我最大的帮助就是并查集 不需要按结点的顺序来连通,任何俩可以连通就连通!然后出现了时间限制时间就对应threshhold,等于threshold的位置,在此刻海拔终于等于0!has been drowned然后再看同学们的解法 给我的启发就是:已经连通的.原创 2021-01-30 23:39:52 · 292 阅读 · 1 评论 -
【菜鸡刷题 - leetcode1631 最小体力消耗路径】解法一: 队列优化迪杰斯特拉 & python自带堆排序 || 解法二: 并查集 | python
@author=YHR | 转载请标明来源文章目录题目描述题目解读思路一: 队列优化迪杰斯特拉传统迪杰斯特拉队列优化的迪杰斯特拉python 自带的堆排序 与 list.sort()上代码思路二:并查集题目描述题目解读思路一: 队列优化迪杰斯特拉传统迪杰斯特拉队列优化的迪杰斯特拉python 自带的堆排序 与 list.sort()上代码class Solution: def __init__(self): self.inf = int(1e6 + 1).原创 2021-01-30 12:33:28 · 398 阅读 · 1 评论 -
【菜鸡刷题 - leetcode1128】多米诺骨牌对的数量 | 哈希表 | python
先马一下太困了,过两天来填坑! 2021/1/27 晚 23:59原创 2021-01-28 00:25:33 · 161 阅读 · 0 评论 -
【菜鸡刷题 - 并查集专题 1 - leetcode 1579 】alice bob 图完全可遍历 | 并查集 | python
先马一下太困了,明天要整完这三个大题噢! 2021/1/27 晚 23:59原创 2021-01-28 00:23:38 · 463 阅读 · 1 评论 -
【菜鸡刷题 - 剑指offer08】 二叉树的下一个节点 | 分类讨论 || python
@author = YHR | 转载请标明来源!文章目录题目描述代码题目描述先马一下,太困了,睡觉了!代码class treenode: def __init__(self, val, left=None, right=None, parent=None): self.val = val self.left = left self.right = right self.parent = parent # 剑指of.原创 2021-01-28 00:16:30 · 117 阅读 · 1 评论 -
【菜鸡刷题-牛客网NC61】两数之和 || 哈希表 || python
@ author = YHR | 原创不易,转载请注明来源!文章目录题目描述思路上代码题目描述给出一个整数数组,请在数组中找出两个加起来等于目标值的数给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index2。注意:下标是从1开始的。假设给出的数组中只存在唯一解,例如: 给出的数组为 {20, 70, 110, 150},目标值为90,输出 index1=1, index2=2思路马一下明天写了 要搬家啦!上代码.原创 2021-01-26 16:38:48 · 918 阅读 · 0 评论 -
【菜鸡刷题 - 牛客网NC22】 两数组合并 || 尾开,头结 覆盖法 || python || [类似于剑指offer05] 替换空格
@author = YHR | 原创不易,转载请标明来源!|文章目录尾开,头结,从后往前覆盖法 的 原理介绍本题描述尾开,头结,从后往前覆盖法 的 原理介绍这个方法我在我的博客这一篇 【替换空格里】已经介绍过:【菜鸡刷题 - 剑指offer05】替换空格 || 两数组合并 || 尾开头结 覆盖法大家可以去这篇博客里查看思路,里面有详细的图片演示过程~这里就不详细说啦~本题描述3个关键点:数组A 有足够大的空间数组B全员插入到数组A里数组AB已经有序,(默认:从小到大).原创 2021-01-26 15:13:07 · 188 阅读 · 0 评论 -
【菜鸡刷题-牛客网NC76】两个栈形成一个队列 || python
@author=yhr | 原创不易 | 转载请标明来源!|文章目录题目描述思路图解上代码题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。class Solution: def push(self, node): # write code here def pop(self): # return xx思路图解重点一: 栈 、FILO 先进 后出重点二: 队列、 FIFO 先进 先出.原创 2021-01-26 15:03:20 · 185 阅读 · 0 评论 -
【菜鸡刷题-牛客网NC33】将两个有序的链表合并为一个新链表 ||python
# class ListNode:# def __init__(self, x):# self.val = x# self.next = None ### @param l1 ListNode类# @param l2 ListNode类# @return ListNode类#class Solution: def merge(self, l1, l2): head = ListNode(-65535) # 申请新链表的头原创 2021-01-26 14:14:31 · 221 阅读 · 0 评论 -
【菜鸡刷题-牛客网NC15】层序遍历 || bfs || 层数计数 || python
@author = YHR | 代码原创 | 创作不易!转载请标明来源!文章目录题目描述题目重点python代码题目描述给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)例如:给定的二叉树是:题目重点同一层从左到右按顺序存储;每一层,对应于 数组一个维度。每一层的所有结点都存在数组的同一维度里;思路关键词: 层序遍历 – bfs – 队列 – 层数计数要注意的有几点:与普通BFS层序遍历,每次结点入队不同,这里入队的是另一种结构: 【结点.原创 2021-01-22 13:44:53 · 349 阅读 · 1 评论 -
【菜鸡刷题-牛客网NC88】寻找第K大数字 || 递归快排 || 二分递归快排 || python
@author = YHR | 代码原创 | 创作不易,转载请标明来源!文章目录题目描述普通快排 - 从大到小二分快排 - 从大到小题目描述有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。注意,第K大,是从大到小,下标为第K-1个数!普通快排 - 从大到小不多作介绍了,大家可以自行查询快排的原理~ def fast_sort(self, a, low, high):.原创 2021-01-22 13:16:47 · 134 阅读 · 1 评论 -
【菜鸡刷题-剑指offer06 - 牛客NC78】从尾到头打印链表 || 三种解法 || 遍历+栈 | 递归 | 头插法 反转链表 || python
@author = YHR | 代码原创 | 转载请标明来源!文章目录题目描述解法一: 遍历 + 栈解法二: 递归解法三: 反转链表 - (牛客NC78)题目描述输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)一个简单的反向遍历链表的题目~解法一: 遍历 + 栈1. 从头节点,依次遍历末尾,每次遍历节点的值压栈;2. 栈依次pop,返回到数组中。(栈先进后出)从头节点,P指针依次遍历,直至链表末尾,每次遍历节点的值压栈 :栈依次pop,返回到数组中.原创 2021-01-22 13:05:06 · 154 阅读 · 1 评论 -
【菜鸡刷题-牛客网NC68】青蛙跳台阶 | 斐波那契数列 | 二叉树 | 递归实现 | 迭代实现 | python
@author = yhr | 若需要转载,请标明本文来源!文章目录题目描述抓重点题分析递归实现 - 不推荐迭代实现斐波那契数列 - ⭐ 推荐 ⭐题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?(先后次序不同算不同的结果)以 N=5 为例,输出 8 种路径。抓重点题目理解为:从0开始,每次+1或者+2,有几种方式可以得到N?以 N=5 为例,输出 8 种路径。那么可以反过来理解为:从N倒退,每次-1或者-2,有几种方式.原创 2021-01-21 22:08:35 · 457 阅读 · 0 评论 -
【菜鸡刷题-NC119】找出其中最小的K个数 || 迭代堆排序|| 小顶堆 || python
@author = YHR | 代码原创 | 转载请标明来源文章目录题目描述方法代码题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。方法代码简单的排序 – 快排/ 冒泡/ 啥都可以但本宝宝就想用【小顶堆】的【迭代】排序… 反复熟悉一下他,毕竟他可是最好最坏的时间复杂度都为 O(nlogN)的好算法~ ,此外 空间为O(1)哦~ 虽然他不稳定啦。异常情况处理 # 边界情况处理 .原创 2021-01-21 14:32:08 · 159 阅读 · 0 评论 -
【菜鸡刷题 - 剑指offer05】替换空格 || 两有序数组合并 || 尾开头结 覆盖法
@author=yhr | 思路来源于剑指offer文章目录题目描述思路分析解法题目描述官方原题:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。个人补充: 把两个有序数组合并到一个数组。(放到最后讲)思路分析如果要从前往后,遍历整个字符串,然后每次遇到空格就要插入 ”%20“,整个字符串后移,可就太麻烦啦! 就像顺序存储插入字符一样,插入n 个字符的复杂度可达 O(n^2)!官方解法:提前知道一共有多少个空格 (遍历一遍字符串 ,O(N)) ,然原创 2021-01-21 14:05:27 · 152 阅读 · 1 评论 -
【菜鸡刷题- 剑指offer04】二维数组中的查找 || 利用 和分界点 的比较 缩小范围 || python
@author = yhr | 原思路来自剑指offer文章目录题目描述:找题目重点:典型思路介绍:利用 和分界点 的比较 缩小范围python代码题目描述:在一个 n * m的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。找题目重点:行n, 列m每行从左到右递增 --> 最左列为本行最小元素; 最右列为本行最大元素每列从上到下递增 --> 最原创 2021-01-21 13:07:16 · 150 阅读 · 1 评论 -
【菜鸡新手 - 剑指offer 03】[2021/1/17一刷] 找出数组中重复的数字 -三种解法|| 物归原主,测试碰撞法 || hash表测试碰撞法 || 排序+遍历法 ||python
文章目录题目解读A. 书籍推荐解法:我起名为“ 物归原主,测试碰撞”法B. 基础尝试1:hash表 + 碰撞测试 (效果还行)C. 基础尝试2:排序+遍历 (效果差)C.1 排序:1. 手撸的递归快排 (时长过长,失败):2. 调用python自带排序函数 list.sort() (成功)C.2 遍历:1. 找到任意一个重复数:2. 找到所有的重复数:本博客为辛苦原创,代码与思想参照与剑指Offer,但是解读 与 图 与 代码 均出自原创,这篇博客可以参考,禁止转载!@author =yhr题原创 2021-01-17 12:44:49 · 326 阅读 · 1 评论 -
【菜鸡新手 - 牛客网刷题NC105】有重复数字的升序数组,二分查找第一个大于等于查找值的位置 - 二分查找 || 统称为找不到的情况 || python
普通二分查找 回顾原创 2021-01-17 11:09:37 · 1407 阅读 · 1 评论 -
【菜鸡新手 - 牛客网刷题NC45 & 剑指offer07】根据 前序遍历 & 中序遍历 重建二叉树 || 二叉树 前、中、后 、层序 遍历 的【递归 】& 【迭代】 || python
以下为原创代码,可以参考,但禁止转载!@ author:yhr目录根据 前序遍历序列 & 中序遍历序列 生成二叉树递归 : 三种遍历迭代 : 三种遍历层序遍历调用示例根据 前序遍历序列 & 中序遍历序列 生成二叉树#coding=utf-8#__author__='YHR'import copyclass TreeNode: def __init__(self, x): self.val = x self.left = None原创 2021-01-15 22:41:23 · 193 阅读 · 0 评论 -
【菜鸡新手 - 牛客网刷题NC4】判断单链表重是否有环 || 快慢指针 ||(新添解法2: “变异”删除节点)|| python
快慢指针有环相遇证明代码class Solution: def hasCycle(self, head): slow = head fast = head circleFalg = 0 while fast is not None: # 无环时,fast一定早于slow到达终点,除非只有一个节点 # 但这也不妨碍只判断 fast if fast.next is n...原创 2021-01-14 22:53:10 · 268 阅读 · 0 评论