自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jiacongxu的专栏

cracking the fucking coding interview

  • 博客(27)
  • 收藏
  • 关注

原创 面试总结之-排序算法分析

第一篇博客,把近段时间来准备面试的心得,碰到的题(题目以后再补充),分类总结在一起,方便以后自己查看。    一系列博客主要面向有意应聘国外码农的童鞋(Facebook,LinkedIn, Amazon, Google, 简称FLAG,当然Microsoft,Twitter等等也包括在内),实际上它们的面试风格也是大同小异,算法coding为主,中间夹杂design pattern,big d

2013-05-17 10:14:46 1127

转载 CppUnit快速入门

转载自:CppUnit快速入门简介测试是软件开发过程中极其重要的一环,详尽周密的测试能够减少软件BUG,提高软件品质。测试包括单元测试、系统测试等。其中单元测试是指针对软件功能单元所作的测试,这里的功能单元可以是一个类的属性或者方法,测试的目的是看这些基本单元是否工作正常。由于单元测试的内容很基础,因此可以看作是测试工作的第一环,该项工作一般由开发人员自行完成。如果条件允许,单元测

2013-06-12 23:19:49 543

原创 KMP字符串匹配

以下内容参考了这个文章:http://www.inf.fh-flensburg.de/lang/algorithmen/pattern/kmpen.htm这两天重新看KMP,发现问题还蛮多的。以前知道KMP怎么用,复杂度如何,但是写起来总是做不到bug-free。把这两天重新看的,写的关于KMP的东西,拿出来总结一下。首先介绍下KMP:KMP的全名是Knuth-Morris-Pratt a

2013-06-10 17:52:35 1562

转载 浅谈用极大化思想解决最大子矩形问题

浅谈用极大化思想解决最大子矩形问题 福州第三中学   王知昆 【摘要】    本文针对一类近期经常出现的有关最大(或最优)子矩形及相关变形问题,介绍了极大化思想在这类问题中的应用。分析了两个具有一定通用性的算法。并通过一些例题讲述了这些算法选择和使用时的一些技巧。 【关键字】 矩形,障碍点,极大子矩形 【正文】一、   问题最大子矩形问题:在一个给定的矩

2013-06-08 17:19:40 883

转载 杨氏矩阵 Young Tableau

转载自: 杨氏矩阵 Young Tableau杨氏矩阵 Young Tableau前几天算法课上老师提到了一个数据结构--Young Tableau,只是简单的提了一下,没有仔细的讲解,于是自己在网上搜集了一些资料,并且加以研究,感觉杨氏矩阵(Young Tableau)是一个很奇妙的数据结构,他类似于堆的结构,又类似于BST的结构,对于查找某些元素,它优于堆;对于插入、删

2013-05-27 22:41:12 729

转载 算法复杂度总结!

刚看到一个很好的算法复杂度总结的贴,果断转了。原文链接:http://bigocheatsheet.com/#坑爹,那些表格没法完全显示,大家可以点上面的链接看原文。SearchingAlgorithmData StructureTime ComplexitySpace ComplexityAver

2013-05-24 15:56:58 1298

原创 leetcode代码分类汇总之-树

