07 2021 档案
摘要:一、算法理解 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅是在某种意义上的局部最优解。也就是说在每一步中,选择目前最优的策略,而不考虑全局是不是最优的。 贪心算法的前提: 1、 原问题复杂度过高 2、 求全局最优解的数学模型难以建立
阅读全文
摘要:一、算法理解 【基本概念】: 动态规划(dynamic programming),就是对原问题分解,分解成子问题,通过解决子问题从而解决原问题。动 态规划应用于 子问题重叠的情况(分而治之方法子问题独立不相交),即 不同子问题具有公共的子问题 。动态规 划通过对子子问题的求解然后保存求解结果,从而无
阅读全文
摘要:参考:https://blog.csdn.net/qq_38737992/article/details/95635940 一、算法理解 深度优先搜索算法(Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节 点,尽可能深的搜索树的分支。当节点v的所
阅读全文
摘要:一、算法理解 广度优先搜索算法(Breadth-First-Search,BFS),又称宽度优先搜索。作为最简便的图的搜索算法之一,是很多重要图算法的基本原型,如Dijkstra最短路径算法和Prime最小生成树算法。其核心思想是: 从初始节点开始,应 用产生式规则生成第一层节点,检查目标节点是否在
阅读全文
摘要:一、算法理解 前缀和概念: 前缀和可以推导出两个变换公式: 两个变换公式: (1)nums[某一项] = 两个相邻前缀和之差:nums[x] = prefixSum[x] - prefixSum[x - 1] (2)从left 到 right的元素和等于 prefixSum[right+1] – p
阅读全文
摘要:#一、算法理解 差分,是一种和前缀和相对的策略。 如果有一数列 a[1],a[2],.…a[n] 且令 b[i]=a[i]-a[i-1], b[1]=a[1] 那么就有: a[i] = b[1]+b[2]+.…+b[i] = a[1]+a[2]-a[1]+a[3]-a[2]+.…+a[i]-a[i-
阅读全文
摘要:一、算法理解 并查集:给定一组元素,及其元素之间的关系,把存在直接、间接关系的元素组成一个集合。常用于解决如下类的问题: (1)存在几个集合? (2)最大集合容积? (3)判断A、B是否在一个集合内? 样例场景【朋友圈】:一个班级有56名学生,存在直接好友关系(A、B是好友关系)、间接好友关系(A、
阅读全文
摘要:1.【算法】单调栈 参考:https://blog.csdn.net/lucky52529/article/details/89155694 一、算法理解 单调栈是一种理解起来很容易,但是运用起来并不那么简单的数据结构。 单调栈,就是一个堆栈,里面的元素的按照大小在栈中满足一定的单调性。也就说是,就
阅读全文

浙公网安备 33010602011771号