
算法
文章平均质量分 69
严文文-Chris
这个作者很懒,什么都没留下…
展开
-
【时间复杂度计算】
时间复杂度用于衡量算法执行时间随数据规模增长的变化趋势,常用大O表示法描述。核心原则是忽略低阶项和常数项,关注最高阶复杂度。转载 2025-05-08 10:30:22 · 28 阅读 · 0 评论 -
详解0-1背包的状态转移表
通过构建这个状态转移表,我们可以清晰地看到每一步是如何基于之前的结果做出决策的。动态规划的核心在于利用子问题的解来构建更大问题的解,避免重复计算。在0-1背包问题中,状态转移表直观地展示了在不同物品选择和不同背包容量下的最优解。原创 2025-05-07 10:15:09 · 759 阅读 · 0 评论 -
0-1背包问题基础概念
每个物品只能选或不选(即“0-1”),求在不超过背包容量的前提下,所能获得的。,否则会重复使用同一物品,变成“完全背包”问题。(0 个物品时,无论容量多少,价值都是 0)个物品中选取若干个,放入容量为。⚠️ **注意:**必须倒序遍历。的背包中所能获得的最大价值。二维数组空间复杂度为。,可以用一维数组降为。原创 2025-05-05 16:24:55 · 168 阅读 · 0 评论 -
介绍分治、动态规划、回溯分别是什么?有什么联系和区别?给出对象的场景和java代码?
分治适合问题可以被拆解为若干独立子问题的情形;动态规划适合问题具有重叠子问题和最优子结构;回溯适合在解空间中试探性地寻找满足条件的所有解,适合搜索类问题。是否需要我帮你画一张图来对比这三种算法的流程结构?原创 2025-05-05 15:32:09 · 453 阅读 · 0 评论 -
【分治算法的分和治如何理解?如何判断使用分治算法解决问题?为什么分治可以提升算法效率,其底层逻辑是什么?】
问题解释「分」把大问题拆成小问题(结构清晰)「治」递归解决小问题,并合并结果适用条件子问题独立、可以合并提升效率的底层逻辑① 减少单次处理规模 ② 支持并行 ③ 快速递归到小规模分 → 小而易解;治 → 合而成解。小问题快,合并巧,大问题就迎刃而解!原创 2025-04-29 11:13:42 · 314 阅读 · 0 评论 -
分治和递归的区别?
递归是一种编程技巧:自己调用自己,解决问题。分治是一种算法思想:把大问题分成小问题分别解决,再合并。递归是形式,分治是思想。分治几乎靠递归来写,但递归不一定是分治。原创 2025-04-29 08:59:27 · 205 阅读 · 0 评论