leetcode中关于树的题目汇总,这部分题目比较多:Balanced Binary Treeclass Solution {public: int subBal(TreeNode* root){ if(root==NULL) return 0; int left = subBal(root->left);

2013-05-23 23:52:00 1253

原创 面试总结之-树

树树的题目,基本是二叉树,不过面试时如果没有说binary,千万不要先入为主,可能是多叉的(这也是个陷阱,等你思路都差不多时,面试官说:我都没有说是二叉树,然后你就黑了),不要自己给自己增加条件了。树的题目主要有以下几种:一. 树的三种遍历。前序、中序、后序,如果直接考遍历,就肯定是让你写非递归代码的(递归版太弱智了),具体写法,要不你记下来,要不参考“递归”部分的,怎么递归转非递归,另一

2013-05-23 23:35:03 1147

转载 虚函数和纯虚函数的区别

转载自:虚函数和纯虚函数的区别首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:[cpp] view

2013-05-23 23:07:15 559

转载 各种排序算法的实现及其比较

转载自:各种排序算法的实现及其比较排序算法是笔试和面试中最喜欢考到的内容,今晚花了好几个小时的时间把之前接触过的排序算法都重新实现了一遍。 主要是作为复习用。当然也希望能够给大家帮上点忙。对各种排序算法比较熟悉的朋友可以直接跳过。 常用的内部排序算法主要分为五类:插入、交换、选择、归并、基数排序。文章的最后可能还会稍微

2013-05-21 00:00:26 854

转载 函数调用机制例解

转载自:函数调用机制例解      昨天室友拿一个面试题为难我,问我C/C++函数调用是怎么一个流程。这问题实在简单,然而有一本什么面试宝典却说的前后不一,漏洞重重。室友尽信于书,非与我分个高低。单从机制本身来说,公说公有理,婆说婆有理,于是我就用了一个简单的实验才勉强说清楚。在此也顺便总结一下,从汇编的角度介绍一下函数调用过程。      当调用者

2013-05-20 23:56:48 611

转载 N皇后问题的两个最高效的算法

转载自:N皇后问题的两个最高效的算法N皇后问题是一个经典的问题,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击)。一、 求解N皇后问题是算法中回溯法应用的一个经典案例       回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。

2013-05-20 23:49:04 1022

转载 STL 中优先队列的使用方法(priority_queu)

转载自:http://www.cppblog.com/CodeStream/archive/2011/03/25/142700.htmlSTL 中优先队列的使用方法(priority_queu)基本操作:empty() 如果队列为空返回真pop() 删除对顶元素push() 加入一个元素size() 返回优先队列中拥有的元素个数top() 返回优先队列对顶元

2013-05-20 23:44:45 668

转载 存储管理的页面置换算法

转载自:存储管理的页面置换算法存储管理的页面置换算法存储管理的页面置换算法在考试中常常会考到,操作系统教材中主要介绍了3种常用的页面置换算法,分别是:先进先出法(FIFO)、最佳置换法(OPT)和最近最少使用置换法(LRU)。大家要理解3种置换算法的含义,然后能熟练地运用在具体的练习中就可以了。为什么要进行页面置换在请

2013-05-20 23:41:33 1067

转载 STL容器效率比较

转载自:STL容器效率比较1、vector变长一维数组,连续存放的内存块,有保留内存,堆中分配内存;支持[]操作,高效率的随机访问;在最后增加元素时,一般不需要分配内存空间,速度快;在中间或开始操作元素时要进行内存拷贝效率低;vector高效的原因在于配置了比其所容纳的元素更多的内存,内存重新配置会花很多时间;注:需要高效的随即存取,而不在乎

2013-05-20 23:39:33 602

转载 高精度的进制转换

转载自:http://www.cppblog.com/kuangbin/archive/2011/08/25/154299.html高精度的进制转换前面的内容来源于:http://www.cnblogs.com/phinecos/archive/2009/09/11/1564975.html引用原文:在数据结构课关于栈的这一章中,我们都学过用“模2取

2013-05-20 23:37:37 713

转载 C++中智能指针的设计和使用

转载自:C++中智能指针的设计和使用能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为

2013-05-20 23:35:13 458

转载 C语言文本方式和二进制方式打开文件区别

转载自:C语言文本方式和二进制方式打开文件区别我们都知道,文本文件和二进制文件在计算机上面都是以0,1存储的,那么两者怎么还存在差别呢?我觉得,对于编程人员,文本文件和二进制文件就是一个声明,指明了你应该以什么方式(文本方式/二进制)打开这个文件,用什么函数读写这个文件(读写函数),怎么判断读到这个文件结尾。具体的说:1。以哪种方式打开一个文件?ANSI C规定了标准输

2013-05-20 23:31:47 865

原创 leetcode代码分类汇总之-链表

leetcode上链表的题目还算不少的,暂时收录下面这些,可能有些被我分到其他部分去了。Add Two Numberscode:class Solution {public: ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { int carry=0; ListNode* du

2013-05-20 23:21:11 1228

原创 面试总结之-链表

链表  链表部分个人认为是最烦的,大部分链表题考的都是coding技巧,不需要怎么思考,但是没有写过几次的话,链表的coding是各种陷阱。 先总结一下题型,链表的题目主要两种:1.      链表翻转(包括全翻转,部分翻转,分段翻转);2.      链表删除/增加(包括删除某值,删除倒数第K个,去重)。具体说,全翻转就是给你一个单向链表,你把它倒过来;部分翻转就是,给一个单

2013-05-20 23:01:00 2063

转载 new/delete 和malloc/free 的区别

转载自:http://www.cppblog.com/Lee/archive/2009/03/09/75990.html相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对

2013-05-20 22:44:28 652

原创 面试总结之-哈希算法分析

哈希(散列表)  哈希也是面试的超高频题,但是一般不需要自己设计哈希函数(常用的要不把输入转换成一个整数然后对素数取模,要不找一个二进制串来做异或),所以哈希的重点跟平衡树很像,只需要知道什么情况下使用hash,不用自己写内部实现,用到的数据结构跟平衡树对应:hash_set和hash_map。面试时可以把hash认为复杂度是O(1)的。  另外,hash经常可以用来代替二分查找,空间换时

2013-05-17 23:18:53 1221

原创 leetcode代码分类汇总之-递归

leetcode的递归题目汇总。递归题目很多,不过有些不分到这个目录下。Generate Parentheses:题目描述:Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, give

2013-05-17 14:25:29 779

原创 leetcode代码分类汇总之-查找

leetcode上关于二分查找的题目汇总Search for a Range:题目描述:Given a sorted array of integers, find the starting and ending position of a given target value.Your algorithm's runtime complexity must be in

2013-05-17 14:05:56 689

原创 leetcode代码分类汇总之-排序

慢慢把在leetcode上写的代码搬过来(不知道leetcode是啥的童鞋请点击http://leetcode.com/),由于对于题目的理解或者coding技巧随时变化,所以,这一系列的博客可能会被老是修改 = =!增删都会比较频繁,见谅。另外题目分类本来就很难,排除掉我漏分错分的情况,很多题目本身就属于几个类别(比如可能它在排序类,又在递归类,还在查找类等等等等),所以一个你觉得是A类的,在A

2013-05-17 13:42:05 1115

原创 面试总结之-递归算法分析

递归的分析         首先是,“你这个递归能不能写成个不需要栈空间的递归?”,答:“尾递归(tail-recursive)”。好冷~不过真有一个面试官这样问我了。不过尾递归不怎么考,因为你如果能写成尾递归,说明系统也不需要用栈空间来保存递归的状态了,那你把它改成迭代的形式就不难了。         递归的基本形式是: T Recursive(arg_list* args)

2013-05-17 13:18:48 1289

原创 面试总结之-查找算法分析

先说明一下~这里的查找主要指二分,不指DFS,BFS(那些我后面放到搜索部分)。 查找的分析         关于查找,最最最重要的是二分查找,也是这系列所有博客中最重要的部分,除了二分查找之外,还有平衡树,但是不会让你写平衡树= =!一般就是对于STL中set,map的使用,STL的东西一般也不会一定要你用,但是如果面试时什么都自己现场写的话肯定来不及,也容易出错,记住几个常用的数据结构

2013-05-17 10:51:48 1041 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除