![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法分析
Johnny玛索
这个作者很懒,什么都没留下…
展开
-
二叉树的平衡性判断---(DFS+递归)
题目描述实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。示例代码部分第一部分首先这个题目要利用是二叉树的结构,所以首先我们要将数组转换为二叉树的结构,代码如下://下面这个类主要是将数组转成二叉树的结构//如数组为[3,9,20,null,null,15,7],我们在上面的实际初始化的过程中将null用0替换class initTreeNode{ public TreeNode init(int[] arr){原创 2020-10-09 16:38:33 · 218 阅读 · 0 评论 -
算法分析(java)--二分查找
基本概念二分查找是一种查询效率非常高的查找算法,又称折半查找。二分查找法是对一组有序的数字中进行查找,传递相应的数据,进行比较查找到与原数据相同的数据,查找到了返回对应的数组下标,没有找到返回-1;算法基本思想及优缺点有序的序列,每次都是以序列的中间位置的数来与待查找的关键字进行比较,每次缩小一半的查找范围,直到匹配成功。优点:比较次数少,查找速度快,平均性能好;缺点:要求待查表为有序表,且插入删除困难。折半查找方法适用于不经常变动而查找频繁的有序列表。使用条件:查找序列是顺序结构,有序。应原创 2020-10-06 21:40:25 · 111 阅读 · 0 评论 -
动态规划(java)--最大子序和
题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例代码class Soluttion { public int maxSubArray(int[] nums) { int ans = nums[0]; //该变量是保存最终输出结果的变量 int sum = 0; //每次循环遍历的时候元素的求和变量 //循环遍历需要进行处理的数组 for (in原创 2020-10-04 17:30:34 · 464 阅读 · 0 评论 -
动态规划(java)--除数博弈
题目描述爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:选出任一 x,满足 0 < x < N 且 N % x == 0 。用 N - x 替换黑板上的数字 N 。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 False。假设两个玩家都以最佳状态参与游戏示例...原创 2020-10-04 11:01:29 · 295 阅读 · 0 评论