随笔分类 -  数据算法

平衡二叉树AVL教程
摘要:平衡二叉搜索树,又被称为AVL树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 —-来自百度百科 理解 :一定要平衡!看着就平衡! ​ 二叉查找树会容易失去”平衡“。如下图所示: 失去平衡也就失去了查询的效率! 平衡二叉树如何保持”平衡 阅读全文

posted @ 2021-01-21 16:07 耀扬 阅读(287) 评论(0) 推荐(0)

二叉查找树BST教程
摘要:二叉查找树(BST:Binary Search Tree),又称二叉排序树 是一种特殊的二叉树,它改善了二叉树节点查找的效率。二叉查找树有以下性质: 简单概况:小的放左边,大的放右边 对于任意一个节点 n, 其左子树(left subtree)下的每个后代节点(descendant node)的值都 阅读全文

posted @ 2021-01-21 11:46 耀扬 阅读(249) 评论(0) 推荐(0)

leetcode 1252题 解法 奇数值单元格的数目
摘要:奇数值单元格的数目 给你一个 n 行 m 列的矩阵,最开始的时候,每个单元格中的值都是 0。 另有一个索引数组 indices,indices[i] = [ri, ci] 中的 ri 和 ci 分别表示指定的行和列(从 0 开始编号)。 你需要将每对 [ri, ci] 指定的行和列上的所有单元格的值 阅读全文

posted @ 2020-09-01 22:27 耀扬 阅读(193) 评论(0) 推荐(0)

“粉刷天花板”天池在线编程测试赛题九章算法题解题思路
摘要:你想给自己盖栋房子。房子是正方形或长方形的,它的长和宽需要属于集合s,并且其面积不超过a。请问有多少组可能的长宽的组合? 集合s的n个元素的计算方法如下,给定了一个种子s0,和参数k,b和m,并通过以下公式计算: Si=((k*Si-1+b) mod m+ 1+Si-1) 1<=i<n 样例 样例 阅读全文

posted @ 2020-08-27 13:15 耀扬 阅读(366) 评论(0) 推荐(0)

抢红包的线段切割算法
摘要:把红包总金额想象成一条很长的线段,而每个人抢到的金额,则是这条主线段所拆分出的若干子线段。 def qianghb(M,N): M=M*100 #扩大100倍,取整 if N>M: return '无法分配!' xianduan=[] s=0 while s<(N-1): x=random.rand 阅读全文

posted @ 2020-07-15 16:17 耀扬 阅读(559) 评论(0) 推荐(0)

动态规划LeetCode377 求方案数
摘要:给定一个由正整数组成且不存在重复数字的数组 nums,找出和为给定目标正整数 target 的组合的个数。顺序不同的序列视作不同的组合。 示例:nums = [1, 2, 3],target = 4。所有可能的组合为: (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) 阅读全文

posted @ 2020-07-02 13:47 耀扬 阅读(436) 评论(0) 推荐(0)

动态规划LeetCode322零钱兑换
摘要:参考zzu_Lee https://www.cnblogs.com/hengzhezou/p/11042906.html 感谢 题目描述: 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 - 阅读全文

posted @ 2020-07-01 15:15 耀扬 阅读(356) 评论(0) 推荐(0)

TF-IDF算法原理及其使用详解
摘要:拜读了两篇大作,受益匪浅,感谢! 这孩子谁懂哈 https://blog.csdn.net/zhaomengszu/article/details/81452907 elly https://zhuanlan.zhihu.com/p/94446764 #如何准确抓住一篇文章内容的关键词? TF-ID 阅读全文

posted @ 2020-06-18 12:12 耀扬 阅读(1560) 评论(0) 推荐(0)

PageRank算法原理与实现
摘要:参考 永恒之魂 https://zhuanlan.zhihu.com/p/86004363 讲得非常透彻,感谢! #1、PageRank ##1.1.简介 PageRank,又称网页排名、谷歌左侧排名,是一种由搜索引擎根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创 阅读全文

posted @ 2020-06-18 10:37 耀扬 阅读(1187) 评论(0) 推荐(0)

AC自动机理解
摘要:AC自动机需要自备两个前置技能:KMP和trie树。 不要看代码,先理解思路。都不复杂,不理解的可以看我前面的博客。 参考了很多网上的教程:https://www.cnblogs.com/hyfhaha/p/10802604.html https://blog.csdn.net/qq_4081607 阅读全文

