- 博客(267)
- 收藏
- 关注
原创 【力扣周赛】来自VIP的原题压制:2406.将区间分为最少组数,内含福利!
【力扣周赛】来自VIP的原题压制:2406.将区间分为最少组数,内含福利!
2022-09-12 23:54:49
533
原创 997.找到小镇的法官 哈希表模拟、数组投票选举 双解!
997.找到小镇的法官https://leetcode-cn.com/problems/find-the-town-judge/solution/997zhao-dao-xiao-zhen-de-fa-guan-ha-xi-b-x7eu/难度:简单题目在一个小镇里,按从 1 到 n 为 n 个人进行编号。传言称,这些人中有一个是小镇上的秘密法官。如果小镇的法官真的存在,那么:小镇...
2021-10-08 02:01:29
236
原创 239.滑动窗口最大值 暴力哈希表优化 、双端队列 、堆/优先队列 三解!
239.滑动窗口最大值https://leetcode-cn.com/problems/sliding-window-maximum/solution/239hua-dong-chuang-kou-zui-da-zhi-bao-li-z4q2/难度:困难题目给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。...
2021-10-07 16:31:06
253
原创 刷穿剑指offer-Day23-树II 树的深度优先搜索!
昨日回顾昨天我们学习了树的一些基础名词与分类,很多人想问,为什么很多公司的手撕算法环节都会选择树这个数据类型来考察面试者呢?因为树中包含的知识太多了。我们在昨天介绍的树的前中后续遍历中,涉及到递归和迭代两种方式,单单这些就考察了我们对递归、栈、链表知识。更别说之前介绍过树的逐层遍历(广度优先搜索),以及之后要介绍的深度优先搜索。说了这么多,只是为了再次强调树这个知识点的重要性。那么就要提问了...
2021-09-28 00:42:20
231
原创 刷穿剑指offer-Day22-树I 树的基础知识讲解!
树的概念与名词解释树(Tree)是一种抽象的数据结构,之所以把“它”叫做树,是因为它看起来像是一棵倒挂着的树,即根在上,叶朝下。一棵树是由n(n>=0)个元素组成的,当n = 0时,树称为空(null或empty)树。每个元素称为一个节点(node),而最顶端的节点成为根节点。树中的名词和概念很多,在这里需要有个大概的了解:名词解释父节点若一个节点含有子节点,则这...
2021-09-26 00:14:18
468
原创 刷穿剑指offer-Day21-队列II 使用队列实现广度优先搜索!
昨日回顾昨天,我们介绍了队列的基础知识,并分别学习了Python与Java中队列的操作方法。在此基础上,通过两道简单的队列题,掌握了基本的入队与出队操作。然而,队列的题目可不只是简单按照顺序出入队那么简单。队列有一个最为经典的使用方式,就是 广度优先搜索( BFS) 。而广度优先搜索中,又数二叉树的遍历更为常用。今天我们就通过几道二叉树的题目,来掌握广度优先搜索的使用。二叉树什么时候该使用...
2021-09-23 00:39:15
4769
2
原创 刷穿剑指offer-Day20-队列I 队列的使用与基础题型!
队列的介绍队列(queue)是一种简单、常用的数据结构,在上一章栈的学习中,我们已经提到了队列这种数据结构。队列: 先入先出栈: 后入先出队列的操作和我们日常生活中的排队是很像的,先排队的人先得到服务。结合生活中的场景,我们应该理解,新来一个人加入排队大军,那么肯定是从队尾开始排起,而出队则是发生在队首。Python & Java 中的队列队列分为普通的单向队列和双...
2021-09-21 23:05:58
208
原创 刷穿剑指offer-Day18-栈II 单调栈的解题思路
昨日回顾昨天我们开启了栈这个数据结构的章节,分别介绍了Python和Java中栈的初始化与使用。然后通过三道题目,对栈的解题和分析有了一个初步的了解。然而昨天的栈题目,主要是针对题目的条件,判断是否需要弹出栈内元素,属于通用的栈场景。然而,今天需要介绍的是栈中特殊的一类题目,单调栈。既然是单调的,那么要么单调增、要么单调减。当我们遇到一道题目时,如何判断是否该使用单调栈的方法去解题呢?这里要...
2021-09-14 01:19:30
227
原创 刷穿剑指offer-Day17-栈I 栈的使用与基础题型!
刷穿剑指offer-Day17-栈I 栈的使用与基础题型栈的介绍栈(stack) 本身是一种简单、常用的数据结构,它常常用来和队列进行比较。队列: 先入先出栈: 后入先出栈的所有操作都发生在栈顶,其实就三个操作,入栈(压栈)、出栈(弹栈)、获取栈顶元素。Python & Java 中的栈Java中存在Stack的数据结构,但Python是没有栈的,它们的实现与操作方...
2021-09-12 23:09:15
247
原创 每日一题:1894.找到需要补充粉笔的学生编号 简单的模拟题目,注意求余的技巧!...
1894.找到需要补充粉笔的学生编号https://leetcode-cn.com/problems/find-the-student-that-will-replace-the-chalk/难度:中等题目一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老...
2021-09-10 22:40:00
187
原创 刷穿剑指offer-Day16-哈希表III 哈希表的总结与题型扩展!
昨日回顾昨天,我们针对Java中的 HashMap 、HashSet ,和Python中的 dict & set 使用,进行了分类学习,并按照表格总结了不同数据结构所包含的方法与使用场景。在这两个数据结构上,Python与Java倒是大同小异,没有过多的差别。之后,通过两道题目简单了解了这类题型的解题方式。那么今天,我们在此基础上进一步来熟悉下哈希表解题的运用。先来一道阅读理解题目热...
2021-09-10 01:50:12
223
原创 刷穿剑指offer-Day15-哈希表II Python&Java的哈希表方法与解题套路!
昨日回顾昨天我们开始了哈希表的学习,讲解了哈希表的集中实现方式。并通过一道 设计哈希集合 的题目,让我们将哈希表的理论转化为实践。今天,我们就开始正式学习哈希表在Python与Java中的使用方式。在Java中,哈希表有两个数据类型 HashMap 与 HashSet,它们对应Python中的 dict 与 set ,下面我们开始分类学习!HashSet & set我们在昨天的设计...
2021-09-09 01:28:09
456
原创 刷穿剑指offer-Day14-哈希表I 基础知识整理
刷穿剑指offer-Day14-哈希表I 基础知识整理引子哈希表作为算法解题中的top数据结构,因为其查找、插入、删除的平均复杂度都是O(1),可以大幅度缩减时间复杂度,所以成为一种空间换时间的解题方式。有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来。很多第一次刷力扣算法的朋友,都在 twoSum 这道题中看到了这句评论,也相信有90%的朋友在第一次在做这道题的时候也...
2021-09-08 02:30:12
232
原创 刷穿剑指offer-Day13-链表III 反转链表综合进阶!
昨日回顾昨天,我们针对链表中环与交点的题目,进行了总结。其中主要使用到的解题方法,一个是快慢指针,另外一个就是画图画图画图(重要的事情说三遍)。针对链表题,前期最重要的就是通过画图帮助理解。今天,我们来学习链表的另外一种题型: 反转链表专题。反转链表链表不同于数组,可以通过获取数组的长度然后递减完成逆序。算法题目中多数的链表都是单向的,我们想获取到链表的最后一个节点就必须要挨个的遍历链表...
2021-09-07 01:03:50
221
原创 刷穿剑指offer-Day12-链表II 链表的环与交点
昨日回顾昨天我们初步介绍了链表的相关知识,并且通过列举数组和链表的差异,进行了比较学习。之后介绍了链表涉及的相关题型,并举例了第一种链表的第一种删除类题目。那么今天我们就来看看链表的第二类题目:链表的环与交点环形链表链表的环是一类在链表中很爱考察的热门题目,今天针对这类题目,带着大家一起学习下。对于一般的链表,会存在一个头节点,然后根据链表指针一直遍历到链表的结尾即null。但有一种环形链...
2021-09-06 01:00:04
218
原创 刷穿剑指offer-Day11-链表I 基础介绍
链表趣事一说到链表,就想起上学时候天马行空的思维。记得老师第一次放出链表的数据结构图时,不知怎么的。我就想到了小时候看李连杰主演的少林寺。在戏中李连杰有件兵器,看似是长棍,然后一甩成了三节棍,这个画面一直记忆犹新。所以看到链表的节点通过指针串联起来觉得神似。然后….这节课就没好好学了,哈哈。链表 VS 数组提到链表,必然会涉及到一个话题:链表与数组的比较。通过两者的对比记忆,能帮我们快速的了...
2021-09-03 01:41:43
187
原创 刷穿剑指offer-Day10-字符串III 回文串专题
昨日回顾昨天我们使用哈希表解决了字符串的变位匹配问题,主要是通过哈希表的方式可以快速检索历史内容,从而达到空间换时间的思想完成解题。这种空间使用空间换时间的思路,在很多场景都会使用到。 那么今天是字符串专题的最后一天,来让我们一起讲讲回文串专题。回文串的暴力思路所谓回文串,就是一段字符串,不管正序还是逆序,读出来的内容都是一样的。当然,在字符串中可能会存在空格、逗号等特殊字符串需要我们过滤。...
2021-09-02 02:02:50
298
原创 刷穿剑指offer-Day09-字符串II 使用哈希表解决字符串题目
昨日回顾从昨天开始,我们进入了第三章字符串的学习。然而所为的字符串专题,在讲解后,大家应该了解到字符串的题目,其实都是将字符串转化为其他数据类型后,再进行解题的过程。例如字符串转化为数组、栈、哈希表、队列等等。昨天在文末,将剑指offer的015题作为课后作业留给大家下来练习。不知道有多少人自觉完成了呢?我猜没几个....那么今天开篇,想讲解一下昨天的作业吧。剑指OfferII015.字符...
2021-08-31 00:30:16
279
原创 刷穿剑指offer-Day08-字符串I 字符串知识总结与题型讲解
前文回顾上一章我们学习了数组相关的知识与解题,并针对例题讲解了双指针和前缀和的解题思想。其中重点针对双指针的特殊场景滑动窗口进行了细致讨论和解题模板梳理。到这里一些初入刷题不久的朋友也许要想,那是不双指针就只能用来刷数组的题目,其他的就不适用了呢?完全不是...针对某一类数据结构的算法题目,很多时候解题思维是通用的,不仅是数组会用到双指针,链表、字符串等等同样适用。而且我们在解某一种题目时,经...
2021-08-30 00:19:09
317
原创 刷穿剑指offer-Day07-数组III 前缀和知识讲解!
昨日回顾昨天的数组专题,我们针对双指针中的特殊场景----滑动窗口思维进行了学习。在解题思维中,罗列出了滑动窗口的模板的使用方式,通过:确定左右边界查找窗口滑动条件的方式按照题意套模板即可可以轻松解决滑窗相关的题目。滑动窗口的力所不及在套模板的同时,大家是否考虑过,假设题目同样是求连续的子数组,但是在数组中出现了负数,那这种情况下还可以使用滑动窗口么?答案是不行的,为什么?...
2021-08-26 01:56:50
259
原创 刷穿剑指offer-Day06-数组II
昨日回顾上一篇文章,我们讲解了数据结构的分类,并对于学习到的第一种数据结构--数组进行了简单介绍。在介绍解题时,向大家简述了双指针的解题思路。指针的解题思路一般分为三类:首尾指针:范围查找,比如二分搜索等滑动窗口:指针处在数组同一方向,根据条件移动左右指针,用于获取范围和等快慢指针: 多用于链表计算时,判断是否有环等那么今天针对滑动窗口的延伸,会再提供两道题目供大家深入理解。滑动...
2021-08-25 01:27:22
228
原创 刷穿剑指offer-Day05-数组I
前文回顾之前我们使用三天的时间,学习了整数章节的知识学习。并在Day4的总结中,结合读者们关于算法学习和刷题过程中的疑问,进行了相关解答。当然朋友们也提了一些关于文章整体讲解上的建议,总体来说:每章的第一篇文章会将本章知识点全部讲解,但是当天的题目并不涉及这些内容,等后面的题目用到该知识点的时候,还要返回去看本章的第一篇文章,比较麻烦。算法题目讲解的时候,当前多为文字描述,希望能多添加一...
2021-08-23 01:25:07
300
1
原创 中元节 · 忆父
长安杂兴效竹枝体【清】庞垲万树凉生霜气清,中元月上九衢明。小儿竞把清荷叶,万点银花散火城。西安从昨夜开始,就雨下不停,也许正是为了说明那句:"鬼不走干路吧..."。今天是中元节,虽然没办法像古人诗中那般放河灯,但焚纸锭还是可以的。本不该把这节日的感慨写在技术博文上,但却不知该用什么方式来表达此刻心绪。只愿天堂没有疾病,更请珍惜人间亲情。...
2021-08-22 18:49:25
179
原创 刷穿剑指offer-Day04-第一章结束,聊聊算法学习
昨日回顾昨天我们介绍了求余和快速幂的相关知识,并且讲解了力扣50.实现pow的题目,主要是想让大家在理解了快速幂的实现,毕竟这是一道高频的面试考题。但如果在算法机试或者平时开发时,还是使用内置的pow更为便捷,没必要重造轮子。关于书中的题目这章节今天就结束了,大家会说剑指offer中第三、第五题还没有讲。在这里需要解释下,虽然说的是刷穿剑指offer,但更多的是希望通过剑指offer这本书...
2021-08-20 02:03:34
273
原创 刷穿剑指offer-Day03-整数III-快速幂
昨日回顾昨天我们通过两道题目,讲解了二进制与位运算的操作。偏底层的东西确实略显枯燥,但没办法,这就是面试官们的最爱,只能耐着性子学下去了。那么今天作为整数的第三天,我们来讲讲关于取模与幂运算的操作吧。来段前戏先来一个解惑吧,我们经常在做算法题目的时候,会遇到这么一句话:答案可能很大,所以返回对 10 ^ 9 + 7 取余 的结果。10 ^ 9 + 7到底有什么含义呢?答案是......
2021-08-19 03:06:12
217
原创 刷穿剑指offer-Day02-整数II
昨日回顾昨天作为这个系列的第一篇文章,分别介绍了Java与Python的以下内容:整数类型与考点二进制与十进制的转换与、或、异或的操作位移操作以上内容,如果遗忘了,一定要定时复习啊...今天是整数的第二篇文章,会和大家稍有跳跃分享一道简单题+一道中等题目,用来对二进制算法完成进一步的巩固。每道题涉及的知识点会在题目分析中给出整理。让我们开始吧!剑指OfferII002.二进制加...
2021-08-18 01:50:29
406
原创 刷穿剑指offer-Day01-整数I
前序这是刷穿剑指offer系列的第一篇文章,在这里需要简单和大家说明下关于这个系列的一些说明。数据结构学习顺序如果大家购买了剑指offer-专项突破,那么大家肯定看到了关于这本书目录对应的数据结构。但前文也说了,这本书的价值更多的在于题目上,如果知道了题目,那么就没有太大的必要去买这本书了,那么怎么获取本书的目录与所有题目呢?这里和大家介绍下。首先打开力扣首页并进入题库专栏...
2021-08-17 00:41:50
312
原创 来和我一起四十天刷完 剑指offer II-专项突破!
写在前面的话最近公众号断更了,嗯...不是因为懒,而是一直在用Python刷算法题感觉有些腻了,打算捡起许久不用的Java,学学Java基础,然后使用Java、Python双语言进行leetcode刷题学习。本来打算复习完Java面向对象知识后,把所有涉及算法的数据结构与知识都学习完再开始继续更新的,但前天看到了新版本的剑指offer II-专项突破版这本书,这次的剑指offer第二版使用Ja...
2021-08-15 22:36:31
1075
原创 Leetcode第253场周赛解题分享 第二题 java堆没学呢,先空着...
5838.检查字符串是否为数组前缀https://leetcode-cn.com/problems/check-if-string-is-a-prefix-of-array/难度:简单题目给你一个字符串 s 和一个字符串数组 words ,请你判断 s 是否为 words 的 前缀字符串 。字符串 s 要成为 words 的 前缀字符串 ,需要满足:s 可以由 words 中的前 k...
2021-08-08 13:34:03
227
原创 202.快乐数 不快乐的时候做个快乐题!
202.快乐数https://leetcode-cn.com/problems/happy-number/solution/202kuai-le-shu-zi-fu-chuan-yu-shu-xue-sh-q2np/难度:简单题目:编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个...
2021-08-01 23:51:19
124
原创 剑指Offer52.两个链表的第一个公共节点 哈希表与双指针思路
剑指Offer52.两个链表的第一个公共节点https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/solution/jian-zhi-offer52liang-ge-lian-biao-de-di-yj5l/难度:中等题目注意:如果两个链表没有交点,返...
2021-07-21 00:44:39
105
原创 1877.数组中最大数对和的最小值 小学生都会的中等题?
1877.数组中最大数对和的最小值https://leetcode-cn.com/problems/minimize-maximum-pair-sum-in-array/solution/1877shu-zu-zhong-zui-da-shu-dui-he-de-zu-a59r/难度:中等题目一个数对 (a,b) 的 数对和 等于 a + b 。最大数对和 是一个数对数组中最大的 数对...
2021-07-20 00:33:25
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人