- 博客(31)
- 资源 (39)
- 收藏
- 关注
原创 数组相关题目汇总
内容会持续更新,有错误的地方欢迎指正,谢谢!前言数据结构有这几类:数组、字符串、链表、树、栈、队列。 其中,数组和字符串都是用的连续内存,数组中装数字,字符串中装字符,这两个都是面试中出现频率最高的数据结构;链表和树需要大量指针,特别考察代码的鲁棒性;栈与递归紧密相关,队列与BFS紧密相关。数组的时间效率高,空间效率低。为了解决数组空间效率低的问题,人们又实现了多种动态数组,比如...
2018-01-31 23:48:52 1325
原创 字符串相关题目汇总
内容会持续更新,有错误的地方欢迎指正,谢谢!前言字符串在编程时的使用频率非常高。字符串在C/C++和C#中的特性如下:在C/C++中每个字符串都以’\0’结尾,比如”12345”占用6个字节。在C#中,String的内容是不能被改变的,一旦进行改变操作,便会产生一个新的实例并返回,所以,对String进行连续多次修改,每次都会产生一个临时对象,开销挺大的。令String text="hello"
2018-01-31 23:47:08 659
原创 数据结构和算法概念题
内容会持续更新,有错误的地方欢迎指正,谢谢!数据结构1、数组和链表的区别很简单,但是很常考,记得要回答全面:从逻辑结构来看:数组的大小一旦定义就不能改变,当数据增加时,可能溢出;当数据减少时,会造成内存浪费,当然,一开始将把数组定义大一些,也会造成内存浪费;而链表是动态分配内存的,可方便地插入、删除数据项。这方面堆优秀。从内存存储来看:数组从栈中分配空间(用NEW创建的在堆中), 可方便快捷地使用,
2018-01-31 15:27:17 914
原创 单链表和二叉树解题思路汇总
内容会持续更新,有错误的地方欢迎指正,谢谢!常识1.如何分析一个问题?画图+举例=>算法,还要分析时间复杂度以判断是否可行。 2.写完代码后,如何编写测试用例?也就是两类测试用例:功能测试和边界测试! 3.如何能及时发现并纠正代码的问题?提前想好测试用例,写完代码后,立即用事先准备好的测试用例进行检查。只有确保代码通过测试后,再提交给Interviewer。因为他也是通过他事...
2018-01-31 13:45:03 768
原创 二叉树题目汇总
内容会持续更新,有错误的地方欢迎指正,谢谢!前言二叉树虽然简单,但是与链表相比,树中的指针操作更多也更复杂,细微之处更能特别考验程序员的能力,所以,若想加大面试难度,树的题目是不二之选,博主在此列出一些二叉树常见的题型。 思路:先考虑边界测试,再考虑功能测试。 大多数边界条件都只需要判断: if(pRoot==nullptr) return;//或return 0;少数题还
2018-01-31 01:42:51 2247 2
原创 C++编程题常用容器汇总
内容会持续更新,有错误的地方欢迎指正,谢谢!STL的容器分为顺序容器和关联容器。容器适配器是对这两类容器进行包装得到的有更强约束力的容器。容器适配器stackstack是一种容器适配器,常被用于先进后出、逆序输出的情景。stack没有迭代器,将特定的容器作为其底层,如deque,list,vector…empty() //堆栈为空则返回真 pop() //移除栈顶...
2018-01-28 09:41:43 762
原创 单链表题目汇总
内容会持续更新,有错误的地方欢迎指正,谢谢!本文默认已定义了以下结点结构: struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }//尽量使用初始化列表,因为它调用的是赋值构造函数,可少调用一次默
2018-01-28 08:58:06 818
原创 操作系统—杂七杂八
内容会持续更新,有错误的地方欢迎指正,谢谢!本文包括:操作系统除了进程和线程、内存管理之外的内容。1、什么是init进程?init进程是系统所有进程的起点,init进程的进程号永远是1。2、什么是内核态、用户态?内核态: CPU可以访问内存所有数据,包括外围设备。所占有的CPU是不允许被抢占的。 用户态: 只能受限的访问内存,且不允许访问外围设备。所占有的CPU是可被抢占的。当在系统中运行一个程序
2018-01-12 00:58:15 335
原创 操作系统—内存管理
内容会持续更新,有错误的地方欢迎指正,谢谢!内存管理问题1、什么是局部性原理?时间上的局部性:最近被访问的页在不久的将来还会被访问,例如:循环语句;空间上的局部性:内存中被访问的页周围的页也很可能被访问,例如:使用数组。2、什么是虚拟内存?1).内存的发展历程(了解)没有内存抽象(单进程,除去操作系统所用的内存之外,全部给用户的一个程序使用)有内存抽象...
2018-01-12 00:57:00 2101
原创 操作系统—进程和线程
内容会持续更新,有错误的地方欢迎指正,谢谢!进程与线程概念1.从底层cpu的角度去理解进程和线程:进程和线程都是CPU工作时间段的描述,不过是颗粒大小不同。进程的并发: CPU在一个时间片只能执行一个进程,当多个进程要执行时只能轮流着来,当一个进程得到CPU的临幸,相关的资源必须也已就位,然后CPU开始执行,当这个进程执行完了或者分配给它的CPU执行时间用完了,那它就要...
2018-01-10 22:31:02 764
原创 编程题—小萌的副本生涯
内容会持续更新,有错误的地方欢迎指正,谢谢!题目在主城站街很久之后,小萌决定不能就这样的浪费时间虚度青春,他打算去打副本。 这次的副本只有一个BOSS,而且BOSS是不需要击杀的,只需要和它比智力……. BOSS会列出一正整数的序列,由小萌先开始,然后两个人轮流从序列的任意一端取数,取得的数累加到积分里,当所有数都取完,游戏结束。 假设小萌和BOSS都很聪明,两个人取数的方法都是最优策略,问最
2018-01-10 11:03:32 1076
原创 C++编程题最常用函数汇总
内容会持续更新,有错误的地方欢迎指正,谢谢!1.string转int的方式采用标准库中atoi函数。string str = "55"; int temp = std::atoi(str.c_str()); 2.int转string的方式采用标准库中的to_string函数,不需引入头文件,直接用就好。to_string函数还定义了任何其他内置类型转为string的重载函数,很实用。int tem
2018-01-10 02:24:50 3697
原创 编程题—随机发放奖品
题目在一次活动中,我们需要按可控的比例来随机发放我们的奖品,假设需要随机的物品id和概率都在给定的Map<String,Double> prizeMap中,请实现如下这个函数: String getRandomPrize(Map<String,Double>prizeMap){}使得返回的结果为参与者即将得到的一个随机物品id. prizeMap中的数据为: 物品id 投放概率 1
2018-01-10 00:03:33 1901
原创 编程题—字符串的排列
内容会持续更新,有错误的地方欢迎指正,谢谢!题目题目描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。分析一下子想不出解决方案就举例+画图+分解!如图所示,便是我们的思路。所以,求
2018-01-09 21:44:29 835
原创 编程题—寻找第K大
内容会持续更新,有错误的地方欢迎指正,谢谢!题目有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。输入例子:[1,3,5,2,2],5,3 输出例子:2分析送分题,知道快排的都知道Partition函数,那么一个Partition函数就解决了。代码这里写代码片
2018-01-09 02:10:41 773 2
原创 编程题—二叉树
内容会持续更新,有错误的地方欢迎指正,谢谢!题目有一棵二叉树,树上每个点标有权值,权值各不相同,请设计一个算法算出权值最大的叶节点到权值最小的叶节点的距离。二叉树每条边的距离为1,一个节点经过多少条边到达另一个节点为这两个节点之间的距离。 给定二叉树的根节点root,请返回所求距离。分析先找到权值最大和最小的结点,再遍历代码
2018-01-08 23:27:28 334
原创 编程题—比较重量—Floyd算法实现
内容会持续更新,有错误的地方欢迎指正,谢谢!何为Floyd算法是一种利用邻接矩阵记录每两点间的最短路径以在没负回路的有向图中找到最短路径的算法。求最短路的Floyd算法框架:声明一个二维数组(官方叫:邻接矩阵),用于将有向图转化为这个二维数组matrix,如何转化? 先将对角线上的元素置0,非对角线上元素置无穷大; 再将图中互相相连的两点的距离写入到二维数组中;比如点1
2018-01-08 19:26:06 735
原创 C++中的“虚”
本博文整理的知识点是C++中有关虚的一切,包括:虚函数,纯虚函数,纯虚类(抽象类),虚基类,虚析构函数、虚基类、虚继承、虚函数表…1.什么是虚函数,有什么作用?前言先理解多态:http://blog.csdn.net/BillCYJ/article/details/79523110,磨刀不误砍柴功。若派生类内定义了一个与基类同名的成员函数(假设是非虚函数的成员函数),该现象称为...
2018-01-07 22:52:15 1660 1
转载 红黑树,你还要我怎样
关于红黑树的相关重点,原博主总结得非常好,我只做了细微的修改!【转载】http://blog.csdn.net/silangquan/article/details/18322087红黑树很重要,STL中的set、map、multimap、multiset这些关联容器都是红黑树实现的,但能红黑树的实现难度非常大,所以,我们记住如下的重点就好。关于红黑树的基本概念,请见http://blog.csdn
2018-01-07 18:45:56 543
原创 数据结构中常见的树 BST AVL RBT B- B+ B*
内容会持续更新,有错误的地方欢迎指正,谢谢!二叉搜索树BST又名二叉查找树、二叉排序树、B树。BST需满足如下要求:1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字,且关键字互不相等; 3.根节点的值大于左子树所有节点的值,并小于右子树所有节点的值; 4.左右子树仍然为BST;另外,因为一棵由n个结点随机构造的二叉查找树的高
2018-01-06 01:36:33 815
原创 map和unordered_map的差别和使用
笔记会持续更新,有错误的地方欢迎指正,谢谢!map和unordered_map的差别还不知道或者搞不清unordered_map和map是什么的,请见: http://blog.csdn.net/billcyj/article/details/78065438需要引入的头文件不同map: #include &amp;lt; map &amp;gt; unordered_map: #include &amp;lt; unordered_m
2018-01-05 23:03:30 58250 19
转载 DFS和BFS算法
DFS和BFS异同比较本质区别BFS 的重点在于队列,而 DFS 的重点在于递归。这是它们的本质区别。DFS 算法 是一种利用递归(实质上是用栈来保存未访问的结点,先进后出)实现的搜索算法,直到找到解或走不下去为止。简单来说,其搜索过程和 “不撞南墙不回头” 、“树的先序遍历”类似。BFS算法 是一种利用队列(用队列来保存未访问的结点,先进先出)实现的搜索算法。简单来说...
2018-01-05 01:10:19 5675
原创 编程题—推箱子
内容会持续更新,有错误的地方欢迎指正,谢谢!题目大家一定玩过“推箱子”这个经典的游戏。具体规则就是在一个N*M的地图上,有1个玩家、1个箱子、1个目的地以及若干障碍,其余是空地。玩家可以往上下左右4个方向移动,但是不能移动出地图或者移动到障碍里去。如果往这个方向移动推到了箱子,箱子也会按这个方向移动一格,当然,箱子也不能被推出地图或推到障碍里。当箱子被推到目的地以后,游戏目标达成。现在
2018-01-02 23:57:44 1468
原创 编程题—赛马
内容会持续更新,有错误的地方欢迎指正,谢谢!题目在一条无限长的跑道上,有N匹马在不同的位置上出发开始赛马。当开始赛马比赛后,所有的马开始以自己的速度一直匀速前进。每匹马的速度都不一样,且全部是同样的均匀随机分布。在比赛中当某匹马追上了前面的某匹马时,被追上的马就出局。 请问按以上的规则比赛无限长的时间后,赛道上剩余的马匹数量的数学期望是多少 输入描述: 每个测试输入包含1个测试用例 输入只有
2018-01-02 23:50:50 1295
原创 编程题—最大和
内容会持续更新,有错误的地方欢迎指正,谢谢!题目在一个N*N的数组中寻找所有横,竖,左上到右下,右上到左下,四种方向的直线连续D个数字的和里面最大的值 输入描述: 每个测试输入包含1个测试用例,第一行包括两个整数 N 和 D : 3 <= N <= 100 1 <= D <= N 接下来有N行,每行N个数字d: 0 <= d <= 100输出描述: 输出一个整数,表示找到的和的最大值输入
2018-01-02 20:10:02 359
原创 编程题—字符串编码
内容会持续更新,有错误的地方欢迎指正,谢谢!题目给定一个字符串,请你将字符串重新编码,将连续的字符替换成“连续出现的个数+字符”。比如字符串AAAABCCDAA会被编码成4A1B2C1D2A。 输入描述: 每个测试输入包含1个测试用例 每个测试用例输入只有一行字符串,字符串只包括大写英文字母,长度不超过10000。输出描述: 输出编码后的字符串输入例子: AAAABCCDAA输出例子: 4
2018-01-02 19:53:36 687
原创 编程题—geohash编码
内容会持续更新,有错误的地方欢迎指正,谢谢!问题geohash编码:geohash常用于将二维的经纬度转换为字符串,分为两步:第一步是经纬度的二进制编码,第二步是base32转码。 此题考察纬度的二进制编码:算法对纬度[-90, 90]通过二分法进行无限逼近(取决于所需精度,本题精度为6)。注意,本题进行二分法逼近过程中只采用向下取整来进行二分,针对二分中间值属于右区间。算法举例如下: 针对纬度为
2018-01-02 16:20:14 683
原创 编程题—质数和质数对
内容会持续更新,有错误的地方欢迎指正,谢谢!问题给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。 如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7)) 输入描述: 输入包括一个整数n,(3 ≤ n < 1000)输出描述: 输出对数输入例子: 10输出例子: 2分析质数又名素数,取值:2 3 5
2018-01-02 11:03:42 1890
原创 Bitmap和2-Bitmap海量数据处理问题
内容会持续更新,有错误的地方欢迎指正,谢谢!题目题1:在2.5亿个整数找出不重复的整数,内存不足以容纳着2.5亿个整数。 题2:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中? 题3:“游戏任务标记”的编程题,请见链接: http://blog.csdn.net/billcyj/article/details/789484
2018-01-02 09:41:01 5083 1
原创 编程题—游戏任务标记
内容会持续更新,有错误的地方欢迎指正,谢谢!问题游戏里面有很多各式各样的任务,其中有一种任务玩家只能做一次,这类任务一共有1024个,任务ID范围[1,1024]。请用32个unsigned int类型来记录着1024个任务是否已经完成。初始状态都是未完成。 输入两个参数,都是任务ID,需要设置第一个ID的任务为已经完成;并检查第二个ID的任务是否已经完成。 输出一个参数,如果第二个ID的任务已经完
2018-01-02 00:48:42 1242
原创 编程题—编码
问题假定一种编码的编码范围是a ~ y的25个字母,有1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的Index为0,aa的Index为1,aaa的Index为2,以此类推。 编写一个函数,输入是任意一
2018-01-01 22:42:49 587
Sqlite3.exe(TortoiseSVN清理工具).rar
2019-09-03
运营之光2.0 我的互联网运营方法论与自白(彩色 高清完整 带书签版).pdf
2018-11-03
unity4.x破解工具UniPatcher
2018-10-10
STL源码剖析简体中文(带目录版本)高清完整PDF版
2017-10-03
深度探索C++对象模型 中文 高清完整PDF版
2017-10-03
【免费】安卓开发全套知识点(大学毕业生找工作必备)
2017-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人