hot100专题

【LeetCode】Hot100:验证二叉搜索树

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树 只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 英文题目 Given the root of a binary tree, determine if it is a valid binary search t

LeetCode刷题之HOT100之LRU缓存

2024/6/21 酷暑难耐,离开空调我将不知道能否《活着》,昨天跑步感觉全身的热无法排出去,出门那种热浪一阵一阵打过来,一点风都舍不得给我。早早的来到实验室,也没多早,九点哈哈,做题啦! 1、题目描述 2、逻辑分析 刚看到这个题目,我看了好久,看不懂啥意思,然后去看了题解以及代码,打算跳过这题的想法在脑海里飘过三四次,好长啊代码。但是我还是看完了,就是一个redis缓存思想。该算法使用

leetCode-hot100-链表专题

leetCode-hot100-链表专题 链表简介单链表单链表的使用例题206.反转链表19.删除链表的倒数第N个结点24.两两交换链表中的节点25.K个一组翻转链表 双向链表双向链表的使用 循环链表61.旋转链表141.环形链表142.环形链表Ⅱ LinkedListLinkedList的使用 链表简介 参考博客:java数据结构之链表。 链表是一种常见的基础数据结构,它

力扣hot100:75. 颜色分类(双指针)

75.颜色分类 本题是经典的「荷兰国旗问题」,由计算机科学家 Edsger W. Dijkstra 首先提出。 75. 颜色分类 1、遍历两遍 遍历两遍,第一遍放置0的位置,第二遍放置1的位置,我们只需要维护一个当前放置位置即可。 class Solution {public:void sortColors(vector<int>& nums) {//扫描两遍,第一遍放好0的位置

leetcode刷题记录:hot100强化训练2:二叉树+图论

二叉树 36. 二叉树的中序遍历 递归就不写了,写一下迭代法 class Solution(object):def inorderTraversal(self, root):""":type root: TreeNode:rtype: List[int]"""if not root:return res = []cur = rootstack = []while cur or stack:i

Hot100-动态规划

动态规划与贪心的区别: 动态规划是由前一个状态推导出来的(时序), 而贪心是局部直接选最优的 动态规划问题解题五步曲: 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 118. 杨辉三角 - 力扣(LeetCode) class Solution {public List<List<Integer>> generate(int

leetcode hot100 之 搜索插入位置

题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 输入: nums = [1,3,5,6], target = 5 输出: 2 原题链接:https://leetcode.cn/problems/search-insert-position/ 思路 二分查找。 找到 target 值,直接返回索引。 或者

力扣hot100: 48. 旋转图像

LeetCode:48. 旋转图像 受到力扣hot100:54. 螺旋矩阵的启发,我们可以对旋转图像按层旋转,我们只需要记录四个顶点,并且本题是一个方阵,四个顶点就能完成图像的旋转操作。 1、逐层旋转 注意到,一层的四个顶点存在一定的位置关系,我们只需要记录四个值: top_row、bottom_row、left_col、right_col,则上右下左四个顶点分别为: (top_row,

LeetCode刷题之HOT100之子集

2024/6/11 周二,闷热,很热。两天没有做题了,前天去附近一景点《十八重溪》游玩,去了才知道暂停开放,只能在附近转转了,瀑布是看不到了。昨天在宿舍呆了一天,今天早上起来就来了实验室。补三张图就开始做题啦! 图一、十八重溪牌匾 图二、涓涓细流 图三、我的溯溪鞋派上了用场嘿嘿,水非常清澈呀 好啦,下面开始做题啦 1、题目描述 2、逻辑分析 这题给定一个整数数组nums,元素互不相同

力扣hot100学习记录(十二)

94. 二叉树的中序遍历 给定一个二叉树的根节点 root,返回它的中序遍历。 题意 给定一个二叉树,返回它的中序遍历 思路 采用递归的思想,只要根节点不为空,则一直递归遍历左子树,然后将根节点的值存入结果,最后递归遍历右子树。 代码 class Solution {public:vector<int> ans;vector<int> inorderTraversal(TreeNode*

力扣hot100:739. 每日温度/54. 螺旋矩阵

文章目录 一、 739. 每日温度二、54. 螺旋矩阵1、模拟螺旋矩阵的路径2、按层模拟 一、 739. 每日温度 LeetCode:739. 每日温度 经典单调栈问题,求下一个更大的数。 使用单调递减栈,一个元素A出栈,当且仅当它第一次出现比它更大的数B,由于栈是单调递减的,因此该数B入栈时,会弹出这个栈中比它小的数A,A也同时找到了它的下一个更大的数。时间复杂度: O

力扣hot100:394. 字符串解码(递归/括号匹配,字符串之间相对顺序)

LeetCode:394. 字符串解码 本题容易想到用递归处理,在写递归时主要是需要明确自己的递归函数的定义。 不过我们也可以利用括号匹配的方式使用栈进行处理。 1、递归 定义递归函数string GetString(string & s,int & i); 表示处理处理整个number[letter],处理后i指向’]'之后的一个元素当letter中有这样的结构时,直接递归处理。 定义函数

hot100 -- 二分查找

目录 前言 🎂搜索插入位置 🌼搜索二维矩阵 🌼排序数组元素第一和最后一个位置 🌼旋转排序数组 💪旋转排序数组中的最小值 💪两个正序数组的中位数 前言 二分算法学习_时间超限ac:0%-CSDN博客 🎂搜索插入位置 35. 搜索插入位置 - 力扣(LeetCode) 直接套博客里的万能模板不太行,万能模板只能处理下取整死循环的问题,但是本题:

LeetCode刷题之HOT100之颜色分类

下午好呀,大家!昨天估计是喝了假酒,现在没有胃口,喝酒真的没有任何好处。以后尽量避免此活动。今天几乎没睡觉,准备做完这题回宿舍,把电脑也带回去。 1、题目描述 2、逻辑分析 对颜色排序,要求是原地排序。以下是我想出来的代码 public void sortColors(int[] nums) {Arrays.sort(nums);} 哈哈哈啊,秒了嘿嘿 Anyway,怎么解决呢?

LeetCode刷题之HOT100之编辑距离

吃了一份扬州炒饭,等会还要去喝点酒,今天室友生日,下午上课我才反应过来。先做道题再说。 2024/6/8 昨天去喝酒去了,这道题没有做。大概喝到凌晨一点,看了会《地下室手记》,简单洗漱后上床准备休憩。辗转无眠,凌晨五点 天见白,遂去旗山湖走了一圈。放几张风景照。 图一、渔人撑篙打渔,好不快意 图二 、旗山准备醒来 图三 、莲花睡在上面宁静、恬适 图四、湖光山色,甚美 Any

力扣hot100:155. 最小栈(栈,辅助栈存储相关信息)

LeetCode:155. 最小栈 1、尝试单调栈 看到这题说,要常数时间内检索最小元素的栈,想到了单调栈,递增单调栈确实能维护最小值,但是这个最小值是存在一定意义的,即如果后面出现了最小值,那么前面的之前的最小值就会无效。 而本题存在弹出操作,这导致当前最小值可能会被丢弃,而需要使用之前的最小值,单调栈可能无法做到找回次小值。 能够弹出值且能一直保持维护数据的最小值的数据结构,是优先队

力扣hot100:295. 数据流的中位数(两个优先队列维护中位数)

LeetCode:295. 数据流的中位数 这个题目最快的解法应该是维护中位数,每插入一个数都能快速得到一个中位数。 根据数据范围,我们应当实现一个 O ( n l o g n ) O(nlogn) O(nlogn)的算法。 1、超时—插入排序 使用数组存储,维持数组有序,当插入一个元素时使用插入排序维持数组有序,这种方式无异于使用插入排序,时间复杂度不达标。 时间复杂度: O ( n 2

hot100_62不同路径

不同路径 题目思路、代码1.排列组合2.动态规划 题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可

力扣hot100:138. 随机链表的复制(技巧,数据结构)

LeetCode:138. 随机链表的复制 这是一个经典的数据结构题,当做数据结构来学习。 1、哈希映射 需要注意的是,指针也能够当做unordered_map的键值,指针实际上是一个地址值,在unordered_map中,使用指针的实际内存地址值计算哈希函数,通过指针值来判断两个键值是否相等。 在第一次遇到这个问题时,最容易想到的方法自然是使用哈希表直接构造一模一样的。 遇到任何一个新结

LeetCode刷题之HOT100之合并区间

雨下了一整天,中午早早就回去吃饭拿快递了,今天拿了很多快递。我的书回来啦哈哈,还有好多零食,爽歪歪啊,放在下面了,然后准备开始做题啦! 图一:左一是xh送我的,非常精彩(其他都是618购入)只买了陀爷和小波的,白夜行是朋友极力推荐购入 下次购书就不知道是啥时候了,毕竟现在任务落在我们身上,很难挤出时间来看看。Anyway,随性些,做题吧! 1、题目描述 2、逻辑分析 题目要求很清晰。我

力扣hot100学习记录(十一)

24. 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 题意 两两交换链表中的相邻节点 思路 先创建一个虚拟头节点,该节点指向真实头节点。定义p为虚拟头节点,如果该节点的next(a)和next->next(b)存在,则将p->next指向b,a->next指向b->next,b->n

LeetCode刷题之HOT100之旋转图像

2024/6/4 昨晚在实验室待到很晚才回去,回去看会《万历十五年》就睡了,现在又来了,看了一下昨天做的题目的题解过程,稍微理解了深度优先搜索和回溯思想,那么现在,继续今天的刷题。 1、题目描述 2、逻辑分析 从数组来到了矩阵,焕然一新的感觉。 看到矩阵旋转,就可以找到规律。 [[1,2,3],[4,5,6],[7,8,9]] 变成 [[7,4,1],[8,5,2],[9,6,3]]规律

LeetCode hot100-64-Y

74. 搜索二维矩阵给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。 尝试写了更快的代码,但是通过不了所有的测试案例。最后写了暴力解法 class Solution {public boolean se

LeetCode刷题之HOT100之搜索旋转排序数组

2024/6/2 雨一直下,一个上午都在床上趴着看完了《百年孤独》,撑伞去吃了个饭,又回到了宿舍。打开许久未开的老电脑,准备做题了。《百年孤独》讲了什么,想表达什么,想给读者留下什么,我不知道,看着知乎对它的解读,我都不太满意。有人总认为这些文学作品是为了留下什么,有什么寓意,其实我觉得故事就是故事,不一定非得要一个大团圆乌托邦的寓意来指点道路,或许每个人都难以跳出百年轮回的孤独中,有时候毁灭也代

hot100 -- 回溯(下)

👂 ​​​​​​​▶ 幸福就是 (163.com) 👂 ▶ 当爱在靠近 (163.com) 目录 🚩括号生成 AC  DFS 🌼单词搜索 AC  DFS 🎂分割回文串 AC  DFS+DP AC  DFS+记忆化 🌼N 皇后 AC  DFS 🚩括号生成 22. 括号生成 - 力扣(LeetCode) AC  DFS class Solutio

LeetCode刷题之HOT100之下一个排列

《百年孤独》看到了255页,还有100页就看完了,每个人物的一生就像流水,波澜不惊下是暗流涌动。值得一提的是外国小说对人性的描写更为深入,每个人物性格都被刻画的淋漓。是的,今天雨一直在下,淋湿我的身上,独自一人在偌大的会议室,不知所措。孤独与倦怠像洪水吞噬了我,残存的躯壳在这里机械的打着稍有点人情味的字,一切都令人感到无趣,孤独占有了我。可能是看了这本书的后遗症,也同样可能是我矫揉造作、无病呻吟,