posted @ 2020-06-17 18:10 耀扬 阅读(453) 评论(0) 推荐(0)

最好理解的字符串匹配的KMP算法
摘要:字符串匹配是计算机的基本任务之一。 一、KMP 算法简介 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。 KMP 算法是由 阅读全文

posted @ 2020-05-30 16:24 耀扬 阅读(612) 评论(0) 推荐(0)

Trie树
摘要:Trie这个名字取自“retrieval”,检索,因为Trie可以只用一个前缀便可以在一部字典中找到想要的单词。 虽然发音与「Tree」一致,但为了将这种 字典树 与 普通二叉树 以示区别,程序员小吴一般读「Trie」尾部会重读一声,可以理解为读「TreeE」。 Trie树,也叫“字典树”。顾名思义 阅读全文

posted @ 2020-05-28 12:56 耀扬 阅读(151) 评论(0) 推荐(0)

leetcode42题接雨水解题
摘要:leetcode42题 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水) 解题思路 刚一看题,马上就想 阅读全文

posted @ 2020-03-02 16:37 耀扬 阅读(1764) 评论(0) 推荐(0)

leetcode1353最多可以参加的会议数目解题思路
摘要:拜读大佬的思路 coordinate_blog https://blog.csdn.net/qq_17550379/article/details/104349449 感谢感谢 给你一个数组 events,其中 events[i] = [startDayi, endDayi] ,表示会议 i 开始于 阅读全文

posted @ 2020-02-24 12:49 耀扬 阅读(449) 评论(0) 推荐(0)

牛客京东面试题数三角形解题思路
摘要:题目描述 给出平面上的n个点,现在需要你求出,在这n个点里选3个点能构成一个三角形的方案有几种。 输入描述: 第一行包含一个正整数n,表示平面上有n个点(n <= 100)第2行到第n + 1行,每行有两个整数,表示这个点的x坐标和y坐标。(所有坐标的绝对值小于等于100,且保证所有坐标不同) 输出 阅读全文

posted @ 2020-02-24 12:45 耀扬 阅读(554) 评论(0) 推荐(0)

Leetcode 1352:最后K个数的乘积解法
摘要:参考 https://blog.csdn.net/qq_17550379/article/details/104348023 coordinate_blog大佬的解法 开始第一次直接使用的暴力,结果显示超时,代码就不说了。 第一种解法:学习了动态规划的方法,每一次添加,记录下前面的累积。最后计算的时 阅读全文

posted @ 2020-02-22 23:18 耀扬 阅读(176) 评论(0) 推荐(0)

python各种排序算法
摘要:#冒泡排序 def bubble_sort(arr): for i in range(len(arr)-1): for j in range(len(arr)-i-1): if arr[j]>arr[j+1]: arr[j],arr[j+1]=arr[j+1],arr[j] return arr a 阅读全文

posted @ 2020-02-14 23:21 耀扬 阅读(206) 评论(0) 推荐(0)

牛客在线试题:幸运子序列
摘要:题目描述 牛牛得到一个长度为n的整数序列V,牛牛定义一段连续子序列的幸运值为这段子序列中最大值和次大值的异或值(次大值是严格的次大)。牛牛现在需要求出序列V的所有连续子序列中幸运值最大是多少。请你帮帮牛牛吧。 输入描述: 第一行一个整数n,即序列的长度。(2<= n <= 100000) 第二行n个 阅读全文

posted @ 2020-02-05 14:39 耀扬 阅读(212) 评论(0) 推荐(0)

网易面试题堆棋子python版
摘要:题目描述 小易将n个棋子摆放在一张无限大的棋盘上。第i个棋子放在第x[i]行y[i]列。同一个格子允许放置多个棋子。每一次操作小易可以把一个棋子拿起并将其移动到原格子的上、下、左、右的任意一个格子中。小易想知道要让棋盘上出现有一个格子中至少有i(1 ≤ i ≤ n)个棋子所需要的最少操作次数. 输入 阅读全文

posted @ 2020-01-31 23:31 耀扬 阅读(520) 评论(0) 推荐(0)

网易的长序列循环提取逆序问题
摘要:题目描述 小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作:1、将a_i放入b序列的末尾2、逆置b序列小易需要你计算输出操作n次之后的b序列。 输入描述: 输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。 第二行包括n个 阅读全文

posted @ 2020-01-31 13:57 耀扬 阅读(203) 评论(0) 推荐(0)

导航