数据结构、算法
文章平均质量分 73
ohmygirl
这是一首简单的小情歌。
最近补习内容:c, 数据结构、算法导论、深入理解Linux内核、PHP EAE、UNIX环境高级编程。
展开
-
【备忘录-c/c++】typedef的使用总结
原文地址:http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html 作者:bigcoder不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其转载 2011-11-04 10:24:30 · 865 阅读 · 0 评论 -
分享一些学习资料-大量PDF电子书
分享一些学习用的电子书籍,给那些喜欢看书而不一定有机会买书的童鞋。反对积分下载,提倡自由分享。分享地址: http://pan.baidu.com/s/1qWK5V0g提取密码: np33主要包括几个部分的东西:C/C++/数据结构、算法类的,也会有一些计算机基础的,如《深入理解计算机系统》PHP书籍及周边。如Apache,Nginx, mysql, H原创 2014-10-15 21:01:24 · 9184 阅读 · 5 评论 -
从单词统计问题看面试
本文的许多内容来自网络,如有错误,欢迎指出。问题描述 首先这里对单词的界定是:以空白分割的字符序列。单词统计的问题可以描述为:在一篇正常格式的英文文档中(作为面试,这里并没有提及中文分词和单词统计的问题),统计每个单词出现的次数,要求统计出现次数最多的N个单词和相应的出现次数。问题简单明了,无需对字面做更多的解释。为什么面试官都喜欢考诸如此类的问题?这类问题,大都有一个共同点:不仅原创 2014-10-11 18:38:12 · 3835 阅读 · 0 评论 -
【面试笔试-c/c++】2013年校园招聘创新工场笔试题(北邮场)
2013年校园招聘创新工场笔试题(北邮场)及一面题目节后补上~~回家了,上网不方便。面试题一面:1. 手写二叉树的中序非递归遍历,一步一步解释代码,给个二叉树示范代码流程2. 0-1背包的解法(DP ,回溯),手写代码3. 奇偶位交换的思路,代码4. static变量的用法,作用5. 网络那题的思路。6. 试卷上几道题目的原创 2012-09-29 22:45:26 · 2758 阅读 · 2 评论 -
【面试笔试-c/c++】兰亭集势2013校园招聘试题。
兰亭集势2013校园招聘试题。投递职位:软件开发工程师,笔试通过,接到面试但是没有去。公司总部在望京利泽中园启明国际大厦.据说上午的面试很是混乱,问的技术问题不多。一.选择题:1.下面程序的输出是 (C): char s[] = "lightinthebox"; printf("%s%d",s+5,sizeof(s)); A. lightinthbox原创 2012-09-22 21:15:35 · 4956 阅读 · 3 评论 -
【面试笔试-c/c++】百度2011年校园招聘总结
1、设rand(s,t)返回[s,t]之间的随机小数,利用该函数在一个半径为R的圆内找随机n个点,并给出时间复杂度分析。解析:由于rand(s,t)可以返回[s,t]之间的随机小数。对于一个点,我们可以根据两个条件得到它:a.如果能够随机求出点的x和y坐标。b:已知点到圆心的距离和该连线的角度,也可以。第一种情况:x = rand(-1,1)*R;y = rand(-1,1)*R则点(x,原创 2012-09-05 09:45:47 · 2620 阅读 · 2 评论 -
【转载-系统设计】系统设计题常见的思路
眼下不少大公司越来越倾向于系统设计方面的考核(百度等公司经常作为压轴大题),故收集了本文,希望对于系统设计有新的思路。本文系转载。原文地址:http://www.jobcoding.com/basic-knowledge/system-designing/应届生在面试的时候,偶尔也会遇到一些系统设计题,而这些题目往往只是考一下你的知识面,或者对系统架构方面的了解,不会涉及编码。转载 2012-10-28 21:34:22 · 2566 阅读 · 0 评论 -
【数据结构-trie树】trie数实现单词查询和单词统计
参考内容:1. 这位童鞋的文章 http://blog.csdn.net/zhulei632/article/details/67044962. 严蔚敏 -数据结构1.键树的定义: 键树又叫“数字查找树”。深度>=2 . 树中的每个节点一般不是直接包含关键字,而是包含组成关键字的符号(当然叶子节点除外,叶子节点可能包含整个单词以及词频,非叶节点也可包含单词和词频)。根据存原创 2012-09-07 10:48:52 · 6213 阅读 · 0 评论 -
【转】哈希表碰撞攻击的基本原理
原文地址:http://blog.jobbole.com/11516/来源:张洋最近哈希表碰撞攻击(Hashtable collisions as DOS attack)的话题不断被提起,各种语言纷纷中招。本文结合PHP内核源码,聊一聊这种攻击的原理及实现。哈希表碰撞攻击的基本原理哈希表是一种查找效率极高的数据结构,很多语言都在内部实现了哈希表。PHP中的哈希表是一种极为重要的数据转载 2013-01-16 16:09:13 · 2146 阅读 · 2 评论 -
【面试笔试-c/c++】人民搜索2012校园招聘试题
2012 人民搜索笔试题:题目如下(题目都很基础,但是要拿满分,或者做到完美,应该还是有一定难度的):1、打印汉诺塔移动步骤,并且计算复杂度。2、计算两个字符串的是否相似(字符的种类,和出现次数相同)3、定义二叉树,节点值为int,计算二叉树中的值在[a,b]区间的节点的个数。4. 在一个坐标轴上, 给定两个点,一个起点,一个终点,起点有一个方块,方块可以左右移动,但是移动原创 2012-08-31 17:07:00 · 2401 阅读 · 2 评论 -
【算法总结-二分法】 二分查找法的相关总结
1.一个正确的二分法。 二分查找用于在多条记录中快速找到待查找的记录。它的思想是:每次将查找的范围缩小一半,直到最后找到记录或者找不到记录返回。 二分查找的时间复杂度为O(logn) 二分法的递归和非递归算法如下: i.非递归算法。 int binary_search(int arr[],int n ,int key){ int mid;原创 2012-08-09 10:57:05 · 4936 阅读 · 0 评论 -
【算法总结-回溯法】回溯与八皇后
test <?php /*八皇后问题代码实现 * * * *///根据前几行的放置情况,判断这一行是否合法function attack($n){ global $chess; for($i=1;$i<=$n-1;$i++){ if($chess[$n]==$chess[$i]+($n-$i)||原创 2011-11-01 11:21:58 · 1612 阅读 · 0 评论 -
【算法总结-数学】求1-N中1出现的次数
【编程之美】给定一个十进制正整数N,求出从1开始,到N的所有整数,数字1出现的次数。例如,N=2,则两个数为1,2 。数字1出现的个数是1.又如n = 20.则20个数中1出现的为:1,10,11,12,13,14,。。。19 共有12个。设计一个算法,可以高效地求出1-N之间出现的1的个数。(主要考虑效率)。记录: 对于一个数abcde。出现1的次数可以通过计算各位中出现的1原创 2011-11-02 14:32:49 · 3298 阅读 · 0 评论 -
【算法总结-DP】求子数组的最大和
快要毕业了,逐步把之前做过的一些算法和数据结构,项目相关资料总结整理一下,一来温习一下之前的知识,二来记录下学习点滴,方便之后的学习。 题目描述:给定一个整数数组,数组中有正数也有负数,数组中连续的一个或者多个整数组成一个子数组,每个子数组都有一个和,求给定数组的最大子数组和。也成为“最大子段和”问题。要求时间复杂度为O(n). 该题目是一个简单的DP问题。算法的思路很多,但是原创 2012-08-08 16:09:24 · 2553 阅读 · 0 评论 -
【数据结构-索引总结】部分数据结构部分总结索引。
一.链表系列:1.单链表的建立,遍历及有序单链表合并2.单链表的就地逆置3.求单链表的中间元素和倒数第k个元素4.判断单链表是否有环5.交换单链表中任意两个元素二.栈&队列:1.顺序栈的建立,入栈,出栈,判空2.栈的应用之一:数值转换3.栈的应用之二:括号匹配的检测4.栈的应用--递归的实现-汉诺塔5.设计一个min函数的原创 2012-08-13 17:08:31 · 996 阅读 · 0 评论 -
【算法总结-top K】堆--查找最小(大)的k个元素
top K问题是一个经典的问题。 该问题描述为:输入n个整数,输出其中最小的k个元素,例如,输入 1,2,3,4,5,6,7,8 那么最小的4个元素就是1,2,3,4. 除了这个,top K问题还指:常遇到的一类问题是,在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题通常称为“top K”问题,如:在搜索引擎中,统计搜索最热门的10个查询词原创 2012-08-14 17:02:31 · 21018 阅读 · 1 评论 -
【算法总结--数组相关】双指针法的常见应用。
所谓双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向或者相反方向的指针进行扫描,从而达到相应的目的。 换言之,双指针法充分使用了数组有序这一特征,从而在某些情况下能够简化一些运算。 (注:这里的指针,并非专指c中指针的概念,而是指索引,游标或指针,可迭代对象等) 这类算法包括: 1.给定一个有序递增数组,在数组中找到原创 2012-08-10 10:09:03 · 18407 阅读 · 0 评论 -
【算法总结-排列组合与子集问题】排列组合与子集问题
1.组合问题: 问题描述:对于一组各不相同的数字,从中任意抽取1-n个数字,构成一个新的集合。求出所有的可能的集合。例如,对于集合{1,2,3},其所有子集为{1},{2},{3},{1,2},{1,3},{2,3}{1,2,3}, 给定一个数组(元素各不相同),求出数组的元素的所有非空组合(即数组的所有非空子集) 解法一:位向量法。用一个辅助数组表示各个元素的状态。1表示在集原创 2012-08-13 16:37:08 · 6853 阅读 · 0 评论 -
【算法总结-数组相关】 数组中找特定元素相关~
本次总结在数组中查找特定的元素。碰到的面试题目主要包括:1.假如你有一个用1001个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1到1000之间(包括1000)、此外,除了一个数字出现两次外,其他的数字只出现了一次。假设你对数组做一次处理,用一种算法找出重复的那个数字,要求不使用大量额外的存储空间(即要求辅助空间为O(1)) 题目的意思很明显,1001个数字原创 2012-08-13 11:35:30 · 2781 阅读 · 0 评论 -
【算法总结-数组】数组移动->左奇右偶
给定一个整形数组,要求对这个数组进行操作,移动成左边部分奇数,右边部分偶数的形式。想法:快速排序的划分方法,原本是根据与某一个值进行比较进行划分。更改这个算法策略为根据每个数的奇偶性进行划分。实现1: /* *数组移动,偶数移动到右边,奇数在左边 *方式1:用类似与快速排序划分的方式 *用一个指针扫描,遇到奇数就与已移动过的部分的下一个元素交换(另一个指针保存着已移原创 2011-11-01 14:05:30 · 2509 阅读 · 1 评论 -
【读书】2015读书List
时刻提醒自己,不进步意味着倒退。2015年准备读完的技术书籍:1. 《Redis设计与实现》2. 《高可用MySQL:构建健壮的数据中心》3. 《高性能Mysql》4. 《深入浅出Node.js》5. 《算法 第4版 Algorithms Fourth Edition》6. 《深入PHP:面向对象、模式与实践(第3版)》7.《构建高性能Web原创 2015-03-27 17:08:51 · 1590 阅读 · 0 评论