算法之美
文章平均质量分 76
力扣刷题汇总
清风Python
欢迎关注我的公众号 【清风Python】,公众号后台回复“书籍”,即可领取各类Python电子书,快来和我一起刷题,剑指offer吧!
展开
-
670.最大交换 暴力、单调栈、指针的逆序遍历 三种解题思路。
力扣每日一题原创 2022-09-13 22:46:11 · 520 阅读 · 0 评论 -
498.对角线遍历 模拟矩阵扫描 Python&Java解题
力扣原创 2022-09-04 20:36:32 · 269 阅读 · 0 评论 -
刷穿剑指offer-Day21-队列II 使用队列实现广度优先搜索!
昨日回顾昨天,我们介绍了队列的基础知识,并分别学习了Python与Java中队列的操作方法。在此基础上,通过两道简单的队列题,掌握了基本的入队与出队操作。然而,队列的题目可不只是简单按照顺序出入队那么简单。队列有一个最为经典的使用方式,就是 广度优先搜索( BFS) 。而广度优先搜索中,又数二叉树的遍历更为常用。今天我们就通过几道二叉树的题目,来掌握广度优先搜索的使用。二叉树什么时候该使用...原创 2021-09-23 00:39:15 · 4783 阅读 · 2 评论 -
刷穿剑指offer-Day22-树I 树的基础知识讲解!
树的概念与名词解释树(Tree)是一种抽象的数据结构,之所以把“它”叫做树,是因为它看起来像是一棵倒挂着的树,即根在上,叶朝下。一棵树是由n(n>=0)个元素组成的,当n = 0时,树称为空(null或empty)树。每个元素称为一个节点(node),而最顶端的节点成为根节点。树中的名词和概念很多,在这里需要有个大概的了解:名词解释父节点若一个节点含有子节点,则这...原创 2021-09-26 00:14:18 · 481 阅读 · 0 评论 -
刷穿剑指offer-Day17-栈I 栈的使用与基础题型!
刷穿剑指offer-Day17-栈I 栈的使用与基础题型栈的介绍栈(stack) 本身是一种简单、常用的数据结构,它常常用来和队列进行比较。队列: 先入先出栈: 后入先出栈的所有操作都发生在栈顶,其实就三个操作,入栈(压栈)、出栈(弹栈)、获取栈顶元素。Python & Java 中的栈Java中存在Stack的数据结构,但Python是没有栈的,它们的实现与操作方...原创 2021-09-12 23:09:15 · 258 阅读 · 0 评论 -
刷穿剑指offer-Day20-队列I 队列的使用与基础题型!
队列的介绍队列(queue)是一种简单、常用的数据结构,在上一章栈的学习中,我们已经提到了队列这种数据结构。队列: 先入先出栈: 后入先出队列的操作和我们日常生活中的排队是很像的,先排队的人先得到服务。结合生活中的场景,我们应该理解,新来一个人加入排队大军,那么肯定是从队尾开始排起,而出队则是发生在队首。Python & Java 中的队列队列分为普通的单向队列和双...原创 2021-09-21 23:05:58 · 210 阅读 · 0 评论 -
刷穿剑指offer-Day18-栈II 单调栈的解题思路
昨日回顾昨天我们开启了栈这个数据结构的章节,分别介绍了Python和Java中栈的初始化与使用。然后通过三道题目,对栈的解题和分析有了一个初步的了解。然而昨天的栈题目,主要是针对题目的条件,判断是否需要弹出栈内元素,属于通用的栈场景。然而,今天需要介绍的是栈中特殊的一类题目,单调栈。既然是单调的,那么要么单调增、要么单调减。当我们遇到一道题目时,如何判断是否该使用单调栈的方法去解题呢?这里要...原创 2021-09-14 01:19:30 · 233 阅读 · 0 评论 -
刷穿剑指offer-Day16-哈希表III 哈希表的总结与题型扩展!
昨日回顾昨天,我们针对Java中的 HashMap 、HashSet ,和Python中的 dict & set 使用,进行了分类学习,并按照表格总结了不同数据结构所包含的方法与使用场景。在这两个数据结构上,Python与Java倒是大同小异,没有过多的差别。之后,通过两道题目简单了解了这类题型的解题方式。那么今天,我们在此基础上进一步来熟悉下哈希表解题的运用。先来一道阅读理解题目热...原创 2021-09-10 01:50:12 · 229 阅读 · 0 评论 -
刷穿剑指offer-Day15-哈希表II Python&Java的哈希表方法与解题套路!
昨日回顾昨天我们开始了哈希表的学习,讲解了哈希表的集中实现方式。并通过一道 设计哈希集合 的题目,让我们将哈希表的理论转化为实践。今天,我们就开始正式学习哈希表在Python与Java中的使用方式。在Java中,哈希表有两个数据类型 HashMap 与 HashSet,它们对应Python中的 dict 与 set ,下面我们开始分类学习!HashSet & set我们在昨天的设计...原创 2021-09-09 01:28:09 · 460 阅读 · 0 评论 -
刷穿剑指offer-Day13-链表III 反转链表综合进阶!
昨日回顾昨天,我们针对链表中环与交点的题目,进行了总结。其中主要使用到的解题方法,一个是快慢指针,另外一个就是画图画图画图(重要的事情说三遍)。针对链表题,前期最重要的就是通过画图帮助理解。今天,我们来学习链表的另外一种题型: 反转链表专题。反转链表链表不同于数组,可以通过获取数组的长度然后递减完成逆序。算法题目中多数的链表都是单向的,我们想获取到链表的最后一个节点就必须要挨个的遍历链表...原创 2021-09-07 01:03:50 · 232 阅读 · 0 评论 -
刷穿剑指offer-Day14-哈希表I 基础知识整理
刷穿剑指offer-Day14-哈希表I 基础知识整理引子哈希表作为算法解题中的top数据结构,因为其查找、插入、删除的平均复杂度都是O(1),可以大幅度缩减时间复杂度,所以成为一种空间换时间的解题方式。有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来。很多第一次刷力扣算法的朋友,都在 twoSum 这道题中看到了这句评论,也相信有90%的朋友在第一次在做这道题的时候也...原创 2021-09-08 02:30:12 · 242 阅读 · 0 评论 -
每日一题: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 · 190 阅读 · 0 评论 -
刷穿剑指offer-Day12-链表II 链表的环与交点
昨日回顾昨天我们初步介绍了链表的相关知识,并且通过列举数组和链表的差异,进行了比较学习。之后介绍了链表涉及的相关题型,并举例了第一种链表的第一种删除类题目。那么今天我们就来看看链表的第二类题目:链表的环与交点环形链表链表的环是一类在链表中很爱考察的热门题目,今天针对这类题目,带着大家一起学习下。对于一般的链表,会存在一个头节点,然后根据链表指针一直遍历到链表的结尾即null。但有一种环形链...原创 2021-09-06 01:00:04 · 228 阅读 · 0 评论 -
刷穿剑指offer-Day11-链表I 基础介绍
链表趣事一说到链表,就想起上学时候天马行空的思维。记得老师第一次放出链表的数据结构图时,不知怎么的。我就想到了小时候看李连杰主演的少林寺。在戏中李连杰有件兵器,看似是长棍,然后一甩成了三节棍,这个画面一直记忆犹新。所以看到链表的节点通过指针串联起来觉得神似。然后….这节课就没好好学了,哈哈。链表 VS 数组提到链表,必然会涉及到一个话题:链表与数组的比较。通过两者的对比记忆,能帮我们快速的了...原创 2021-09-03 01:41:43 · 194 阅读 · 0 评论 -
刷穿剑指offer-Day10-字符串III 回文串专题
昨日回顾昨天我们使用哈希表解决了字符串的变位匹配问题,主要是通过哈希表的方式可以快速检索历史内容,从而达到空间换时间的思想完成解题。这种空间使用空间换时间的思路,在很多场景都会使用到。 那么今天是字符串专题的最后一天,来让我们一起讲讲回文串专题。回文串的暴力思路所谓回文串,就是一段字符串,不管正序还是逆序,读出来的内容都是一样的。当然,在字符串中可能会存在空格、逗号等特殊字符串需要我们过滤。...原创 2021-09-02 02:02:50 · 315 阅读 · 0 评论 -
刷穿剑指offer-Day09-字符串II 使用哈希表解决字符串题目
昨日回顾从昨天开始,我们进入了第三章字符串的学习。然而所为的字符串专题,在讲解后,大家应该了解到字符串的题目,其实都是将字符串转化为其他数据类型后,再进行解题的过程。例如字符串转化为数组、栈、哈希表、队列等等。昨天在文末,将剑指offer的015题作为课后作业留给大家下来练习。不知道有多少人自觉完成了呢?我猜没几个....那么今天开篇,想讲解一下昨天的作业吧。剑指OfferII015.字符...原创 2021-08-31 00:30:16 · 297 阅读 · 0 评论 -
刷穿剑指offer-Day08-字符串I 字符串知识总结与题型讲解
前文回顾上一章我们学习了数组相关的知识与解题,并针对例题讲解了双指针和前缀和的解题思想。其中重点针对双指针的特殊场景滑动窗口进行了细致讨论和解题模板梳理。到这里一些初入刷题不久的朋友也许要想,那是不双指针就只能用来刷数组的题目,其他的就不适用了呢?完全不是...针对某一类数据结构的算法题目,很多时候解题思维是通用的,不仅是数组会用到双指针,链表、字符串等等同样适用。而且我们在解某一种题目时,经...原创 2021-08-30 00:19:09 · 331 阅读 · 0 评论 -
刷穿剑指offer-Day07-数组III 前缀和知识讲解!
昨日回顾昨天的数组专题,我们针对双指针中的特殊场景----滑动窗口思维进行了学习。在解题思维中,罗列出了滑动窗口的模板的使用方式,通过:确定左右边界查找窗口滑动条件的方式按照题意套模板即可可以轻松解决滑窗相关的题目。滑动窗口的力所不及在套模板的同时,大家是否考虑过,假设题目同样是求连续的子数组,但是在数组中出现了负数,那这种情况下还可以使用滑动窗口么?答案是不行的,为什么?...原创 2021-08-26 01:56:50 · 268 阅读 · 0 评论 -
刷穿剑指offer-Day06-数组II
昨日回顾上一篇文章,我们讲解了数据结构的分类,并对于学习到的第一种数据结构--数组进行了简单介绍。在介绍解题时,向大家简述了双指针的解题思路。指针的解题思路一般分为三类:首尾指针:范围查找,比如二分搜索等滑动窗口:指针处在数组同一方向,根据条件移动左右指针,用于获取范围和等快慢指针: 多用于链表计算时,判断是否有环等那么今天针对滑动窗口的延伸,会再提供两道题目供大家深入理解。滑动...原创 2021-08-25 01:27:22 · 237 阅读 · 0 评论 -
刷穿剑指offer-Day05-数组I
前文回顾之前我们使用三天的时间,学习了整数章节的知识学习。并在Day4的总结中,结合读者们关于算法学习和刷题过程中的疑问,进行了相关解答。当然朋友们也提了一些关于文章整体讲解上的建议,总体来说:每章的第一篇文章会将本章知识点全部讲解,但是当天的题目并不涉及这些内容,等后面的题目用到该知识点的时候,还要返回去看本章的第一篇文章,比较麻烦。算法题目讲解的时候,当前多为文字描述,希望能多添加一...原创 2021-08-23 01:25:07 · 315 阅读 · 1 评论 -
刷穿剑指offer-Day04-第一章结束,聊聊算法学习
昨日回顾昨天我们介绍了求余和快速幂的相关知识,并且讲解了力扣50.实现pow的题目,主要是想让大家在理解了快速幂的实现,毕竟这是一道高频的面试考题。但如果在算法机试或者平时开发时,还是使用内置的pow更为便捷,没必要重造轮子。关于书中的题目这章节今天就结束了,大家会说剑指offer中第三、第五题还没有讲。在这里需要解释下,虽然说的是刷穿剑指offer,但更多的是希望通过剑指offer这本书...原创 2021-08-20 02:03:34 · 292 阅读 · 0 评论 -
刷穿剑指offer-Day03-整数III-快速幂
昨日回顾昨天我们通过两道题目,讲解了二进制与位运算的操作。偏底层的东西确实略显枯燥,但没办法,这就是面试官们的最爱,只能耐着性子学下去了。那么今天作为整数的第三天,我们来讲讲关于取模与幂运算的操作吧。来段前戏先来一个解惑吧,我们经常在做算法题目的时候,会遇到这么一句话:答案可能很大,所以返回对 10 ^ 9 + 7 取余 的结果。10 ^ 9 + 7到底有什么含义呢?答案是......原创 2021-08-19 03:06:12 · 232 阅读 · 0 评论 -
刷穿剑指offer-Day02-整数II
昨日回顾昨天作为这个系列的第一篇文章,分别介绍了Java与Python的以下内容:整数类型与考点二进制与十进制的转换与、或、异或的操作位移操作以上内容,如果遗忘了,一定要定时复习啊...今天是整数的第二篇文章,会和大家稍有跳跃分享一道简单题+一道中等题目,用来对二进制算法完成进一步的巩固。每道题涉及的知识点会在题目分析中给出整理。让我们开始吧!剑指OfferII002.二进制加...原创 2021-08-18 01:50:29 · 419 阅读 · 0 评论 -
刷穿剑指offer-Day01-整数I
前序这是刷穿剑指offer系列的第一篇文章,在这里需要简单和大家说明下关于这个系列的一些说明。数据结构学习顺序如果大家购买了剑指offer-专项突破,那么大家肯定看到了关于这本书目录对应的数据结构。但前文也说了,这本书的价值更多的在于题目上,如果知道了题目,那么就没有太大的必要去买这本书了,那么怎么获取本书的目录与所有题目呢?这里和大家介绍下。首先打开力扣首页并进入题库专栏...原创 2021-08-17 00:41:50 · 320 阅读 · 0 评论 -
来和我一起四十天刷完 剑指offer II-专项突破!
写在前面的话最近公众号断更了,嗯...不是因为懒,而是一直在用Python刷算法题感觉有些腻了,打算捡起许久不用的Java,学学Java基础,然后使用Java、Python双语言进行leetcode刷题学习。本来打算复习完Java面向对象知识后,把所有涉及算法的数据结构与知识都学习完再开始继续更新的,但前天看到了新版本的剑指offer II-专项突破版这本书,这次的剑指offer第二版使用Ja...原创 2021-08-15 22:36:31 · 1088 阅读 · 0 评论 -
1838.最高频元素的频数 滑动窗口思路与模板分享!
1838.最高频元素的频数https://leetcode-cn.com/problems/frequency-of-the-most-frequent-element/solution/1838zui-gao-pin-yuan-su-de-pin-shu-hua-d-zuk1/难度:中等题目元素的 频数 是该元素在一个数组中出现的次数。给你一个整数数组 nums 和一个整数 k 。...原创 2021-07-19 00:51:50 · 140 阅读 · 0 评论 -
408.有效单词缩写 Python指针思路分析与细节解析!
408.有效单词缩写https://leetcode-cn.com/problems/valid-word-abbreviation/solution/408you-xiao-dan-ci-suo-xie-pythonzhi-zhe-2tc7/难度:简单题目给一个 非空 字符串 s 和一个单词缩写 abbr ,判断这个缩写是否可以是给定单词的缩写。字符串 "word" 的所有有效缩写...原创 2021-07-15 01:52:24 · 262 阅读 · 0 评论 -
剑指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 · 109 阅读 · 0 评论 -
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 · 126 阅读 · 0 评论 -
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 · 230 阅读 · 0 评论 -
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 · 217 阅读 · 0 评论 -
1239.串联字符串的最大长度 关于字符串的回溯算法!
1239.串联字符串的最大长度https://leetcode-cn.com/problems/maximum-length-of-a-concatenated-string-with-unique-characters/solution/1239chuan-lian-zi-fu-chuan-de-zui-da-cha-7weh/难度:中等题目:给定一个字符串数组 arr,字符串 s ...原创 2021-06-21 00:28:38 · 139 阅读 · 0 评论 -
力扣248场周赛 消灭怪物的最大数量 、统计好数字的数目 两题分析!
5801.消灭怪物的最大数量https://leetcode-cn.com/problems/eliminate-maximum-number-of-monsters/solution/5801xiao-mie-guai-wu-de-zui-da-shu-liang-2r9m/难度:中等题目:你正在玩一款电子游戏,在游戏中你需要保护城市免受怪物侵袭。给你一个 下标从 0 开始 且长度为...原创 2021-07-04 23:06:14 · 342 阅读 · 0 评论 -
645.错误的集合 数组遍历、哈希表、数学方法 三种解题总结!
645.错误的集合https://leetcode-cn.com/problems/set-mismatch/solution/645cuo-wu-de-ji-he-shu-zu-bian-li-ha-xi-94hcp/难度:简单题目集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 ...原创 2021-07-04 23:00:57 · 206 阅读 · 0 评论 -
力扣每日一题:525.连续数组 前缀和+hash表速解!
525.连续数组https://leetcode-cn.com/problems/contiguous-array/solution/525lian-xu-shu-zu-qian-zhui-he-hashbiao-riqe2/难度:中等题目:给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。示例:示例 1:输入: nums...原创 2021-06-24 00:24:08 · 218 阅读 · 0 评论 -
Python堆排序介绍与力扣三道堆相关题目分享
堆的定义堆 是一种特别的二叉树,满足以下条件的二叉树,可以称之为 堆:完全二叉树;每一个节点的值都必须 大于等于或者小于等于 其孩子节点的值。堆 具有以下的特点:可以在 O(logN)O(logN) 的时间复杂度内向 堆 中插入元素;可以在 O(logN)O(logN) 的时间复杂度内向 堆 中删除元素;可以在 O(1)O(1) 的时间复杂度内获取 堆 中的最大值或最小值。堆的...原创 2021-06-24 00:23:25 · 434 阅读 · 0 评论 -
实用算法题:excel表列序号与十进制数字的互相转化算法讲解!
日常生活中excel的使用大家都不陌生,可能几列的表格我们还能脑海中参照A-Z来区分对应的数字应该是几。但有的表格列过多,或者鼠标一甩到了很后面的位置,好几个字母拼起来,一时间很难反映过来对应的数字是多少列。所以今天力扣这两道算法题,就帮我们解决了这个问题。当然近半年的这两题的出题公司有:微软 6次Shopee 3次苹果 2次高盛 2次额,居然没有国内大厂?是要把excel换成W...原创 2021-06-30 01:04:16 · 1389 阅读 · 0 评论 -
K个数、K个点、K个元素,3K堆排序,类比三解题!
面试题17.14.最小K个数https://leetcode-cn.com/problems/smallest-k-lcci/solution/mian-shi-ti-1714zui-xiao-kge-shu-ji-chu-k9jd8/难度:中等题目:设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。提示:0 <= len(arr) <= 100000...原创 2021-06-29 00:05:59 · 194 阅读 · 0 评论 -
力扣每日一题:523.连续的子数组和 前缀和+哈希表解法
523.连续的子数组和https://leetcode-cn.com/problems/continuous-subarray-sum/solution/523-lian-xu-de-zi-shu-zu-he-qian-zhui-he-zl78/难度:中等题目:给你一个整数数组 nums 和一个整数 k ,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组:子数组大小 至...原创 2021-06-25 00:04:04 · 262 阅读 · 0 评论 -
1833.雪糕的最大数量 基础排序、栈操作、堆排序 三解so easy!
1833.雪糕的最大数量https://leetcode-cn.com/problems/maximum-ice-cream-bars/solution/5735xue-gao-de-zui-da-shu-liang-zhe-chon-kt3f/难度:中等题目夏日炎炎,小男孩 Tony 想买一些雪糕消消暑。商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中...原创 2021-07-02 00:33:47 · 228 阅读 · 0 评论