刷题杂项
文章平均质量分 91
主要是一些解题思路和旁支知识
我爱学习yyds
欢迎学习交流C,C++,数据结构,Python,Linux,共同进步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 日志类设计
这篇文章介绍了一个简洁实用的C++日志工具实现方案。核心设计采用单例模式确保全局唯一实例,通过重载operator()实现优雅调用方式如log(INFO,"message")。关键特性包括自动时间戳、多级别日志(INFO/DEBUG/WARNING等)、同时支持控制台和文件输出。实现上仅使用标准库,轻量无依赖,包含可变参数处理、时间格式化和文件写入等实用功能。调用示例展示了不同级别日志的输出效果,格式统一美观。这个日志类代码精简但功能完整,非常适合嵌入各类C++项目中作为基础工具使用,尤原创 2026-04-14 23:19:23 · 18515 阅读 · 8 评论 -
双指针算法 (完)
本文系统梳理了数组求和类问题的解题思路,从两数之和的基础解法出发,逐步扩展到三数、四数之和的进阶技巧,最终提炼出N数之和的通用框架。通过分析暴力枚举、哈希表优化和双指针降维三种方法的技术演进,重点阐述了排序预处理、多层去重和递归降维等核心思想。文章不仅提供了各问题的标准解法代码,还深入剖析了数值溢出、剪枝优化等关键细节,帮助读者建立从具体问题到通用模式的解题思维,掌握处理数组组合类问题的系统性方法。原创 2026-02-25 14:30:12 · 10371 阅读 · 3 评论 -
基于 Coze 工作流搭建 AI 动物视频生成器
本文介绍了一个基于AIGC技术的动物视频生成器开发方案。该工具通过Flask框架和Coze工作流,实现了从文字描述到视频内容的快速转换。系统采用轻量级技术栈,包含前后端交互设计、状态管理和异常处理等功能模块。文章详细阐述了项目背景、技术选型、核心架构及关键代码实现,并提供了本地运行和线上部署指南。该方案特别适合科普、教育等场景,让用户无需专业技能即可生成高质量动物视频。最后还探讨了视频质量配置、下载功能等扩展方向,展示了AIGC轻量化应用的开发思路。原创 2026-02-03 10:30:11 · 1366 阅读 · 3 评论 -
基于 Coze 工作流搭建历史主题图片生成器
本文介绍了如何利用低代码平台与Python Web框架快速开发一款AI图片生成Web应用。以历史主题图片生成器为例,详细讲解了从技术选型到部署的全流程:1. 采用Flask框架+Coze工作流的轻量化组合,实现前后端一体化开发;2. 后端通过Python SDK对接Coze平台,完成图片生成接口开发;3. 前端采用原生技术实现全流程交互,包含输入校验、状态管理、历史记录等功能;4. 通过环境变量管理敏感配置,确保安全性和可移植性。文章重点分析了核心架构设计、关键代码实现和用户体验优化技巧,为开发者提供了快速原创 2026-02-03 10:18:22 · 1822 阅读 · 4 评论 -
双指针算法 (二)
本文系统讲解双指针算法,通过三道典型例题展示其应用:1)"盛最多水的容器"使用相向双指针,在O(n)时间内通过贪心策略求解;2)"有效三角形的个数"采用排序+双指针,将O(n³)优化为O(n²);3)"和为s的两个数字"利用有序性实现O(n)查找。文章指出双指针适用于有序数组、链表等问题,其本质是通过指针移动减少冗余计算,并总结了不同问题的指针类型和核心思想,强调多总结思考才能掌握算法精髓。原创 2026-02-03 09:42:06 · 21648 阅读 · 2 评论 -
双指针算法(一)
本文总结了「移动零」「复写零」「快乐数」三道算法题的解题思路,均采用双指针技巧实现高效解。移动零通过同向双指针交换元素保证非零顺序;复写零通过两次遍历避免元素覆盖;快乐数利用快慢指针检测循环。三题展示了双指针在不同场景的灵活应用,强调逆向思维和空间优化的重要性,体现了算法学习的触类旁通。(149字)原创 2026-02-02 17:42:44 · 21638 阅读 · 1 评论 -
打造AI智能”成语接龙“游戏
本文介绍了一个基于Flask+CozeAI开发的智能成语接龙游戏系统。系统采用三层架构设计:后端服务层处理游戏逻辑和API接口,AI交互层负责成语生成与验证,前端交互层优化用户体验。关键技术包括AI异步响应处理、跨域请求解决方案、敏感配置管理和多层容错机制。系统实现了成语接龙核心功能,并支持游戏状态管理、历史记录展示等功能。文章还探讨了性能优化、功能扩展方向,总结了轻量化AI集成和容错设计的重要性。该项目展示了传统文化与现代AI技术的创新结合,为开发者提供了快速上手的实现指南。原创 2026-01-30 09:51:23 · 1124 阅读 · 6 评论 -
搭建 AI 聊天机器人:”我的人生我做主“
本文介绍了一个基于Flask框架和CozeAI平台的轻量级AI聊天机器人开发项目。项目采用前后端一体化架构,包含4个核心文件:后端代码(app.py)、前端页面(index.html)、环境配置(.env)和依赖清单(requirements.txt)。后端实现了CozeAI交互封装、会话状态管理和API接口,前端使用原生HTML/CSS/JavaScript构建了响应式聊天界面。文章详细解析了代码结构、实现原理和运行步骤,包括环境配置、会话保持机制、前后端通信方式等关键技术点,并提供了代码优化建议。该项目原创 2026-01-30 09:35:05 · 1428 阅读 · 2 评论 -
力扣刷题之路
本文通过三道算法题探讨了从暴力解法到优化思路的跃迁过程。967题展示了如何通过DFS回溯减少无效计算;48题利用两次翻转替代旋转实现原地矩阵变换;382题采用蓄水池抽样算法解决大数据随机选择问题。文章强调算法思维的核心在于透过表象发现本质规律,从"暴力AC"转向追求更优解,如减少无效计算、降低空间复杂度或适应大数据场景。这种思维训练才是刷题的核心价值,能够帮助开发者面对复杂问题时找到更本质的解题路径。原创 2026-01-16 16:39:53 · 1117 阅读 · 19 评论 -
力扣刷题之路
本文通过三道经典算法题(岛屿面积、反转链表、分发糖果)剖析算法思维的进阶路径。在岛屿问题中,采用DFS"淹没式"遍历实现空间优化;反转链表问题展示了递归"后序思维"相较于迭代的优势;分发糖果问题则通过两次贪心遍历拆分约束条件。算法的"深度"体现在空间优化(原地修改代替额外存储)、思维转换(递归代替迭代)和约束拆分(两次遍历满足不同条件)三个方面,而非单纯追求代码复杂度。这些案例揭示了高效算法设计的核心在于思路的迭代优化。原创 2026-01-16 12:19:12 · 22103 阅读 · 11 评论 -
每日一题(一)
本文分享了5道LeetCode中等难度高频面试题的解法与核心思路:1)轮转数组的三次反转法;2)跳跃游戏的贪心算法;3)除自身外数组乘积的左右前缀积法;4)环形链表入环点的快慢指针法;5)字符串匹配的KMP算法。这些题目考察数组操作、链表遍历、字符串匹配等常见算法,通过典型解法如反转、贪心、双指针等技巧,可以在O(n)时间复杂度内高效解决问题,是面试必备的算法基础。原创 2025-12-12 23:03:21 · 849 阅读 · 13 评论 -
热题100-95
本文介绍了字符串处理中的经典问题——编辑距离,通过动态规划方法求解将一个字符串转换成另一个字符串所需的最少操作次数(插入、删除或替换)。文章详细阐述了状态定义、初始状态和状态转移方程,当字符相等时继承前状态,不等时取三种操作的最小值。给出了C++代码实现,分析时间复杂度为O(n×m),空间复杂度为O(n×m),并通过示例验证了算法正确性。该方法逻辑清晰,能高效处理字符串转换问题。原创 2025-11-19 15:40:59 · 352 阅读 · 0 评论 -
数独系列算法
本文探讨了数独问题的两种核心算法:验证数独有效性和求解数独。验证数独有效性采用哈希表技术,通过三个数组记录行、列和3×3子网格的数字分布,实现O(1)时间复杂度的快速验证。解数独则运用回溯算法,在满足数独规则的前提下尝试填充数字,通过DFS递归和剪枝策略有效降低复杂度。两种算法分别体现了约束验证和搜索优化的经典思想,其方法论可推广至八皇后等约束满足问题。文章详细解析了两种算法的实现逻辑、复杂度分析和应用场景差异,为处理类似问题提供了算法范式。原创 2025-11-02 16:38:16 · 1275 阅读 · 10 评论 -
动态规划实战
摘要:本文通过分析LeetCode五道经典动态规划题目,系统阐述了动态规划的核心思想和解题方法。以二叉搜索树计数、组合总和、盈利计划等问题为例,详细讲解了状态定义、转移方程推导和遍历顺序选择等关键步骤。文章指出动态规划的本质在于将复杂问题分解为重叠子问题,通过多维状态转移实现高效求解。针对不同问题类型(如排列/组合、01背包/完全背包),文章对比了遍历顺序的差异,并总结了动态规划的四步解题方法论:明确状态、推导方程、确定顺序、处理初始条件。原创 2025-09-29 22:12:30 · 951 阅读 · 5 评论 -
解析01背包
本文介绍了01背包问题的动态规划解法。首先定义二维状态dp[i][j]表示前i个物品在容量j时的最大重量。通过状态转移方程,比较选与不选当前物品的情况,实现基础解法。随后提出空间优化方案,利用逆序遍历将二维数组压缩为一维数组,降低空间复杂度至O(V)。文章通过示例验证解法正确性,并强调该优化方法适用于各类01背包变种问题。核心思路是动态规划的状态定义和转移过程,通过二维到一维的优化实现高效求解。原创 2025-09-25 19:13:27 · 1112 阅读 · 7 评论 -
经典字符串与数组题目
本文总结了LeetCode中8道经典字符串与数组题目,重点分析了动态规划的应用解法。包括718最长重复子数组(二维DP)、712最小ASCII删除和(状态转移)、97交错字符串(布尔DP)、10正则表达式匹配(复杂条件处理)、7整数反转(溢出处理)、8字符串转整数(边界判断)、44通配符匹配(星号处理)和115不同子序列(计数DP)。每道题都提供了清晰的解题思路和C++代码实现,展示了如何通过DP数组定义和状态转移方程解决字符串匹配、子序列等核心问题。这些题目涵盖了字符串处理中的典型场景和常见陷阱,是提升算原创 2025-09-24 22:05:08 · 648 阅读 · 9 评论 -
动态规划-详解回文串系列问题
本文总结了回文字符串问题的五种常见变体及其动态规划解法:1. 最长回文子串(LeetCode5):通过dp[i][j]记录子串是否为回文,并跟踪最长回文;2. 回文子串计数(LeetCode647):类似方法统计所有回文子串数量;3. 分割回文串(LeetCode1745/132):先预处理回文信息,再枚举分割点或计算最少分割次数;4. 最长回文子序列(LeetCode516):处理不连续子序列的最长回文;5. 最少插入次数(LeetCode1312):通过动态规划计算使字符串成为回文的最少插入操作。所有问原创 2025-09-17 19:43:48 · 1762 阅读 · 13 评论 -
动态规划解决系列子序列问题
这些子序列问题都可以通过动态规划来解决,核心是找到合适的状态定义以及状态转移方程。不同的问题根据其特定的条件,状态定义和转移方式有所不同,但整体思路都是利用动态规划来记录子问题的解,从而推导出原问题的解。通过这些问题的练习,可以更好地掌握动态规划在子序列问题中的应用。原创 2025-09-16 15:57:23 · 907 阅读 · 11 评论 -
动态规划算法经典问题
本文探讨了动态规划在多个经典问题中的应用,包括按摩师问题、打家劫舍II、删除并获得点数、粉刷房子以及股票买卖系列问题。通过定义状态和状态转移方程,将复杂问题分解为子问题进行求解。不同问题采用不同的动态规划策略:按摩师和打家劫舍使用相邻元素选择限制的解法;股票买卖问题则根据交易次数、冷冻期等约束设计状态转移。这些案例展示了动态规划在解决最优化问题中的强大能力,关键在于准确建模问题并设计合适的转移方程。原创 2025-09-14 17:16:15 · 1480 阅读 · 6 评论 -
动态规划解决网格路径问题
本文介绍了动态规划在网格路径类问题中的典型应用,包括五个经典例题:不同路径、带障碍物的不同路径、下降路径最小和、最小路径和以及地下城游戏。文章详细阐述了每个问题的状态定义、转移方程和初始化方法,并提供了相应的代码实现。核心要点在于合理定义状态、建立正确的转移方程以及正确处理边界条件。通过分析这些经典题目,读者可以掌握动态规划解决网格路径问题的基本思路和方法,为解决更复杂的算法问题奠定基础。原创 2025-09-13 14:51:18 · 1309 阅读 · 7 评论 -
经典动态规划题解
本文通过四道经典动态规划题目解析核心解题思路:1. 泰波那契数(空间优化迭代法);2. 最小花费爬楼梯(状态转移与边界处理);3. 三步问题(大数取模技巧);4. 解码方法(字符串分情况处理)。提炼出DP通用五步法:定义状态→推导递推式→处理边界→空间优化→规避特殊情况,并重点提示零值处理、下标映射、数值溢出等易错点,为动态规划入门提供清晰路径。原创 2025-09-12 14:14:13 · 1241 阅读 · 8 评论 -
从拓扑排序看有向图的应用
本文探讨了拓扑排序在图论中的应用,重点分析了两类典型问题:外星文字典排序和课程表安排。在外星文字典问题中,通过比较单词构建字符间的有向图,利用拓扑排序确定字母顺序;在课程表问题中,则根据课程先修关系构建有向图,通过拓扑排序检测是否存在环并确定课程学习顺序。两个案例都展示了拓扑排序在解决有向无环图顺序问题上的有效性,其核心是不断处理入度为0的节点,最终判断是否存在环并得到有效序列。原创 2025-09-11 14:58:26 · 395 阅读 · 5 评论 -
一文吃透网格问题:从多源BFS到DFS的实战应用
网格类题目本质是“遍历与状态标记”的结合:- 若需从多起点扩散求距离,优先用多源BFS,利用层序特性保证效率与正确性;- 若需标记连通区域(尤其是边界相关区域),优先用DFS,代码简洁且易实现。掌握这两类算法的核心逻辑后,大部分网格题都能迎刃而解,关键在于明确“起点是什么”“需要标记/计算什么”。原创 2025-09-10 14:17:43 · 1056 阅读 · 5 评论 -
BFS在路径搜索中的应用
本文通过分析LeetCode四道典型BFS题目(675.高尔夫砍树、127.单词接龙、433.最小基因变化、1926.迷宫出口),总结BFS解决最短路径问题的通用框架:1)初始化队列和访问标记;2)按层遍历节点;3)生成合法下一层节点;4)遇到目标即返回步数。不同场景只需调整节点定义(如单词/基因/格子)和合法性判断(如变换规则/移动方向),核心BFS层遍历逻辑可复用。该框架适用于各类"最短路径/可达性"问题,关键在于将问题抽象为节点和边的图结构。原创 2025-09-09 16:00:54 · 835 阅读 · 8 评论 -
栈相关算法题解题思路与代码实现分享
通过这两道栈相关的算法题,我们可以看到栈在解决这类数据顺序相关问题时的巧妙应用。在实际解题过程中,关键是要理解栈的特性,并灵活运用辅助栈等技巧来满足题目要求。希望这些分享能对大家在算法学习和面试准备中有所帮助,也欢迎大家一起交流探讨更优的解题思路。原创 2025-04-26 18:25:02 · 1036 阅读 · 24 评论 -
优先搜索(DFS)实战
本文介绍了深度优先搜索(DFS)在解决矩阵连通性问题中的通用方法,并通过LeetCode四道典型题目(130.被围绕的区域、200.岛屿数量、695.岛屿最大面积、733.图像渲染)进行具体解析。文章提炼出DFS处理矩阵问题的四步框架:边界判断、条件筛选、执行操作和递归遍历,并指出各题差异仅在于条件和操作的具体实现。最后总结出"矩阵DFS万能模板",强调通过修改条件和操作即可适配不同需求,实现"一题通,题题通"的效果。全文以实际代码示例展示如何将理论框架转化为具体解题原创 2025-09-08 14:39:45 · 1277 阅读 · 6 评论 -
排序算法实战(上)
本文分享了两道经典排序算法题的解法。912题采用快速排序,通过随机选取基准值优化时间复杂度至O(nlogn)。75题使用三指针法,通过一次遍历将0、1、2分类排序,实现O(n)时间复杂度和O(1)空间复杂度。两个解法都避免了使用内置排序函数,针对不同特点的题目选择了最优算法,体现了排序算法的灵活应用,对提升算法能力很有帮助。原创 2025-07-15 20:26:59 · 524 阅读 · 5 评论 -
位运算经典题解
本文解析了LeetCode三道位运算经典题目:位1的个数(191题)通过n&(n-1)技巧消除最右位1并计数;汉明距离(461题)利用异或后统计1的个数;比特位计数(338题)批量计算数字二进制中1的数量。这些题目都运用了n&(n-1)的核心技巧,展示了位运算在解决二进制统计问题中的高效性和灵活性,帮助读者掌握处理类似问题的通用方法。原创 2025-07-01 16:34:10 · 987 阅读 · 8 评论 -
前缀和 + 哈希表
本文介绍了利用前缀和与哈希表解决子数组相关问题的通用方法。通过分析力扣525、974、560三道题目,总结出解题步骤:1)将问题转化为前缀和条件判断;2)初始化哈希表(常需处理前缀和为0的情况);3)遍历计算前缀和,记录哈希表;4)利用哈希表快速查找满足条件的子数组。该方法将O(n²)复杂度优化至O(n),适用于求和、求余等各类子数组问题。掌握这一思路能有效提升算法解题效率,建议通过练习加深理解。原创 2025-06-28 21:24:54 · 1270 阅读 · 6 评论 -
python基础
本文介绍了Python基础语法要点:1.变量无需声明类型,整数大小不受限;2.字符串可用单/双引号,支持相加合并;3.注释包括行注释(#)和块注释("""...""");4.格式化字符串用f前缀;5.input()返回字符串需转换;6.算术运算符包含//(向下取整);7.逻辑运算符为and/or/not;8.支持多元赋值;9.条件语句用if-elif-else结构,空语句需加pass。还提到type()查看类型、len()获取字符串长度等实用功能。原创 2025-06-26 00:08:05 · 600 阅读 · 7 评论
分享