![](https://img-blog.csdnimg.cn/20200510150025109.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
经典算法
记录日常碰见的比较有意思的算法题
古城客栈
争取早日成为Java技术大佬
展开
-
二叉搜索树中的众数
二叉搜索树中的众数 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树 例如: 给定 BST [1,null,2,2], 借鉴一位大佬代码: C语言解决代码: void find(struct TreeN...原创 2020-04-21 09:33:06 · 210 阅读 · 0 评论 -
leetcode 404. 左叶子之和
计算给定二叉树的所有左叶子之和。 示例: 3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 题解: /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNo...原创 2020-04-18 11:03:15 · 152 阅读 · 0 评论 -
深度优先搜索经典算法
记录下今天所学的深度优先搜索实例 思想想必我们大概了解,还是要通过经典的例题来练习 题目1: 假如有编号为1 、2、3 的3 张扑克牌和编号为l 、2 、3 的3 个盒子。 现在需要将这3 张扑克牌分别放到3 个盒子里面,并且每个盒子有且只能放一张扑克牌。那么一共有多少种不同的放法呢? /** 全排列问题 dfs 解决思路: 1 2 3 1 3 2 //3先退出 2也退出 此时i=2 i++ ---> i=3 所以 3进入 再 2进入 后面的一次类推 */ #include <std原创 2020-05-14 15:59:26 · 221 阅读 · 0 评论 -
动态规划 经典问题
今天记录下自己所学的动态规划知识点 题目1: 有三枚硬币 2,5,7 拼成27元 最少需要几枚硬币 我自己理解的动态规划实操三部曲 第一曲:开辟数组 第二曲:定义初始条件 第三曲:循环操作 以及状态方程定义 /** 我的第一个动态规划程序 题目信息: 有三枚硬币 2,5,7 拼成27元 最少需要几枚硬币 看到最少:一般用动态规划求解 1.初始条件:f[0]=0; 2.转移方程 f[27]=min{f[27-2]+1,f[27-5]+1,f[27-7]+1} */ #include &原创 2020-05-13 10:12:46 · 197 阅读 · 0 评论