- 博客(4)
- 收藏
- 关注
原创 java实现二叉搜索树的各种操作
BST1.二叉树的特性1.对于一个二叉树的节点来说,它的值大于它的左子树所有节点的值,小于它的右子树所有节点的值;2.二叉搜索树的中序遍历是有序集合。2.对二叉搜索树的操作1.查找:1)采用递归的方式从根节点查找,小于往左,大于往右TreeNode BSTsearch(TreeNode root, int val){if(root == null) return null;if(root.val < val) return BSTsearch(root.left);if(root.
2020-05-23 16:46:05
154
原创 LRU算法简析
LRU算法介绍1.LRU算法1.一种缓存删除算法机制(采用算法删除缓存中多余或低概率会访问的部分)2.Least Recently Used (最近使用策略,即算法认为最近使用的内容再次访问的概率大,距离使用的时间越长,访问的概率越大,算法优先删除最长时间未使用的缓存)3.将缓存区域看做一个有一定容量的双端队列,当一个缓存被使用时就被放在队首位,一个新加的数据也被放到队首,当缓存满了之后,再加入数据时,将从队尾删除数据->23456789->2.使用数
2020-05-22 21:06:24
454
原创 Java使用动态规划解决博弈问题
动态规划解决博弈问题石头游戏:你和你的朋友⾯前有⼀排⽯头堆,⽤⼀个数组 piles 表⽰,piles[i] 表⽰第 i 堆⽯⼦有多少个。你们轮流拿⽯头,⼀次拿⼀堆,但是只能拿⾛最左边或者 最右边的⽯头堆。所有⽯头被拿完后,谁拥有的⽯头多,谁获胜。 ⽯头的堆数可以是任意正整数,⽯头的总数也可以是任意正整数,这样就能 打破先⼿必胜的局⾯了。⽐如有三堆⽯头 piles = [1,100, 3] ,先⼿不管 拿 1 还是 3,能够决定胜负的 100 都会被后⼿拿⾛,后⼿会获胜。 假设两⼈都很聪明,请你设计⼀个
2020-05-22 16:37:51
237
原创 套路---动态规划----解决背包问题
经典动态规划问题给你⼀个可装载重量为W 的背包和 N 个物品,每个物品有重量和价值两 个属性。其中第i 个物品的重量为wt[i],价值为 val[i] ,现在让你⽤ 这个背包装物品,最多能装的价值是多少?1.明确背包问题的实质:1)第一个想法是使用贪婪法,每次取价值最高的那个,但是这种办法并不一定能够得到最优,例如10kg的背包 有8kg价值9元的物品1,3kg 价值3元的物品2,和8kg价值7元的物品3;如果选择物品1 背包无法装其他的物品 价值为9; 但是 选择物品2和物品3 价值为10;
2020-05-20 14:56:20
136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人