- 博客(1045)
- 收藏
- 关注
原创 [E单调栈] lc2487. 从链表中移除节点(单调栈+递归+反转链表+多思路)
本题还是有很多种做法的,题目看到之后就直接采用了 单调栈 处理了下,然后逆序的问题可以采用链表头插法,或者反转链表即可。写完看到题解区还有递归,先反转链表再进行业务处理,等等写法,算法思路不同,可以借鉴学习一下。着重看看递归思路,想一下,如果需要逆序打印链表元素,其实就很容易想到递归了。
2024-04-02 15:17:32 253
原创 [M哈希表] lc2671. 频率跟踪器(哈希表+思维)
所以,考虑两个哈希表的使用,一个哈希表来存储当前元素的次数是多少,另一个哈希表存储次数出现的次数,比较绕口…挺有意思的哈希表题目,单独一个哈希表的话,每次遍历去判断有没有数字出现的次数,就会超时。有点绕,可以理解一下。
2024-03-21 22:59:59 397
原创 [M单调栈] lc1793. 好子数组的最大分数(单调栈+双指针+思维转换)
转换之后,就是一道标准的单调栈应用的题目了。需要找到两侧第一个小于该位置的下标即可,记为 l, r。那么矩形的高度记为当前位置的高度,宽度即为 r-l-1。因为这里是严格小于的高度,矩形边界不为 l, r,所以需要 -1。题目中还提到了双指针的优雅做法。但是思路比较精妙,不容易想出,不容易借鉴,感兴趣去参考题解区吧。这里也是额外多了一个限制,要求下标 k 要在矩形中,注意边界判断的时候不能取 == 号。可以看看图形和这个题目的描述即可。
2024-03-19 22:16:36 435 1
原创 [M贪心] lc2789. 合并后数组中的最大元素(贪心+思维)
将这两个数字记为 A1,A2,要求 A1 A2 的时候,这个时候数组中的最大和已经不是 A2 这块了,也无法做合并了。我们就将当前的最大和赋值给 A1,然后让 A1 继续去做逆序合并即可。最终合并到头部,逆序遍历完数组,则可得到数组中的最大值。可能会爆 long long,记得开。挺有意思的一道题目。
2024-03-16 12:01:53 361
原创 [E模拟] lc2864. 最大二进制奇数(模拟+遍历)
也可以直接排序后,字符串第一个字符一定是1,将其放到最后一位,即可。不过这个效率受到排序影响不如上面的统计1的个数快。思路很清楚,统计1的个数,然后将1个1安排到最后面一位成为奇数,剩下的1全部放在高位即可。
2024-03-13 20:54:58 366
原创 [E模拟] lc2129. 将标题首字母大写(模拟+遍历)
如果是单个空格的话,可以考虑官解的写法,感觉更加简单一些。正常模拟,遍历字符串,根据要求处理即可。
2024-03-11 10:39:45 380
原创 [M数学] lc2834. 找出美丽数组的最小和(数学+找规律+思维)
一开始考虑的是,有没有一种方法,统计前缀的所有加和的情况,能够在 O(1) 确定当前值,但想了想应该不太现实…数据量在 1e9 的话,很明显需要使用 O(n) 以下的算法。找规律的题目,最好能够从 “特殊” 再到 “一般”。数据量在 1e5 的话,可以哈希表+模拟。很能代表 中等 题目的难度和思维过程。
2024-03-08 11:19:05 396
原创 [E栈] lc232. 用栈实现队列(模拟+代码实现+常见)
栈实现队列这个问题较为常见,难度较低,两个栈来回倒一次就行了,主要是看看如何简洁的进行代码实现。
2024-03-05 15:24:19 313
原创 [E思维] lc225. 用队列实现栈(模拟题+思维+常见)
常见问题,栈实现队列,队列实现栈。但是个人感觉,队列实现栈要稍微难一点点。这两个问题,实际上都是考思路,因为实现效率都得是。两个队列,再怎么倒来倒去,会发现数据的顺序是不会发生改变的,这点和栈是有区别的。所以思路会稍微难一点点。这个思路下,代码很简洁,用了 swap 优化了代码结构,但是效率依旧是。做法,有时候会使劲往这方面去想,hh。这个思路下,代码也很简洁,效率是。,没有实际的应用意义。
2024-03-05 15:04:18 699
原创 [M二叉树] lc889. 根据前序和后序遍历构造二叉树(递归建树+思路转换+分类讨论+好题)
看上图即可,root 位置确定,若该 root 存在左右子树,则针对前序遍历来看,root+1 位置肯定在后序遍历中的某一位置出现,那么在后序遍历中,该节点是 root 左子树的根节点,那么就可以分为 左右子树 了。不仅要看当前 root 的位置,实际上前序遍历 root 的下一个位置就是 root 的左/右子树根节点的位置,再结合上述讨论,当root的左孩子、右孩子 实际上没啥区别,这样子默认左孩子就行了呗,代码就很自然的写出来了。这两个结构不同的二叉树,但有相同的 前、后 序,所以仅结果不唯一。
2024-02-22 22:44:21 837
原创 [M二叉树] lc106. 从中序与后序遍历序列构造二叉树(递归建树+迭代建树+经典问题+二叉树建树总结)
十分经典的问题哈,这里主要记录下还有一种迭代的写法,迭代写法可以去参考官方题解中的写法,确实第一次见这个巧妙的迭代建树的写法。这里其实用哈希表记录位置才能算是 O(n) 否则用循环来做的话,可能达到 O(n^2)参考原有博文即可:前中,中后,都可以建树成功!
2024-02-20 11:31:07 325
原创 [M二叉树] lc105. 从前序与中序遍历序列构造二叉树(递归建树+迭代建树+经典问题)
十分经典的问题哈,这里主要记录下还有一种迭代的写法,迭代写法可以去参考官方题解中的写法,确实第一次见这个巧妙的迭代建树的写法。参考原有博文即可:剑指 offer 的博文,有图例,代码也十分清楚!
2024-02-20 10:51:20 335
原创 [H数据结构] lc295. 数据流的中位数(对顶堆+技巧+思维+代码实现)
算法常用,剑指 offer 中也会出现,这个数据结构设计的十分巧妙!这个思路很是巧妙,可以自行画图理解下~
2024-02-01 11:04:07 1240
原创 [E模拟] lc2670. 找出不同元素数目差数组(哈希表+状态压缩)
哈希计数统计就行了,题解里有看到用 long 64 位进行状态压缩的,可以参考下。这类题就不纠结写法了。
2024-01-31 10:10:08 373
原创 [M思维] lc2808. 使循环数组所有元素相等的最少秒数(思维+哈希表+代码实现)
一道比较简单的思维题吧,将一维数组首尾连接变成环,会发现相同元素中间的距离 / 2,就是需要感染的秒数。包括首尾连接的字符也要算下距离。
2024-01-30 12:59:14 409
原创 [M单调栈] lc2866. 美丽塔 II(单调栈+前后缀分解+经典好题+题单)
承接上题,如果数据量放大后,断然不会用两层循环去解题。实际上选定 i 作为峰值时,后缀 和 前缀 的状态是固定的,我们只需要将 前缀、后缀 这两个数据处理好,是不是就可以直接获取到答案了。单调栈的思路比较直接,但是编码过程中维护一些变量啥的、边界情况啥的 就比较难处理,属于十分易错的。这个图文结合,再自己手绘一下单调栈的情况就能很快速的理解了~很有质量的一道题目了,难度应该评定低了…2000 分的题目。
2024-01-24 15:06:11 371
原创 [M枚举] lc2865. 美丽塔 I(枚举+前后缀分解+题单)
很明显的思路,肯定会有一个。的做法,故直接枚举就行了。这里看到数据量很小,支持。
2024-01-24 11:56:52 356
原创 [E哈希] lc2744. 最大字符串配对数目(读题+哈希表)
哈希直接做即可,不需要考虑字符串长度、限制之类的东西。字符串长度固定为 2,全是小写字符…充分暴露了读题能力的薄弱…
2024-01-17 16:07:44 377
原创 [M链表] lc82. 删除排序链表中的重复元素 II(单链表+好题+模拟)
这个题目与 83 题都很类似,一个是将重复元素全部删除,另一个是将重复元素至多保留一个。
2024-01-15 21:31:58 890
原创 【工作总结】1、生产环境发布事故&对于数据库升级转换的总结
工作中实际遇到的数据库升级转换的问题,提出个人的解决方案和想法,总结此类操作的要点,有一定参考价值。
2023-08-10 11:47:47 275
原创 [数学建模] [2019年A 模拟练习][层次分析法、熵值法、多目标优化、主成分分析法] 4. 深圳居民健康水平评估与测控模型研究
2019年深圳杯数学建模原题,校赛模拟,获得校赛一等奖。适合练手综合评价类问题,层次分析法、熵值法、多目标优化、主成分分析模板问题学习。
2023-07-20 15:22:21 562
原创 【GoLang】【工具分享】1、根据 JsonTag 对 slice 进行稳定排序(不支持嵌套)
golang 根据 JsonTag 进行切片排序
2023-07-04 12:07:05 514
算法题单-适用ACM、NOI、NOIP训练
2023-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人