经典算法
记录日常碰见的比较有意思的算法题
古城客栈
争取早日成为Java技术大佬
展开
-
二叉搜索树中的众数
二叉搜索树中的众数给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树例如:给定 BST [1,null,2,2],借鉴一位大佬代码:C语言解决代码:void find(struct TreeN...原创 2020-04-21 09:33:06 · 221 阅读 · 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 · 159 阅读 · 0 评论 -
深度优先搜索经典算法
记录下今天所学的深度优先搜索实例思想想必我们大概了解,还是要通过经典的例题来练习题目1:假如有编号为1 、2、3 的3 张扑克牌和编号为l 、2 、3 的3 个盒子。现在需要将这3 张扑克牌分别放到3 个盒子里面,并且每个盒子有且只能放一张扑克牌。那么一共有多少种不同的放法呢?/**全排列问题dfs 解决思路:1 2 31 3 2 //3先退出 2也退出 此时i=2 i++ ---> i=3 所以 3进入 再 2进入后面的一次类推 */#include <std原创 2020-05-14 15:59:26 · 233 阅读 · 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 · 208 阅读 · 0 评论