笔试题
璀璨下的一点星辰
这个作者很懒,什么都没留下…
展开
-
剑指offer---数组
1.数组中重复的数字(P39) 思路一是先排序,然后从头找,时间复杂度是O(nlogn) 思路二是hash表,将数组往hash表里存,如果已经有值表示找到了重复的值.时间复杂度是O(n)空间负载度是O(n). 思路三,从头到尾开始扫描,下标为i的数字m是不是等于i,如果是就继续扫,不是,再用m和下标i=m的数字n进行比较,如果n=m就找到了一个重复的数字,如果m和n不...原创 2018-12-05 21:06:22 · 2803 阅读 · 0 评论 -
内存管理笔记(分页,分段,逻辑地址,物理地址与地址转换方式)
在页式存储管理系统中,页表内容如表所列:页表:页号 块号 0 2 1 1 2 6 3 3 4 7若页的大小为4KB,则地址转换机...转载 2019-04-08 16:59:51 · 2178 阅读 · 0 评论 -
LRU算法
内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,操作系统会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。什么是LRU算法? LRU是Least Recently Used的缩写,即最近最少使用,常用于页面置换算法,是为虚拟页式存储管理服务的。关于操作系统的内存管理,如何节省利用容量不大的内存为最多的进程提供资源,一直是研究的重要方向。而内存的...转载 2019-04-08 16:30:30 · 495 阅读 · 0 评论 -
Dijkstra 算法
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。大概就是这样一个有权图,Dijkstra算法可以计算任意节点到其他节点的最短路径算法思路指定一个节点,例如我们要计算 'A' 到其他节点的最短路径 引入两个集合(S、U),S集合包含已求出的最短路径的点(...转载 2019-04-08 15:33:19 · 140 阅读 · 0 评论 -
数据结构总结的不错的集合
http://www.cnblogs.com/skywang12345/p/3603935.html转载 2019-04-08 15:28:31 · 108 阅读 · 0 评论 -
prim算法
算法分析的一般步骤:1、文字描述:如果一个算法文字描述不清楚,就说明思路不清楚,也不可能写好。prim算法是实现图的最小生成树。既然是图,就假设包含n个顶点,m条边。prim算法是从顶点出发的,其算法时间复杂度与顶点数目有关系。(注意:prim算法适合稠密图,其时间复杂度为O(n^2),其时间复杂度与边得数目无关,而kruskal算法的时间复杂度为O(eloge)跟边的数目有关,适合稀...转载 2019-04-08 15:19:05 · 743 阅读 · 0 评论 -
KMP算法
一、字符串匹配场景KMP算法可以解决以字符串匹配为模型的问题,算法应用场景非常广泛,并不仅仅限于文本的匹配。以简单的字符串匹配为例,现有两个链分别为source和target,要在Source链中匹配Target链,很容易观察出出从source链下标10的位置可以成功匹配,如下图所示:二、非KMP算法对此类问题的求解方式在字符串匹配问题中,最直观的想法就是,Source链保...转载 2019-04-08 15:10:55 · 128 阅读 · 0 评论 -
BigInteger详解
腾讯一道笔试题涉及到算数的和的问题,int的取值范围为: -2^31——2^31-1,即-2147483648——2147483647 超过这个范围只能用大整数来计算了在用C或者C++处理大数时感觉非常麻烦,但是在Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,至于两个类的对象能表示最大范围不清楚,理论上能够表示无线大的数,只要计算机内存足够大。...原创 2019-04-05 13:12:43 · 750 阅读 · 0 评论 -
拼多多小熊吃糖问题
问题:有n只小熊,他们有着各不相同的战斗力。每次他们吃糖时,会按照战斗力来排,战斗力高的小熊拥有优先选择权。前面的小熊吃饱了,后面的小熊才能吃。每只小熊有一个饥饿值,每次进食的时候,小熊们会选择最大的能填饱自己当前饥饿值的那颗糖来吃,可能吃完没饱会重复上述过程,但不会选择吃撑。现在给出n只小熊的战斗力和饥饿值,并且给出m颗糖能填饱的饥饿值。求所有小熊进食完之后,每只小熊剩余的饥饿值。...转载 2019-03-10 10:40:36 · 303 阅读 · 0 评论 -
剑指offer-数字在排序数组中出现的次数
统计一个数字在排序数组中出现的次数。 有序和数组这个两个字眼结合起来,肯定是要用到二分查找这一类; 首先就是找最左侧的下标,利用二分查找首先是找到有一个值是与目标值target是相等的,然后因为是找最左侧的下标,所以把right=mid-1来一直往左边去逼近最左侧的值; 至于找最右侧的下标就是,将left=mid+1,来去逼近最右侧的下标; 如果没有找到则...转载 2019-02-28 10:04:09 · 94 阅读 · 0 评论 -
力扣记录题思路(动态规划篇)
5.最长回文子串: (1)找中心:如果中心点的左边和右边值都相等,此子串就是一个回文子串,然后往外扩大去判断 (2)动态规划,k表示 i 和 j 的间隔长度,i 表示子串的首字符,j 表示子串的尾字符,先找到子串长度为0,1,2的所有回文子串,然后其他的更大的回文子串会判断:dp[i + 1][j - 1] && s[i] == s[j] 1...原创 2019-07-27 15:35:33 · 1118 阅读 · 0 评论