- 博客(3)
- 收藏
- 关注
原创 寻找二叉树中每个结点的根结点(递归算法)
笔者查阅了网上关于二叉树寻找根结点的算法,众说纷纭,有:在节点结构体中加一条指向父节点的指针;非递归遍历树的方式寻找父节点;直接利用树的递归遍历,打印输出父节点…… 笔者认为添加父节点指针的方法,不能很好地体现树的逻辑结构。树的结构体(特指二叉树的存储结构)已经很成熟而且近乎约定俗成了,再重新添加一个指针,很多关于二叉树的基本操作都要重新变化,实在繁琐。所以本文直接利用树的递归遍历方式寻找树的根...
2018-03-01 17:21:50
6437
原创 蓝桥杯 算法训练 K好数(DP C++)
【思路分析】 题目的意思是,求2位四进制数(只有0 1 2 3这四个数字)中,K好数的个数是多少。 状态:定义DP数组,DP[i][j]表示共i位数且结尾数字是j的K好数的个数。 当i=1时,也就是数字位数是1时,所有的数字都是K好数,因为没有数字相邻的情况。但是因为开头数字是j,所以要注意第一个数字不能是0,所以赋值时从1开始,最大为k-1。 状态转移方程:dp[i][
2018-02-07 20:58:17
837
原创 关于dp01背包问题的几点理解(二维数组,java实现)
01背包问题:给定N种物品和一个背包。物品i的重量是weight[i],其价值value[i] (i<=N),背包的容量为M。问应该如何选择装入背包的物品,使得装入背包的物品的总价值为最大?在选择物品的时候,对每种物品i只有两种选择,即装入背包或不装入背包。不能将物品i装入多次,也不能只装入物品的一部分。因此,该问题被称为0-1背包问题。
2017-03-10 21:17:56
1329
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人