![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
今日的痛苦就是明日的头秃
采菊东篱yy
这个作者很懒,什么都没留下…
展开
-
数据结构--图
图的邻接矩阵表示 A[i,j]为1表示节点i到j有变相连,0表示无边相连. 上图表示为: 如果边具有权则用权表示,无边相连可用无穷表示.i=j时用0表示. 无向图为对称矩阵. 邻接表表示 对于图中的每个顶点,把所有邻接于顶点的节点链成一个单链表.链表节点至少包含两个域:一个为邻接点域,指示在图中的位序,一个为链域,指示下一个节点. ...原创 2020-11-07 16:23:19 · 139 阅读 · 0 评论 -
判断一颗二叉树是否为AVL树(Java)
如果左子树是AVL树,右子树是AVL树,他们的高度差小于等于1,那就是AVL树;否则不是. public class IsAVLTree { public static boolean isAVL(TreeNode root) { if (root==null) { return true; } int diff=Math.abs(getHeigt(root.lchild)-getHeigt(root.rchild)); if (isAVL(root.lchild)&&原创 2020-09-10 12:47:03 · 614 阅读 · 0 评论 -
动态规划
动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复原创 2020-09-07 21:25:20 · 152 阅读 · 0 评论 -
腾讯2021届校招第四场笔试通知问题
这是一个笔试题,当时写到一半没时间了,好可惜啊,,,,,,,要是能再多给我5分钟就好了。。。。。 公司有n个员工,编号为0~n-1,公司有m个团体,每个员工可以参加多个团体,也可以不·参加。如果一个员工获得一个通知,他可以通知所在团体中的其他人,得知消息的员工又可以去其他所在团体进行通知。现编号为0的员工获得一个通知,求最终获得通知的人数。 输入:第一行分别输入员工数和团体数;接下来m行第一个数代表团体人数,后面数字代表团体的员工编号。 输出:获得通知的人数。 输入示例: 50 5 2 1 2 5 10 1原创 2020-09-07 10:04:45 · 306 阅读 · 0 评论 -
贪心算法
贪心算法钞票支付问题分糖果(455)分析算法思路摇摆序列(力扣376)思路移除k个数字(402)分析跳跃游戏(55) 贪心法:遵循某种规律,不断贪心的选取当前最优策略的算法设计方法。 钞票支付问题 有1元、5元、10元、20元、100元、200元的钞票无穷多张。现使用这些钞票支付x元,最少需要多少张? 如:x=628 最佳支付方法: 3张200块的,1张20块的,1张5块的,3张1块的; 共需要3+1+1+3=8张。 直觉告诉我们:尽可能多的使用面值较大的钞票! 为何这么做一定 是对的? 面额为1元、5元、原创 2020-09-03 11:22:54 · 349 阅读 · 1 评论 -
数据结构与算法
数据结构与算法笔记散列冒泡排序归并排序字符串转float 散列 根据键值映射到对应值的地址,从而获取值.查找效率比链表高,插入与删除效率比数组高 散列函数(Hash函数)负责键到地址的映射,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。 理想的散列表是固定大小的数组. 如果不同键映射到了相同地址则发生了冲突,冲突是避免不了的,但应尽量减少发生,并提原创 2020-08-07 09:16:05 · 601 阅读 · 0 评论 -
Java实现二叉查找树
用递归的方式实现插入、遍历、查找等,也可以不用递归方式实现。 public class BinarySearchTree { private BinaryTreeNode root; public void insert(int x,BinarySearchTree tree) { if(tree.root==null) { tree.root=new BinaryTreeNode(x); } else if(x<tree.root.getData()) { Binar原创 2020-08-07 14:08:16 · 120 阅读 · 0 评论