笔记
文章平均质量分 68
qq_51928299
咸鱼咸鱼咸
展开
-
邻接表
邻接表也叫链式前向星。 参考博客:啊哈算法邻接表 邻接表存图-啊哈算法 在一些最短路问题中如果点和边的数目很大,邻接矩阵存不下,开不了那么大,连数据都存不下,就更无法进行下面的操作了。这时就需要用邻接表去存数据。不同于邻接矩阵的二维数组,邻接表用的是两个一维数组。 邻接矩阵 在最短路问题中邻接矩阵二维数组maze[x][y]中 x代表起始点,y代表末点,存的值为边的权值。存放含义易于理解。 邻接表 邻接表有两种方式,一种是定义结构体指针用链表来存放表示。一种是数组邻接表,这里讲的是数组邻接表。 数组邻接表就转载 2021-04-29 20:45:25 · 239 阅读 · 0 评论 -
100层楼2个鸡蛋
问题描述:两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事。 有座100层的建筑,要你用这两个鸡蛋确定哪一层是鸡蛋可以安全落下的最高位置。可以摔碎两个鸡蛋。在最坏的情况下最少需要几次测试,才能得到摔碎鸡蛋的楼层? 问题分析:很容易想到第一个鸡蛋去50层往下扔,碎了就让第二个鸡蛋从1遍历到50得出鸡蛋会在第几层碎,如果没碎就还让第一个去砸75,碎了51到75,没碎砸88,…以此类推。但这样稍微偏离了题意,如果题目改成无限个鸡蛋那么就可以使用这种方法:二分法。也很容易推出结论n原创 2021-04-09 16:55:46 · 144 阅读 · 0 评论 -
初学并查集
关于并查集,我是通过点击量最多的那几个博客学习的,他们所举的例子也比较通俗易懂。先贴一个我学习时参考的博客链接: 【算法与数据结构】—— 并查集 从里面学到了“并”“查”,所谓并就是将两个不相交的集合合并,查就是在集合里查询问题。 下面是并查集的并和查的未优化版本代码: int find(int x)//查找x的节点,查 { while(pre[x] != x) x = pre[x]; return x; } 因为数组中下标位的值存储的是该下标的所属集合,如pre[i]=3 就表示i是属于3这个原创 2021-03-31 22:02:20 · 58 阅读 · 0 评论 -
dfs实现全排列
题目描述 排列与组合是常用的数学方法。 先给一个正整数 ( 1 < = n < = 10 ) 例如n=3,所有组合,并且按字典序输出: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 输入 输入一个整数n( 1<=n<=10) 输出 输出所有全排列 每个全排列一行,相邻两个数用空格隔开(最后一个数后面没有空格) 样例输入 3 样例输出 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 看到有人说全排列是dfs最简单的题目时,作为初学者就原创 2021-03-11 21:00:11 · 273 阅读 · 0 评论