数据结构
Great_Eagle
这个作者很懒,什么都没留下…
展开
-
什么是RSA算法
详情关注公众号:算法面试题 //返回a的p次方对n取模的值function superPow(a, p, n) { let b = String(p).split("").map(item => Number(item)); function powMod(x, y) { let res = 1; for(let i = 0; i < y; i++) { ...原创 2018-12-25 22:43:17 · 386 阅读 · 0 评论 -
如何求根号2
欢迎关注公众号:算法面试题问题 小E最近找实习的时候,被面试官问了这样一道题:如何求根号2的值? 小E没能答上来,回来后向老师请教。 思路 点评:以上介绍了二分法和牛顿迭代法来求解根号2,另外我们还可以通过泰勒公式法来求解。很多朋友可能会问,我们经常调用的Math库中sqrt(x...原创 2018-12-03 21:51:36 · 3783 阅读 · 0 评论 -
什么是洗牌算法
公众号:扫码开启算法之旅 //对数组中的元素进行随机重新排列,并返回//arr:数组function shuffle(arr) { for(let i = arr.length - 1; i >= 0; i--) { //随机从0-i中选择一个下标 let randomIndex = Math.floor(Math.random() * (i + 1)); //将...原创 2018-12-05 17:21:32 · 241 阅读 · 0 评论 -
分数转小数
JavaScript: //a,b均为整数,b不为0//返回字符串,代表分数的小数表示function divide(a, b) { //能整除直接返回 if(a % b === 0) return a / b; //不能整除分两种情况,结果是有限小数,结果是无限循环小数 //sign,存储结果正负号 let sign = ""; if(a > 0 &&...原创 2018-11-12 19:28:03 · 1071 阅读 · 0 评论 -
循环左移数组元素
//逆序函数function reverse(arr, left, right) { let temp; while(left < right) { //两数交换 temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; //左下标+1,右下标-1 left++; right--; }}...原创 2018-11-18 20:51:03 · 498 阅读 · 0 评论 -
优先级队列(头条面试题)
来源:微信公众号:算法面试题 扫码开启算法之旅 //实现一个优先级队列,此队列具有enqueue(val,prior)和dequeue()两种操作,分别代表入队和出队。//其中enqueue(val,prior)第一个参数val为为值,第二个参数prior为优先级(prior越大,优先级越高),优先级越高越先出队//dequeue()出队操作,...原创 2018-10-17 20:33:10 · 806 阅读 · 0 评论 -
百度面试题之求数组最大值
来源公众号:算法面试题上周末作者刚到百度进行了面试,今天对面试过程中的一道算法题进行梳理讲解。希望对大家有所帮助! 点评:此题实质上是二分查找的变形题目。 代码实现 下面是作者用JavaScript实现的代码,仅供参考!(建议大家自己动手实现一遍) 1//参数a...原创 2018-10-22 17:52:01 · 1414 阅读 · 0 评论 -
交叉层序遍历二叉树(美团面试题)
来源公众号:算法面试题说起二叉树遍历,大家并不陌生,先序遍历、中序遍历、后序遍历、层序遍历等等,在面试过程中,二叉树是许多面试官喜欢问的一个考点,大家需要将二叉树的上述遍历牢记于心。 今天,我们将重点讨论二叉树的层序遍历。 基本的层序遍历 二叉树的层序遍历,又叫广度优先遍历,即对二叉树一层一层地进行遍历,把一层的所有结点遍历完成后,再遍历下一层,如下图的遍历结果为:...原创 2018-10-15 16:24:13 · 1228 阅读 · 1 评论 -
LRU缓存淘汰算法
来源公众号:算法面试题简介 LRU,最近最少使用算法,即当要对数据进行淘汰时,先将最近最久未使用的数据淘汰(亦说最近最久未使用算法),是一种缓存淘汰算法。 意义:大家知道计算机的内存是有限的,当我们对一些数据一直缓存而不淘汰的话,那么内存总会被占满的,特别是服务器,造成的后果是可怕的。 应用场景:内存的页面淘汰、站内搜索关键字的缓存淘汰(详见:《如何应对...原创 2018-10-14 10:15:48 · 2648 阅读 · 0 评论 -
判断二叉树B是否为二叉树A的子结构
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路:遍历A树所有结点,分别判断以A树某个结点为根节点的子结构是否与B树结构相等import java.util.Stack;class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;...原创 2018-07-26 02:16:33 · 656 阅读 · 0 评论 -
面试中的高级数据结构之跳表
微信公众号:算法面试题 扫码开启算法之旅总结:跳表具有如下性质:(1) 由很多层结构组成(2) 每一层都是一个有序的链表(3) 最底层(第0层)的链表包含所有元素(4) 如果一个元素出现在第i层中,则它在第0到第i-1层也都会出现 (5) 跳表是一种随机化的数据结构(通过掷硬币的过程可以看出)点评:跳表是一种应用广泛的数据结构,著名的Redis与Leve...原创 2019-01-13 01:20:11 · 545 阅读 · 0 评论