
02_基础算法
文章平均质量分 75
算法基础
狂点engineer
测试开发工程师,质量保障、效率提升~
展开
-
【基础算法】贪心法总结
贪心法:遵循某种规律,不断贪心选取当前最优策略的算法设计。 1、分糖果 LC455 题目:一些孩子和糖果,孩子有需求因子g,糖果有大小s,s>=g时表示糖果可以满足孩子。假设g=[5,10,2,9,15,9],s=[6,1,2,10,3,8],求糖果可以满足多少孩子? 分析:先排序,对需求和糖果的大小进行排序,g=[2,5,9,9,10,15],s=[1,3,6,8,20]。 ①某个糖果不能满足某个孩子,则糖果无法满足需求因子更大的孩子。 ②可以用更小的糖果满足时,没必要用更大的糖果,保留大原创 2021-07-20 22:56:16 · 188 阅读 · 0 评论 -
【基础算法】二叉树
二叉树的重点内容就是遍历。前序、中序、后序遍历的区别在于操作处理的先后。 1、路净总和IIlc113 问题:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 分析:遍历递归+栈 遍历到叶子节点,保存路径的结点值(栈的思想,可以用LinkedList),返回结果用双重List。 判断的条件为①叶子结点,即left和right都为null,②sum值为目标值。 边界:返回的过程只有左结点或者右结点时,递归处理过程的判空。 进栈—>访问操作—>左.原创 2021-07-20 22:52:56 · 103 阅读 · 0 评论 -
【基础算法】动态规划总结
动态规划:Dynamic programming,DP 枚举不理想的情况考虑采用动态规划。 ①原问题与子问题、②动态规划的状态、③边界状态结值、④状态转移方程。 1、爬楼梯 lc70 2、打家劫舍 lc198 3、最大字段和 lc53 4、找零钱 lc322 1、爬楼梯 lc70 题目:向上走1阶楼梯或者2阶楼梯,n阶楼梯有几种爬楼方式。 算法:动态规划,斐波那契数列 分析:每次只能上1或者2步,第 i 阶楼梯的爬法为 i-1 和 i-2的和。 代码 dp[1] = 1...原创 2020-07-03 22:05:26 · 250 阅读 · 0 评论