- 博客(15)
- 问答 (1)
- 收藏
- 关注
原创 力扣热题之技巧
本文总结了几个常见算法题的解法:1.找只出现一次的数字,可用集合或异或操作;2.找多数元素,用哈希表统计频率;3.颜色分类问题采用荷兰国旗算法;4.下一个排列通过找升序位置并交换反转;5.找重复数的快慢指针法类似环形链表问题。作者强调需要背诵经典算法模板,并对巧妙解法表示赞叹。
2025-08-23 19:25:20
378
原创 力扣热题之多维动态规划
本文分享了五个动态规划问题的解题思路与代码实现:1)不同路径数计算;2)矩阵最小路径和;3)最长回文子串;4)最长公共子序列;5)字符串编辑距离。作者通过二维DP数组实现状态转移,处理边界条件,并记录了从不会到理解的学习过程。特别在编辑距离问题上经历从困惑到理解的心路历程,最终通过分析不同操作(插入、删除、替换)的成本关系找到解法。所有解法都采用自底向上的动态规划方法,展现了算法能力的进步。
2025-08-23 17:32:35
201
原创 力扣热题之动态规划
本文总结了10道动态规划经典算法题解,包括爬楼梯、杨辉三角、打家劫舍等基础问题。作者在解题过程中遇到的主要问题包括:初始化错误(如杨辉三角)、语法错误(如完全平方数题目中多余的分号)、边界条件处理等。解题技巧方面,文章展示了如何通过动态规划解决01背包问题(分割等和子集)、利用双DP数组处理乘积最大子数组问题、使用栈优化最长有效括号问题的解法等。每个解法都附有代码实现和关键思路说明,体现了动态规划在不同场景下的灵活应用和优化技巧。
2025-08-23 16:04:37
180
原创 力扣热题之贪心算法
本文总结了几个典型贪心算法问题的解法:1) 股票买卖问题通过计算相邻价格差并使用动态规划求最大收益;2) 跳跃游戏问题通过维护最远可达距离来判断可行性;3) 跳跃游戏II采用动态规划或贪心算法计算最小跳跃次数;4) 字母区间划分利用字符最后出现位置来确定分割点。这些解法都体现了贪心算法的核心思想:在每一步选择当前最优解,从而达到全局最优效果。其中跳跃游戏和字母区间划分问题展示了如何通过维护关键变量(如最远可达位置)来简化问题复杂度。
2025-08-22 21:56:48
302
原创 力扣热题之堆
本文简要介绍了使用堆结构解决数组中第k个最大元素问题的方法。作者提到自己较少使用堆,但通过示例代码展示了如何分别用最大堆和最小堆实现该功能:使用priority_queue默认构造最大堆,或使用greater<int>比较器构造最小堆。当维护一个大小为k的最小堆时,堆顶元素即为所求。最后作者表示堆结构在实际考试中出现频率较低。全文约120字。
2025-08-22 16:54:54
118
原创 力扣热题之stack
本文总结了五道栈相关的经典算法题解:1.有效的括号使用栈匹配括号对;2.最小栈的两种实现方式(数组辅助/双栈);3.字符串解码利用栈处理嵌套结构;4.每日温度通过栈计算温度间隔;5.柱状图最大矩形采用单调栈求面积。各解法均包含关键实现细节,如边界处理、哨兵技巧和栈的灵活运用,展示了栈结构在算法中的典型应用模式。
2025-08-22 16:24:16
331
原创 力扣热题之二分查找
这篇文章总结了六个常见的二分查找算法问题及其解法:1.搜索插入位置通过二分查找确定目标值应插入的索引;2.搜索二维矩阵采用Z字形查找策略;3.查找元素在排序数组中的起始和结束位置;4.搜索旋转排序数组通过判断有序区间来定位目标;5.寻找旋转数组中的最小值;6.寻找两个正序数组的中位数转化为寻找第k小元素问题。每种解法都利用二分查找思想,通过调整左右指针不断缩小搜索范围,其中包含处理边界条件和特殊情况的技巧。
2025-08-22 09:45:42
359
原创 力扣热题之回溯
本文总结了回溯算法的核心知识点和力扣真题解法。回溯三部曲包括:1)确定函数参数(排列用used数组,组合用startIndex);2)终止条件(path大小等于nums大小);3)单层递归逻辑(组合从下节点开始,排列从头开始)。通过9道真题(全排列、子集、IP地址复原、电话号码组合、组合总和、括号生成、单词搜索、分割回文串、N皇后问题),详细分析了回溯实现中的关键点:参数传递、结果收集、状态恢复、剪枝条件等。特别强调排列与组合的区别、索引控制、路径回溯等易错点,并建议通过重复练习加深理解。
2025-08-14 13:43:44
268
原创 力扣热题之图论
本文介绍了四个经典算法问题的解决方案:1) 岛屿数量问题使用深度优先搜索(DFS)感染标记法;2) 腐烂橘子问题通过暴力模拟感染过程;3) 课程表问题采用拓扑排序检测环;4) 前缀树(Trie)数据结构的实现。其中,岛屿问题通过递归DFS统计连通区域;腐烂橘子问题使用分层感染策略;课程表问题利用状态标记法检测环;前缀树则通过节点指针实现高效的字符串存储与查询。这些算法涵盖了DFS、模拟、拓扑排序和数据结构等核心编程概念,解题思路值得记忆和应用。
2025-08-08 12:34:42
296
原创 力扣热题之二叉树
这里注意看,我定义叶节点的深度是1,而直径是要算边数。简单题,,我还不会,,看到“平衡”直接懵b了。也许用mid二分会平衡,但我没有证据,但还是写一下。暴力解法也挺好,击败50%,注意currentSum要用long long,不然会溢出。感觉跟求最大直径一样,这里再求只取正数,还有更新ans的逻辑与返回的逻辑是不一样的。(1)自己整的 击败5%,,,注意算完当前节点的g,还要写左右子节点的g奥。判断对称的那个函数,是要两个参数的。ruc笔试真题,,,这个我还是硬背一遍,尝试过拟合加深理解,,
2025-08-07 22:49:12
482
原创 力扣热题之链表
本文总结了链表相关的常见算法题解,包括:1. 相交链表(先对齐长度再同步遍历);2. 反转链表(三指针法);3. 回文链表(快慢指针找中点+后半段反转);4. 环形链表(快慢指针判环);5. 合并有序链表(双指针归并);6. 两数相加(模拟竖式计算);7. K个一组翻转(递归/迭代实现);8. 随机链表复制(节点穿插法);9. 排序链表(归并排序);10. LRU缓存(哈希表+双向链表)。重点分析了快慢指针、虚拟头节点、递归分治等核心技巧,并强调了边界条件处理的重要性。
2025-08-05 22:10:26
960
原创 力扣热题之矩阵
本文总结了四种矩阵操作的解法:1)矩阵置零通过行列标记数组实现O(M+N)空间;2)螺旋矩阵通过维护四个边界变量处理开闭区间;3)旋转图像提供了三种方法,包括借助螺旋顺序、使用额外数组和对称交换的巧妙方法;4)二维矩阵搜索采用Z字形搜索策略。每种解法都配有代码实现,其中旋转图像部分特别展示了三种不同时间/空间复杂度的实现方式。这些算法涉及矩阵遍历、边界处理和空间优化等关键技巧,是解决矩阵类问题的典型范例。
2025-08-03 23:19:05
190
原创 LeetCode热题之普通数组
摘要:本文整理了5个经典算法题的解法:1.最大子数组和的动态规划和分治法;2.合并区间利用排序和双指针;3.轮转数组通过三次反转实现高效旋转;4.除自身外数组乘积使用前缀后缀积优化空间;5.缺失正数利用原地哈希和索引排序。每个解法都包含关键思路说明和代码实现,涉及动态规划、分治、双指针、原地算法等典型技巧。
2025-08-02 19:36:14
173
原创 力扣热题day2【滑动窗口+字串】
本文总结了几道经典算法题的解题思路和优化方法。1. 接雨水问题:提出两种解法,面积相减法和双指针法,后者通过一次遍历实现更优解;2. 无重复字符的最长子串:使用滑动窗口和哈希集合实现;3. 字符串异位词查找:比较了排序法(低效)和字符频率统计法(高效);4. 和为K的子数组:利用前缀和与哈希表优化;5. 滑动窗口最大值:展示了单调队列的高效实现;6. 最小覆盖子串:结合滑动窗口和字符频率统计。文章着重分析了算法优化的关键点,如避免重复计算、合理选择数据结构等,展示了不同解法的性能差异。
2025-08-01 22:20:51
160
原创 力扣热题day1【哈希+双指针】
这个最开始没想出来,对stl使用不熟练,应该用一个unordered_map<string,vector<string>>,前面的先sort一下,然后取出来的时候用one.second。我用的是类似于那个买卖股票的,注意ans的更新时机,temp每一变就要更新一下ans。想不出来,然后一看“排序+双指针”,这不就是两数之和的化简版吗.一个是左边的,还有一个是中间两个。一开始错误用了sort,想双指针来着,发现要的是index。解法二:双指针,谁拖后腿就往中间动,优先移动短板指针。
2025-07-20 22:38:02
196
空空如也
深度学习复现代码准确率为0
2024-07-16
请问大家为什么云服务器无输出了呢就是感觉一直卡住了(相关搜索:深度学习)
2024-07-13
请问moco代码复现的具体流程是什么呢(关键词-main)
2024-07-06
面向对象设计模式实例
2024-06-26
面向对象开发技术设计模式的选择
2024-06-26
数据库事务并发操作的串行化
2024-06-24
贪心算法解决纸牌均分
2024-06-11
Floyd-Warshall算法
2024-06-11
请问算法的复杂度为O(n²)与问题的复杂度为O(n²)的区别是什么
2024-06-10
最短路径定理与性质的相关应用
2024-06-09
如何使用贪心算法求解最小击中集
2024-06-09
(标签-算法|关键词-Dijkstra算法)(相关搜索:伪代码|时间复杂度)
2024-06-06
Qt+minGW初始构建
2024-01-31
pta非零返回,输出所有大于平均数的值
2022-10-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