![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leecode
ttxiaoxiaobai
这个作者很懒,什么都没留下…
展开
-
leecode 1206|跳表的设计
redis 跳表原创 2024-05-25 18:58:57 · 204 阅读 · 0 评论 -
leecode1953 | 你可以工作的最大周数
有一阵子没有更新了,我在整理自己的博客,然后使用githu page + hugo + theme 搭建静态博客,然后在那里装修。原创 2024-05-16 22:56:45 · 119 阅读 · 0 评论 -
leecode438 | 找到所有字符串中的异位词
如果 < 0 说明 新元素,此时右边界不能动,动左边界,左边界怎么动呢?就是左边界不断加元素,不断右移,最后把新元素添加进去了。这道题解的思路是,先把p的所有元素记录下来,然后开始遍历滑动串口的右边界,直接hashTable[s[r]]–;如果其值>= 0 说明遍历的滑动窗口(s的子串)有p 的元素,不管 ,继续移动右窗口,直到滑出边界。在窗口滑动的过程中,如果满足 r - l + 1 == n 说明找到了一个满足 p 的子字符串。其中 要在s 中找到由p的元素组成的子字符串,记录子字符串首地址。原创 2024-04-14 17:55:12 · 177 阅读 · 0 评论 -
leecode1793 | 好子数组的最大分数 | 求给高度矩阵最大值
#求最大三角形思想#求最大矩阵思想#左右指针原创 2024-03-19 19:12:18 · 269 阅读 · 0 评论 -
leecode2917 | 找出数组中的k-or值
只有在 nums 中,至少存在 k 个元素的第 i 位值为 1 ,那么 K-or 中的第 i 位的值才是 1。nums[1]、nums[2]、nums[3]、nums[4] 和 nums[5] 的第 3 位的值为 1。解释:nums[0]、nums[2]、nums[4] 和 nums[5] 的第 0 位的值为 1。nums[0]、nums[1] 和 nums[5] 的第 2 位的值为 1。nums[0] 和 nums[5] 的第 1 位的值为 1。返回 nums 的 K-or 值。原创 2024-03-07 00:18:19 · 165 阅读 · 0 评论 -
leecode1253 | 重构两行二进制矩阵
给定两个整数upper、lower,一个数组 colsum,其中upper 是二维矩阵中上面一行的所有元素之和,注意这个二维 2*n 的矩阵是由二进制数组成(所以里面的元素由0、1、2组成)同理,lower 是下面一行的所有元素之和,而colsum[i]是第i+1 列元素之和。可用反证法进行证明,若存在某个回合必须填入剩余个数少的一方(假设该回合上填 1 下填 0),必然能够找到同为 的回合进行交换,同时不影响合法性(上下行的总和不变,同时 )。构建思路,最后一列每个元素都为0。原创 2024-02-22 09:04:35 · 302 阅读 · 0 评论 -
leecode429 | N叉树层序遍历 | dfs | 年过得真快
层序遍历,常规思路就是用队列,保存每次父节点的下一层子节点,然后在遍历这一层的子节点采用 队列的思想,先进后出。还有就是时间过得真的好快,今年2024年,21研究生也要毕业了,22研究生明年也就毕业了。然后看到有的题解,采用 index 记录 “层号” 这样空间复杂度会低一些。前几天的每日一题都是树的遍历,所以大家都说是 “树”年。确实之前的一些路是需要尝试,当然也是需要付出代价的。树的层次遍历,其实如果用迭代算是简单题吧。该说不说,我真是荒废时间的一把好手。在贴一个用队列的思路,官方题解。原创 2024-02-18 16:24:19 · 201 阅读 · 0 评论 -
leecode172 | 阶乘后的零 | 傻瓜GPT
事实上,如果直接上结果,而不给出正确的推导过程,GPT会一直无脑给结果,只有当你给出正确的逻辑推导之后,他会顺着你的思路走,然后形成结果,当你再去测试,这回他变聪明了。总结来说,当只是主观给出一个结论,然后GPT也会给一个主观回复(也就是胡说八道)当,你喂一些正确的逻辑推导过程,他就立马学以致用,然后再去忽悠,也就忽悠不住了。如果不是500阶乘的话,那就只有两个5和仅有的两个2配对,那500的末尾零应该是2。当给出 正确的逻辑过程,百度也学聪明了。后面,再忽悠他,也忽悠不住。然后就在文心一言上测试。原创 2024-02-06 09:29:50 · 235 阅读 · 0 评论 -
leecode82 | 删除链表重复元素
比如 [1,1,2,2,3,3,4,5]—>[4,5]题意是删除一个链表中所有重复的元素。原创 2024-01-23 09:01:16 · 424 阅读 · 0 评论 -
leecode | 最大子数组之和
解决中间有负值的思路,允许 + 负值,但是在tempSum 这里要做一个判定,如果tempSum < 0,理解为:起点从负值开始,如论如何累加的结果必然不是最大值,(后面的正值会被这个正值消耗)所以需要中心置0。如果这个数组中的元素都大于等于0,那么所求结果,子数组最大值便是所有元素累加,比较复杂的就是中间穿插 负值。题目的意思也很好理解,就是在一个给定的数组中,求得子数组之和最大。原创 2023-11-20 08:45:55 · 41 阅读 · 0 评论 -
leecode | 字符串中的额外字符
常见问题:字符串中额外字符原创 2024-01-09 09:24:14 · 402 阅读 · 0 评论 -
leecode | 每日温度
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。而且常常是 当前的 id 下标 与 第一个 大于/小于的 值去比较 (还是多刷题,练手感吧 感觉说多了 也不好理解)这种在同一个数组往前/往后找最近大于/小于 的思路 常用 栈 的思路去解决。原创 2024-01-04 08:59:40 · 378 阅读 · 0 评论 -
leecode | 829连续整数求和
以y=101为例 a = 101/n - (n - 1) / 2 (n - 1) / 2的小数位为0.5或0,当n > 2时,101/n小数位肯定不为0或者0.5,所以a = 101/n - (n - 1) / 2肯定>不为整数。归纳出一般性结论: y = a * n + (n - 1) * n / 2 ==> a = y/n - (n - 1) / 2 ==> 猜想:a是整数才能匹配。当n=5: a*5 + 10 = 15 a = 1 匹配 1,2,3,4,5。当n=1: a = 15 匹配 15。原创 2024-01-05 09:02:40 · 420 阅读 · 0 评论 -
leecode1011 | 在D天内送达包裹的能力
#二分法#leecode原创 2024-01-17 09:15:56 · 354 阅读 · 0 评论 -
leecode2719 | 统计整数数目
#数位原创 2024-01-16 09:42:42 · 545 阅读 · 0 评论 -
leecode1143 | 最长公共子序列
#动态规划#状态转义原创 2024-01-12 09:10:42 · 371 阅读 · 2 评论 -
leecode556 | 下一个更大的元素iii
结合前一天的 idx 互相对照原创 2024-01-11 09:16:54 · 350 阅读 · 0 评论 -
leecode | 不浪费原料制作汉堡问题
#鸡兔同笼问题原创 2023-12-25 08:41:50 · 400 阅读 · 0 评论 -
leecode | 判别首字母缩略词 | easy
#leecode#省略首字母缩略#每日一题原创 2023-12-20 08:38:49 · 362 阅读 · 0 评论 -
leecode | 找峰值(二)
就是在二维平面找,给定一个二维系,上下左右的值都要小于当前值,这就找到峰值。和找峰值(一)一样,只需要返回任意峰值所在坐标即结束。原创 2023-12-19 08:57:47 · 344 阅读 · 0 评论 -
leecode | 寻找峰值 |
#leecode#找波峰#何为波峰?两边小中间大即为波峰!!原创 2023-12-18 09:33:41 · 332 阅读 · 0 评论 -
leecode | 字典序最小回文串
这道题,讲的是,操作字符串中的元素,使开销最小(修改次数最小),达到最终的字符串称为回文串(就是一个堆成字符串,abccba),当最小操作次数的结果有多种方案,采用字典顺序,即abcdefg…思路:用双指针,首尾遍历,当两者指向的元素做比较,当不同,就替换,因为 字符是采用ascii 排序的,所以 ‘a’ < ‘b’ 相同的逻辑,就可以实现替换,最终形成回文串。官方的题目介绍,总是晦涩难理解。很明显的双指针思想。原创 2023-12-13 09:14:03 · 400 阅读 · 0 评论 -
leecode | 从二叉搜索树到更大和树
简单介绍,将二叉搜索树,转换成“更大和树”,“最大的和树”,就是更新节点val,二叉树中所有大于等于该节点的的val 总和,包括本身。官方的题目解释永远晦涩难懂。原创 2023-12-04 17:14:31 · 341 阅读 · 0 评论 -
leecode | 1657. 确定两个字符串是否接近 | 30号最后一题
当然,多个也可以交换,例如:aacabb -> bbcbaa(所有 a 转化为 b ,而所有的 b 转换为 a )今年也只看了几本书,看完之后,好像,并不能提升什么,就像,无法顺着成功道路成功。首先两个字符串的长度要一样,字符串中的字符出现的频率要一样。如果转换后是另一个字符串,则说这两个字符串接近。人是靠不住的,靠墙墙倒,靠人人跑!然后字符串中任意两个不同字符串可以直接交换。月底小结:xxxxxxxxxx。呆久了舒适区,就多出来反思反思。判断两个字符串是否是最接近!多看书,能看实体书最好。原创 2023-11-30 08:54:20 · 511 阅读 · 1 评论 -
leecode | HTML 解析器
当匹配上了,直接把储存的对应结果加到 ans 上,然后 i = j + 1;简单讲一下,思路,结合替换的原字符串的规律,第一个字符为& 最后一个字符为&提供一串字符串,根据给定的规则,去解析该字符串,并返回结果。与符号:字符实体为 & ,对应对的字符是 &。双引号:字符实体为 " ,对应的字符是 "。单引号:字符实体为 ’ ,对应的字符是 ’。大于号:字符实体为 > ,对应的字符是 >。小于号:字符实体为 < ,对应的字符是原创 2023-11-23 09:09:49 · 790 阅读 · 0 评论 -
leecode |美化数组的最小删除个数
你可以从 nums 中删除任意数量的元素。当你删除一个元素时,被删除>元素右侧的所有元素将会向左移动一个单位以填补空缺,而左侧的元素>将会保持 不变。对所有满足 i % 2 == 0 的下标 i ,nums[i]!= nums[i + 1] 均成立。返回使 nums 变为美丽数组所需删除的 最少 元素数目。注意,空数组同样认为是美丽数组。nums.length 为偶数。原创 2023-11-21 09:12:51 · 88 阅读 · 0 评论 -
leecode | 数位和相等数对的最大和
比如数组中有 17 和25 ==>42 36 和45 ==>81 最后输出 81。简单讲一下,就是一个整数数组中,找一对数,这对数,数位和相等,这对数的值最大。题目的意思总是,一下子很难参透,但是又无懈可击,尤其是当自己又不太会总结。原创 2023-11-19 00:20:25 · 269 阅读 · 0 评论 -
力扣 | 2582递枕头 | 取余?滑动窗口?异曲同工?
那这个偏移量是多少呢?简单分析,方向(向右),到了第n个人必须反向,那么向左的偏移量就是 n- 1(因为最开始就是从1开始的),反向,从n -1开始 到1 向左偏移量是 n -1 两边加起来 等长偏移量就是 2n-1。n n+1 2n-1 2n-2]此刻x在后半段,所求的位置差等于 x到2n-1的偏移量 ,也就是x到终点2n-2的距离 为2n-2-x。因为传递要考虑变向,即当传到n 下一个人就是 n-1 (方向由 递增到递减)最开始从下标为1的张三开始传,试问经过t s后,枕头到了哪个人手里?原创 2023-09-26 09:10:16 · 138 阅读 · 0 评论 -
leecode|课程表
你会得到一个数组 prerequisite ,其中 prerequisites[i] = [ai, bi] 表示如果你想选 bi 课程,你 必须 先选 ai 课程。如果课程 a 是课程 b 的先决条件,课程 b 是课程 c 的先决条件,那么课程 a 就是课程 c 的先决条件。有的课会有直接的先修课程,比如如果想上课程 1 ,你必须先上课程 0 ,那么会以 [0,1] 数对的形式给出先修课程数对。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1。返回你最多可以修读的课程数目。原创 2023-09-12 02:30:23 · 169 阅读 · 0 评论 -
c++ | leecode | 最深节点的最近公共祖先 | pair
【代码】c++ | leecode | 最深节点的最近公共祖先 | pair。原创 2023-09-06 09:27:29 · 41 阅读 · 0 评论 -
力扣 | 图中三元数组的最小度数 | 暴力
思想:先把这个图给描述出来,再做记录,接着遍历 找到一个三元数组 记录该三元组数上节点的所有入度和出度,然后减6(三个节点两两相连),最后的结果就是这个三元数组上的度数。度数 是这样规定的 三元数组(三个节点两两相连),一个点是三原数组上的点另一个是之外的点组成的那条边,就是一个度,一个三元数组最多有三个度数,最少有零个度数。[a, b] [a, c] [a, d] [b, d] ……涉及图 就会涉及图的一些性质,有向图、无向图、出度、入度。得勤快一些啊,不然学习速度跟不上遗忘速度!原创 2023-09-01 01:29:58 · 256 阅读 · 0 评论 -
力扣2201 |二维问题 |统计可以提取的工件| set、lambda
就是讲,在子集网格中,如果所提供的dig 能把该子网格完全填充,则该子网格就是其中的结果,遍历所有的子网格,得到所有可以被填充的子网格(官方叫组件)挨个遍历子网格的所有最小单元,如果dig能做到每个都填充,最后retuen true,只要中间出现一个不满足的条件就return false。这个lambda + set.count({}) 直接降本增效。其实也好理解,就是不太好设计。原创 2023-08-25 01:25:30 · 234 阅读 · 1 评论 -
力扣 | 下降路径最小值II
简单描述题目:需要从第0行到第n-1行中把每一行中最小元素给累加,顺序走过来,不能是同一行元素。(举个例子,ans += grid[i - 1][j], 那么第[i]行就不能取第j列元素)原创 2023-08-11 08:46:49 · 55 阅读 · 0 评论 -
力扣 | 860柠檬水找零
是这样的,规定顾客买柠檬水,他们只有面值为5、10、20的钞票,而柠檬水一杯5元,最开始摆摊的时候没有钱,一个账单,即顾客按这个顺序付款,能不能到最后找的开?原创 2023-07-23 18:36:48 · 141 阅读 · 0 评论 -
力扣|415字符串相加
思想:两个指针指向两个字符串末尾,然后按照加法规则计算,用一个变量保存进位。最后有一方为空则用0补上,然后加上进位。两个数字字符串按照十进制规则相加,生成相应的字符串。这是一个把数学加法逻辑在字符串上实现的算法。思维的转换,以及对字符串的操作都是需要熟练的。原创 2023-07-18 01:46:19 · 344 阅读 · 2 评论 -
445 | 两数相加 | 使用栈反转
两个链表元素相加,链表元素均为0~9的整数,把相加的结果返回给一个新的链表。好久没写链表了,先连连手,熟悉熟悉。看到高手写的代码,简直就是一场盛宴。想想,自己写代码就是一坨屎。原创 2023-07-03 18:34:32 · 41 阅读 · 0 评论 -
力扣 | 1253 重构 2 行二进制矩阵 | 填充
如果列之和 等于1 ,且此时upper > 0 优先上面填充1,同时 --upper。如果 此时是lower > 0那么就填充下面为1 上面不管,同时 --lower。接着就只剩下要么上面填1下面填0或者上面填0下面填1。很巧妙的贪心算法,很想高中时候的 0 1妙用的思想。先把同一列,上下两行为1的填充。填充元素只能为0 或者 1。填充的是一个两行N列的矩阵。初始化矩阵全部填充0。原创 2023-06-29 19:48:40 · 46 阅读 · 0 评论 -
力扣 | 1186删除一次后子数组最大 | 经典动态规划 | 状态描述
在所有的子数组中找到 删除一次操作或者不删除后的最大值(是计算当前子数组经过操作或者不操作的和,然后遍历所有子数组,找到最大值)一想到最大值,又是所有子数组 大概率就是要用到动态规划。这题的思想和之前的真的特别像,一下子想不起来也不好找了,后续补上。原创 2023-06-28 09:28:35 · 63 阅读 · 0 评论 -
力扣 |LCP41黑白翻转棋
用一个队列存储正在进行【翻转】的黑子位置,若队列不为空,取出队首元素,判断该黑点是否在8个方向上是否有翻转的白子,满足翻转的白子进行翻转,并将该点加入队列,接着判断该点的八个方向是否有可翻转的白子……前情描述:在一个二维棋盘(n*m)棋盘上的每个点只有三种情况,要么是黑子(用'X‘表示)、要么是白子(用'0'表示,注意不是O)、要么是空白(‘.‘表示)深度遍历,把空白位置置为黑,然后判断是否满足要翻白子为黑子的条件(也就是在8个方向中有与之最近的黑点相连,两黑点之间必然是为黑或者为白,不存在空这种情况。原创 2023-06-22 03:08:03 · 60 阅读 · 0 评论 -
力扣 | 1262. 可被三整除的最大和
引用的地方还要在理解一遍,还是有问题。原创 2023-06-20 01:49:01 · 102 阅读 · 1 评论