12 2014 档案

摘要:Given an integern, return the number of trailing zeroes inn!.Note:Your solution should be in logarithmic time complexity.类似于cc:http://www.cnblogs.com/... 阅读全文
posted @ 2014-12-31 08:31 Jessica程序猿 阅读(175) 评论(0) 推荐(0)
摘要:【摘要】今天在编写socket,在期间遇到查看某个端口的状态,随后从网上找了一下,现在总结一下。【内容】大家都知道,端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。下次若某个进程再次开启,则相应的端口也再次开启。而不要纯粹的理解为关闭掉某个... 阅读全文
posted @ 2014-12-29 14:51 Jessica程序猿 阅读(1555) 评论(0) 推荐(0)
摘要:Related to questionExcel Sheet Column TitleGiven a column title as appear in an Excel sheet, return its corresponding column number.For example: A ... 阅读全文
posted @ 2014-12-29 09:10 Jessica程序猿 阅读(192) 评论(0) 推荐(0)
摘要:前言Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%。与Apache相比,Nginx在高并发情况下具有巨大的性能优势。Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩... 阅读全文
posted @ 2014-12-27 20:09 Jessica程序猿 阅读(744) 评论(0) 推荐(0)
摘要:首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中... 阅读全文
posted @ 2014-12-26 13:38 Jessica程序猿 阅读(347) 评论(0) 推荐(0)
摘要:Given an array of sizen, find the majority element. The majority element is the element that appears more than⌊ n/2 ⌋times.You may assume that the arr... 阅读全文
posted @ 2014-12-23 11:12 Jessica程序猿 阅读(208) 评论(0) 推荐(0)
摘要:Given a positive integer, return its corresponding column title as appear in an Excel sheet.For example: 1 -> A 2 -> B 3 -> C ... 26 ->... 阅读全文
posted @ 2014-12-23 10:54 Jessica程序猿 阅读(215) 评论(0) 推荐(0)
摘要:接着上一篇的,从github clone下代码。 1、先查看当前开发分支$ cat .git/HEADref: refs/heads/master 这里的master是默认分支。 2、查看当前状态$ git status# On branch masternothing to commit ... 阅读全文
posted @ 2014-12-19 17:49 Jessica程序猿 阅读(278) 评论(0) 推荐(0)
摘要:好长时间没上来弄东西了,今天回来先开始弄下Git,之后再继续写uboot与kernel的编译,在版本控制下更加宏观地观察每次的变化。 1、在ubuntu中安装git$ sudo apt-get install git git-core 2、配置本机的git$ git config --globa... 阅读全文
posted @ 2014-12-19 17:48 Jessica程序猿 阅读(1355) 评论(0) 推荐(0)
摘要:C++语言定义了两个运算符来分配和释放动态内存。运算符new分配内存,delete释放new分配的内存。相对于智能指针,使用这来年刚给运算符管理内存非常容易出错,随着我们逐步详细介绍这两个四月份,这一点会更为清楚。而且,自己直接管理内存的类与使用智能指针的类不同,它们不能依赖类对象拷贝、赋值和销毁操... 阅读全文
posted @ 2014-12-19 15:56 Jessica程序猿 阅读(330) 评论(0) 推荐(0)
摘要:Given two integers representing the numerator and denominator of a fraction, return the fraction in string format.If the fractional part is repeating,... 阅读全文
posted @ 2014-12-18 22:57 Jessica程序猿 阅读(324) 评论(0) 推荐(0)
摘要:Compare two version numbersversion1andversion1.Ifversion1>version2return 1, ifversion1#include#include#include#includeusing namespace std;class Soluti... 阅读全文
posted @ 2014-12-18 20:43 Jessica程序猿 阅读(315) 评论(0) 推荐(0)
摘要:1.回溯法算法思想:定义: 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。1、回溯法适用:有许多问题,当需要找出它的... 阅读全文
posted @ 2014-12-17 23:32 Jessica程序猿 阅读(1456) 评论(0) 推荐(0)
摘要:Given an unsorted array, find the maximum difference between the successive elements in its sorted form.Try to solve it in linear time/space.Return 0 ... 阅读全文
posted @ 2014-12-17 22:59 Jessica程序猿 阅读(261) 评论(0) 推荐(0)
摘要:迭代器是一种抽象的设计概念,现实程序语言中并没有直接对应于这个概念的实物。1 迭代器设计思维——STL关键所在不论是泛型思维或STL的实际运用,迭代器都扮演这重要的角色。STL的中心思想在于:将数据容器和算法分开,彼此独立设计,最后再以一贴胶着剂将它们撮合在一起。容器和算法的泛型化,从技术的角度来看... 阅读全文
posted @ 2014-12-13 23:30 Jessica程序猿 阅读(657) 评论(0) 推荐(0)
摘要:STL定义有五个全局函数,作用于未初始化空间上,这样的功能对于容器的实现很有帮助。前两个函数是用于构造的construct()和用于析构的destroy(),另三个函数是uninitialized_copy(),uninitialized_fill(),uninitialized_fill_n,分别... 阅读全文
posted @ 2014-12-13 20:30 Jessica程序猿 阅读(808) 评论(0) 推荐(0)
摘要:1 空间的配置和释放,std::alloc对象构造前的空间配置和对象析构后的空间释放,由负责,SGI对此的设计哲学如下:向system heap要求空间考虑多线程状态考虑内存不足时的应变措施考虑过多“小型区块”可能造成的内存碎片问题C++的内存配置基本操作是::operator new(),内存释放... 阅读全文
posted @ 2014-12-13 20:00 Jessica程序猿 阅读(1476) 评论(0) 推荐(0)
摘要:17.12 设计一个算法,找出数组中两数之和为指定值的所有整数对。解答时间复杂度O(n)的解法我们可以用一个哈希表或数组或bitmap(后两者要求数组中的整数非负)来保存sum-x的值, 这样我们就只需要遍历数组两次即可找到和为指定值的整数对。这种方法需要O(n) 的辅助空间。如果直接用数组或是bi... 阅读全文
posted @ 2014-12-13 15:03 Jessica程序猿 阅读(240) 评论(0) 推荐(0)
摘要:17.11 给定rand5(),实现一个方法rand7().也即,给定一个产生0到4(含)随机数的方法,编写一个产生0到6(含)随机数的方法。解法:这个函数要正确实现,则返回0到6之间的值,每个值的概率必须为1/7.1 第一个尝试(调用次数固定)第一个尝试时,我们可能会想产生出0到9之间的值,然后再... 阅读全文
posted @ 2014-12-13 12:17 Jessica程序猿 阅读(197) 评论(0) 推荐(0)
摘要:17.9 设计一个方法,找出任意指定单词在一本书中的出现频率。解法:1 单次查询遍历这本书的每个单词,计算给定单词出现的次数。时间复杂度O(n),我们无法继续优化它,因为书中的每个单次都需要访问一次。当然,如果我们假设书中的单词是均匀分布的,那我们就可以只统计前半本书某个单次出现的次数,然后乘以2;... 阅读全文
posted @ 2014-12-13 10:28 Jessica程序猿 阅读(193) 评论(0) 推荐(0)
摘要:17.8 给定一个整数数组(有正数和负数),找出总和最大的连续序列,并返回总和。解法:就是求连续子序列的和最大,不过存在一个问题:假设整个数组都是负数,怎么样才是正确的行为呢?看看这个简单的数组{-3,-10,-5},一下答案每个都可以说的通:-3(假设子序列不能为空)0(子序列的长度为空)INT_... 阅读全文
posted @ 2014-12-13 09:56 Jessica程序猿 阅读(225) 评论(0) 推荐(0)
摘要:17.7 给定一个整数,打印该整数的英文描述(例如“One Thousand,Two Hundred Thirty Four”)。解法:举个例子,在转换19 323 984时,我们可以考虑分段处理,没三位转换一次,并在适当的地方插入“thousand”(千)和“million”(百万)。也即,con... 阅读全文
posted @ 2014-12-13 09:45 Jessica程序猿 阅读(175) 评论(0) 推荐(0)
摘要:17.6 给定一个整数数组,编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n越小越好,也就是说,找出符合条件的最短序列。解法:开始解题之前,让我们先确认一下答案会是什么样的。如果要找的是两个索引,这表明数组中间有一段有待排序,其中数组开头和末尾部分是排好序的。... 阅读全文
posted @ 2014-12-12 11:09 Jessica程序猿 阅读(231) 评论(0) 推荐(0)
摘要:17.5写一个函数来模拟游戏。游戏规则如下:4个槽,里面放4个球,球的颜色有4种,红(R ),黄(Y),绿(G),蓝(B)。比如, 给出一个排列RGGB,表示第一个槽放红色球,第二和第三个槽放绿色球,第四个槽放蓝色球。你要去猜这个排列。比如你可能猜排列是:YRGB。当你猜的颜色是正确的,位置也是正确... 阅读全文
posted @ 2014-12-12 08:31 Jessica程序猿 阅读(175) 评论(0) 推荐(0)
摘要:17.4 编写一个方法,找出两个数字中最大的那一个。不得使用if-else或其他比较运算符。解法:我们可以通过一步步的分析来将需要用到的if-else和比较操作符去掉:If a > b, return a; else, return b.If (a - b) using namespace std;... 阅读全文
posted @ 2014-12-11 22:04 Jessica程序猿 阅读(176) 评论(0) 推荐(0)
摘要:17.3写一个算法计算n的阶乘末尾0的个数?解答:首先,算出n的阶乘的结果再去计算末尾有多少个0这种方法是不可取的, 因为n的阶乘是一个非常大的数,分分种就会溢出。我们应当去分析, 是什么使n的阶乘结果末尾出现0。n阶乘末尾的0来自因子5和2相乘,5*2=10。因此,我们只需要计算n的阶乘里, 有多... 阅读全文
posted @ 2014-12-11 21:39 Jessica程序猿 阅读(270) 评论(0) 推荐(0)
摘要:17.2 设计一个算法,判断玩家是否赢了井字游戏。解法:假设这个检查某人是否赢得了井字游戏的函数为HasWon,那么我们第一步要向面试官确认, 这个函数是只调用一次,还是要多次频繁调用。如果是多次调用, 我们可以通过预处理来得到一个非常快速的版本。方法一:如果HasWon函数需要被频繁调用对于井字游... 阅读全文
posted @ 2014-12-11 21:04 Jessica程序猿 阅读(217) 评论(0) 推荐(0)
摘要:17.1 编写一个函数,不用临时变量,直接交换两函数。解法:方法一:这个是经典面试题,也相当直接。我们将用a0表示a的初值,b0表示b的初始值,用diff表示a0-b0的值。让我们将a>b的情形绘制在数轴上。首先,将a设为diff,即上面数轴的右边那一段。然后,b加上diff(并将结果保存在b中),... 阅读全文
posted @ 2014-12-11 20:03 Jessica程序猿 阅读(276) 评论(0) 推荐(0)
摘要:13.10 用C编写一个my2DALLoc函数,可分配二维数组。将malloc函数的调用次数降到最少,并确保可通过arr[i][j]访问该内存。解法:这道题目最简单的方法就是先开一个数组来存储指向每一行的指针, 然后再为每一行动态地分配空间。这是非常常见的动态申请二维数组空间的方法:int** My... 阅读全文
posted @ 2014-12-11 15:11 Jessica程序猿 阅读(182) 评论(0) 推荐(0)
摘要:13.9 编写支持对齐分配的malloc和free函数,分配内存时,malloc函数返回的地址必须都能被2的n次方整除。解法: 一般来说,使用malloc,我们控制不了分配的内存会在堆里哪个位置。我们只会得到一个指向内存块的指针,指针的起始地址不定。要克服这些限制条件,我们必须申请足够大的内存,要... 阅读全文
posted @ 2014-12-11 14:52 Jessica程序猿 阅读(136) 评论(0) 推荐(0)
摘要:13.8 编写一个智能指针类。智能指针是一种数据类型,一般用模板实现,模拟指针行为的同时还提供自动垃圾回收机制。它会自动记录SmartPointer对象的引用计数,一旦T类型对象的引用计数为零,就会释放该对象。解法:智能指针跟普通指针一样,但他借助自动化内存管理保证了安全性,避免了诸如悬挂指针、内存... 阅读全文
posted @ 2014-12-11 12:59 Jessica程序猿 阅读(220) 评论(0) 推荐(0)
摘要:13.7写一个函数,其中一个参数是指向Node结构的指针,返回传入数据结构的一份完全拷贝。 Node结构包含两个指针,指向另外两个Node。C++实现代码:typedef map NodeMap;Node* copy_recursive(Node *cur, NodeMap &nodeMap){ ... 阅读全文
posted @ 2014-12-11 11:38 Jessica程序猿 阅读(116) 评论(0) 推荐(0)
摘要:13.6 基类的析构函数为何要声明为virtual?解答:用对象指针来调用一个函数,有以下两种情况:如果是虚函数,会调用派生类中的版本。如果是非虚函数,会调用指针所指类型的实现版本。析构函数也会遵循以上两种情况,因为析构函数也是函数嘛,不要把它看得太特殊。 当对象出了作用域或是我们删除对象指针,析构... 阅读全文
posted @ 2014-12-09 23:10 Jessica程序猿 阅读(206) 评论(0) 推荐(0)
摘要:题目C++中名字隐藏是什么?解答让我们通过一个例子来讲解C++中的名字隐藏。在C++中,如果一个类里有一个重载的方法, 你用另一个类去继承它并重写(覆盖)那个方法。你必须重写所有的重载方法, 否则未被重写的方法会因为名字相同而被隐藏,从而使它在派生类中不可见。请看例子:class FirstClas... 阅读全文
posted @ 2014-12-09 22:47 Jessica程序猿 阅读(723) 评论(0) 推荐(0)
摘要:13.5谈谈C语言关键字”volatile”的意义(或重要性)?解答关键字volatile的作用是指示编译器,即使代码不对变量做任何改动,该变量的值仍可能被外界修改。操作系统、硬件或其他线程都可能修改该变量。该变量的值由可能遭受意料之外的修改,因此,每一次使用时,编译器都会重新从内存中获取这个值。v... 阅读全文
posted @ 2014-12-09 22:36 Jessica程序猿 阅读(205) 评论(0) 推荐(0)
摘要:13.4深拷贝和浅拷贝有什么区别,如何使用?解答浅拷贝并不复制数据,只复制指向数据的指针,因此是多个指针指向同一份数据。 深拷贝会复制原始数据,每个指针指向一份独立的数据。通过下面的代码, 可以清楚地看出它们的区别:struct Test{ char *ptr;};void shallow_c... 阅读全文
posted @ 2014-12-09 22:25 Jessica程序猿 阅读(145) 评论(0) 推荐(0)
摘要:13.3C++中的虚函数是如何工作的?解答虚函数依赖虚函数表进行工作。如果一个类中,有函数被关键词virtual进行修饰, 那么一个虚函数表就会被构建起来保存这个类中虚函数的地址。同时, 编译器会为这个类添加一个隐藏指针指向虚函数表。如果在派生类中没有重写虚函数, 那么,派生类中虚表存储的是父类虚函... 阅读全文
posted @ 2014-12-09 22:19 Jessica程序猿 阅读(169) 评论(0) 推荐(0)
摘要:13.2浅析哈希表和STL map。对比哈希表和STL map。哈希表是怎么实现的?如果输入数据规模不大, 我们可以使用什么数据结构来代替哈希表。解答对比哈希表和STL map在哈希表中,实值的存储位置由其键值对应的哈希函数值决定。因此, 存储在哈希表中的值是无序的。在哈希表中插入元素和查找元素的时... 阅读全文
posted @ 2014-12-09 22:15 Jessica程序猿 阅读(166) 评论(0) 推荐(0)
摘要:13.1 用C++写个方法,打印输出文件的最后K行。解答:一种方法是打开文件两次,第一次计算文件的行数N,第二次打开文件,跳过N-K行, 然后开始输出。如果文件很大,这种方法的时间开销会非常大。我们希望可以只打开文件一次,就可以输出文件中的最后k行。 我们可以开一个大小为k的字符串数组,然后将文件中... 阅读全文
posted @ 2014-12-09 21:52 Jessica程序猿 阅读(252) 评论(0) 推荐(0)
摘要:11.7 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上。处于实际和美观的考虑,在上面的人要比下面的人矮一点、轻一点。已知马戏团每个人的高度和重量,请编写代码计算叠罗汉最多能叠几个人。如果要保持相对顺序不变,那么不能直接排序。C++实现代码:#include#includeusing... 阅读全文
posted @ 2014-12-09 20:40 Jessica程序猿 阅读(322) 评论(0) 推荐(0)
摘要:11.6 给定M*N矩阵,每一行、每一列都按升序排序,请编写代码找出某元素。类似leetcode:Search a 2D Matrix但是与leetcode中这题不同的是下一行的第一个元素不一定大于上一行的最后一个元素。所以使用二分查找有点麻烦。解法一:通过观察我们可知:若列的开头大于x,那么x位于... 阅读全文
posted @ 2014-12-09 17:17 Jessica程序猿 阅读(157) 评论(0) 推荐(0)
摘要:11.5 有个排序后的字符串数组,其中散布着一些空字符串,编写一个方法,找出给定字符串的位置。解法:如果没有那些空字符串,就可以直接使用二分查找法。比较待查找字符串str和数组的中间元素,然后继续搜索下去。针对数组中散布一些空字符串的情形,我们可以对二分查找法稍作修改,所需的修改就是mid进行比较的... 阅读全文
posted @ 2014-12-09 16:17 Jessica程序猿 阅读(164) 评论(0) 推荐(0)
摘要:11.4 设想你有一个20GB的文件,每一行一个字符串。请说明将如何对这个文件进行排序。解法:当面试官给出20GB大小的限制时,实际上在暗示些什么。就此题而言,这表明他们不希望你将数据全部载入内存。该怎么办呢?做法是只将部分数据载入内存。我们将整个文件划分为许多块,每个块xMB,其中x是可用的内存大... 阅读全文
posted @ 2014-12-09 15:51 Jessica程序猿 阅读(219) 评论(0) 推荐(0)
摘要:11.3 给定一个排序后的数组,包含n个整数,但这个数组已被旋转很多次,次数不详。请编写代码找出数组中的某个元素。可以假定数组元素原先是按从小到大的顺序排序的。解法:可以直接从开始一个一个比较,也可以采用二分查找的方法。在经典二分查找中,我们会将x与中间元素进行比较,以确定x属于左半部分还是右半部分... 阅读全文
posted @ 2014-12-09 15:46 Jessica程序猿 阅读(276) 评论(0) 推荐(0)
摘要:11.2 编写一个方法,对字符串数组进行排序,将所有变位词1排在相邻的位置。类似leetcode:Anagrams解法:变位词:由变换某个词或短语的字母顺序构成的新的词或短语。例如,“triangle”是“integral”的变位词。此题有个要求,对数组中的字符串进行分组,将变位词排在一起。注意,除... 阅读全文
posted @ 2014-12-09 13:49 Jessica程序猿 阅读(270) 评论(0) 推荐(0)
摘要:11.1 给定两个排序后的数组A和B,其中A的末端有足够的缓冲空间容纳B。编写一个方法,将B合并入A并排序。解法:已知数组A末端有足够的缓冲,不需要再分配额外空间。程序的处理逻辑很简单,就是逐一比较A和B中的元素,并顺序插入数组,直至耗尽A和B中的所有元素。这么做的唯一问题是,如果将元素插入数组A的... 阅读全文
posted @ 2014-12-09 13:04 Jessica程序猿 阅读(193) 评论(0) 推荐(0)
摘要:9.11 给定一个布尔表达式,由0、1、&、|和^等符号组成,以及一个想要的布尔结果result,实现一个函数,算出有几种括号的放法可使该表达式得出result值。解法:跟其他递归问题一样,此题的关键在于找出问题与子问题之间的关系。假设函数int f(expression,result)会返回所有值... 阅读全文
posted @ 2014-12-09 11:06 Jessica程序猿 阅读(326) 评论(0) 推荐(0)
摘要:A peak element is an element that is greater than its neighbors.Given an input array wherenum[i] ≠ num[i+1], find a peak element and return its index.... 阅读全文
posted @ 2014-12-08 17:25 Jessica程序猿 阅读(373) 评论(0) 推荐(0)
摘要:9.10 给你一堆n个箱子,箱子宽w,高h,深d。箱子不能翻转,将箱子堆起来时,下面箱子的宽度、高度和深度必须大于上面的箱子。实现一个方法,搭出最高的一堆箱子,箱堆的高度为每个箱子高度的总和。解法:要解决此题,我们需要找到不同子问题之间的关系。假设我们又以下这些箱子:b1、b2,...,bn。能够堆... 阅读全文
posted @ 2014-12-08 16:16 Jessica程序猿 阅读(770) 评论(7) 推荐(0)
摘要:9.9 设计一种算法,打印八皇后在8*8棋盘上的各种摆法,其中每个皇后都不同行、不同列,也不在对角线上。这里的“对角线”指的是所有的对角线,不只是平分整个棋盘的那两条对角线。类似leetcode:N-Queens回溯法的实现代码:#include#include#includeusing names... 阅读全文
posted @ 2014-12-08 13:24 Jessica程序猿 阅读(261) 评论(0) 推荐(0)
摘要:9.8 给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码就是n分有几种表示法。解法:使用回溯法进行解决,实际上就是一个类似枚举的过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。C++实现代码:#include#includeusing ... 阅读全文
posted @ 2014-12-08 11:48 Jessica程序猿 阅读(306) 评论(0) 推荐(0)
摘要:9.7 编写函数,实现许多图片编辑软件都支持的“填充颜色”功能。给定一个屏幕(以二维数组表示,元素为颜色值)、一个点和一个新的颜色值,将新颜色值填入这个点的周围区域,直到原来的颜色值全部改变。类似leetcode:Surrounded Regions解法:首先,想象一下这个方法是怎么回事。假设要对一... 阅读全文
posted @ 2014-12-08 10:04 Jessica程序猿 阅读(257) 评论(0) 推荐(0)
摘要:9.6 实现一种算法,打印n对括号的全部有效组合(即左右括号正确配对)。类似leetcode:Generate Parentheses解法:从头开始构造字符串,从而避免出现重复字符串。在这个解法中,逐一加入左括号和右括号,只有字符串仍然有效。每次递归调用,都会有个索引指向字符串的某个字符。我们需要选... 阅读全文
posted @ 2014-12-08 08:36 Jessica程序猿 阅读(253) 评论(0) 推荐(0)
摘要:9.5 编写一个方法,确定某字符串的所有排列组合。类似leetcode:Permutations解法:跟许多递归问题一样,简单构造法非常管用。假设有个字符串S,以字符序列a1a2a...an表示。终止条件:n=1S=a1,只有一种排列组合,即字符串a1情况:n=2S=a1a2 有两种排列组合a1a2... 阅读全文
posted @ 2014-12-07 23:30 Jessica程序猿 阅读(195) 评论(0) 推荐(0)
摘要:9.4 编写一个方法,返回某集合的所有子集。类似leetcode:Subsets解法:解决这个问题之前,我们先要对时间和空间复杂度有个合理的评估。一个集合会有多少子集?我们可以这么计算,生成了一个子集时,每个元素都可以“选择”在或者不在这个子集中。也就是说,第一个元素有两个选择:它要么在集合中,要么... 阅读全文
posted @ 2014-12-07 21:50 Jessica程序猿 阅读(278) 评论(0) 推荐(0)
摘要:9.3 在数组A[0...n-1]中,有所谓的魔术索引,满足条件A[i]=i。给定一个有序整数数组,元素值给不相同,编写一个方法,在数组A中找出一个魔术索引,若存在的话。进阶:如果数组元素有重复值,又该如何处理。?解法一,选择蛮力法,我们可以直接迭代访问整个数组,找出符号条件的元素。int magi... 阅读全文
posted @ 2014-12-07 20:27 Jessica程序猿 阅读(446) 评论(0) 推荐(0)
摘要:9.2 设想有个机器人坐在X*Y网格的左上角,只能向右、向下移动。机器人从(0,0)到(X,Y)有多少种走法?进阶:假设有些点为“禁区”,机器人不能踏足。设计一种算法,找到一条路径,让机器人从左上角移动到右下角。类似leetcode:Unique Paths和Unique Paths II解法:我们... 阅读全文
posted @ 2014-12-07 18:46 Jessica程序猿 阅读(306) 评论(0) 推荐(0)
摘要:9.1 有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一个方法,计算小孩有多少种上楼梯的方法。解法:我们可以采用自上而下的方式来解决这个问题。小孩上楼梯的最后一步,也就是抵达第n阶的那一步,可能走1阶、2阶或3阶。也就是说,最后一步可能是从第n-1阶往上走1阶、从n-2阶往... 阅读全文
posted @ 2014-12-07 16:11 Jessica程序猿 阅读(380) 评论(0) 推荐(0)
摘要:7.7 有些数的素因子只有3、5、7,请设计一个算法,找出其中第k个数。解法:首先,我们可以将满足条件的前几个数列出来,以此寻找解题思路。一种简单的思路就是对于已经列出的数,我们依次去乘以3,5,7得到一组数 然后找出最小且还没有列出的数,加入到这个列表。然后重复上面的步骤: 乘以3,5,7,找出最... 阅读全文
posted @ 2014-12-07 11:30 Jessica程序猿 阅读(308) 评论(0) 推荐(0)
摘要:7.6 在二维平面上,有一些点,请找出经过点数最多的那条线。解法:类似于leetcode:Max Points on a Line我们只需在任意两点之间“画”一条无限长的直线(也即不是线段),并利用散列表追踪哪条直线出现的次数最多。这种做法的时间复杂度O(n^2),因为一共有n^2条线段。通过将每一... 阅读全文
posted @ 2014-12-07 11:00 Jessica程序猿 阅读(273) 评论(0) 推荐(0)
摘要:7.5 在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。假定正方形的上下两条边与x轴平行。解法:要将两个正方形对半分,这条线必须连接两个正方形的中心点。利用slope=(y1-y2)/(x1-x2)就能算出斜率。以两个中心点算出斜率后,就能以同一公式求得线段的起点和终点。 阅读全文
posted @ 2014-12-07 10:44 Jessica程序猿 阅读(149) 评论(0) 推荐(0)
摘要:7.3 给定直角坐标系上的两条线,确定这两条线会不会相交。解法:此题有很多不确定的地方:两条线的格式是什么?两条线实为同一条怎么处理?这些含糊不清的地方最好跟面试官讨论一下。下面将做出以下假设:若两条线是相同的(斜率和y轴截距相等),则认为这两条线相交;两条线若不平行则必相交。因此,要检查两条线相交... 阅读全文
posted @ 2014-12-06 22:27 Jessica程序猿 阅读(161) 评论(0) 推荐(0)
摘要:5.1 写程序使整数N中第i位到第j位的值与整数M中的相同。题目给定两个32位的数,N和M,还有两个指示位的数,i和j。 写程序使得N中第i位到第j位的值与M中的相同(即:M变成N的子串且位于N的第i位和第j位之间)例子:输入: N = 10000000000, M = 10101, i = 2, ... 阅读全文
posted @ 2014-12-06 17:18 Jessica程序猿 阅读(222) 评论(0) 推荐(0)
摘要:4.9 给定一颗二叉树,其中每个结点都含有一个数值。设计一个算法,打印结点数值总和等于某个给定值的所有路径。注意,路径不一定非得从二叉树的根节点或叶子节点开始或结束。类似于leetcode:Path Sum IIC++实现代码:(使用了双重的递归)对于不含有parent指针域时。#include#i... 阅读全文
posted @ 2014-12-06 15:23 Jessica程序猿 阅读(215) 评论(0) 推荐(0)
摘要:4.8 你有两棵非常大的二叉树:T1,有几百万个结点;T2,有几百个结点。设计一个算法,判断T2是否为T1的子树。如果T1有这么一个结点n,其子树与T2一模一样,则T2C++实现代码:#include#includeusing namespace std;//Definition for binar... 阅读全文
posted @ 2014-12-06 14:28 Jessica程序猿 阅读(230) 评论(2) 推荐(0)
摘要:4.7 设计并实现一个算法,找出二叉树中某两个结点的第一个共同祖先。不得将额外的结点储存在另外的数据结构中。注意:这不一定是二叉查找树。解答本题的关键应当是在Avoid storing additional nodes in a data structure 这句话上。我的理解是,不允许开额外的空间... 阅读全文
posted @ 2014-12-06 14:04 Jessica程序猿 阅读(257) 评论(0) 推荐(0)
摘要:4.6 设计一个算法,找出二叉查找树中指定结点的“下一个”结点(也即中序后继)。可以假定每个结点都含有指向父节点的连接。思路:有两种情况:1)如果该结点存在右子树,则中序后继即为右子树中最小的结点。 2)如果该结点不存在右子树,则后继结点为使得所给结点在其祖先结点的左子树上的第一个祖先结点... 阅读全文
posted @ 2014-12-06 13:03 Jessica程序猿 阅读(255) 评论(0) 推荐(0)
摘要:4.5 实现一个函数,检查一棵二叉树是否为二叉查找树。参考:http://blog.csdn.net/sgbfblog/article/details/7771096C++实现代码:#include#include#includeusing namespace std;struct TreeNode... 阅读全文
posted @ 2014-12-06 11:44 Jessica程序猿 阅读(180) 评论(0) 推荐(0)
摘要:4.4 给定一棵二叉树,设计一个算法,创建含有某一深度上所有结点的链表(比如,若一棵树的深度为D,则会创建D个链表)。类似于leetcode:Populating Next Right Pointers in Each Node II解答这道题目本质上是个BFS,也就是说,如果已经构建了第i层结点的... 阅读全文
posted @ 2014-12-06 10:59 Jessica程序猿 阅读(227) 评论(0) 推荐(0)
摘要:4.3 给定一个有序整数数组,元素各不相同按升序排列,编写一个算法,创建一棵高度最小的二叉查找树。解答想要使构建出来的二叉树高度最小,那么对于任意结点, 它的左子树和右子树的结点数量应该相当。比如,当我们将一个数放在根结点, 那么理想情况是,我们把数组中剩下的数对半分,一半放在根结点的左子树, 另一... 阅读全文
posted @ 2014-12-06 10:24 Jessica程序猿 阅读(235) 评论(0) 推荐(0)
摘要:4.2 给定有向图,设计一个算法,找出两个结点之间是否存在一条路径。解答根据题意,给定一个有向图和起点终点,判断从起点开始,是否存在一条路径可以到达终点。 考查的就是图的遍历,从起点开始遍历该图,如果能访问到终点, 则说明起点与终点间存在路径。稍微修改一下遍历算法即可。使用广度优先遍历实现代码:#i... 阅读全文
posted @ 2014-12-06 09:50 Jessica程序猿 阅读(191) 评论(0) 推荐(0)
摘要:4.1 实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个结点,其两颗子树的高度差不超过1.C++实现代码:#include#include#includeusing namespace std;//Definition for binary treestruct TreeN... 阅读全文
posted @ 2014-12-05 21:30 Jessica程序猿 阅读(276) 评论(0) 推荐(0)
摘要:迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。基本思想 通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。 此外,引进两个集合S和U。S的作... 阅读全文
posted @ 2014-12-05 20:57 Jessica程序猿 阅读(3975) 评论(5) 推荐(2)
摘要:普里姆(Prim)算法,和克鲁斯卡尔算法一样,是用来求加权连通图的最小生成树的算法。 基本思想 对于图G而言,V是所有顶点的集合;现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。 从所有uЄU,vЄ(V-U) (V-U表示出去U的所有顶点)的边中选取权 阅读全文
posted @ 2014-12-05 20:08 Jessica程序猿 阅读(17232) 评论(2) 推荐(0)
摘要:最小生成树在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树。例如,对于如上图G4所示的连通网可以有多棵权值总和不相同的生成树。克鲁斯卡尔算法介绍克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法... 阅读全文
posted @ 2014-12-05 19:22 Jessica程序猿 阅读(5728) 评论(0) 推荐(1)
摘要:拓扑排序介绍拓扑排序(Topological Order)是指,将一个有向无环图(Directed Acyclic Graph简称DAG)进行排序进而得到一个有序的线性序列。这样说,可能理解起来比较抽象。下面通过简单的例子进行说明!例如,一个项目包括A、B、C、D四个子部分来完成,并且A依赖于B和D... 阅读全文
posted @ 2014-12-05 13:20 Jessica程序猿 阅读(709) 评论(0) 推荐(1)
摘要:1. 广度优先搜索介绍广度优先搜索算法(Breadth First Search),又称为"宽度优先搜索"或"横向优先搜索",简称BFS。它的思想是:从图中某顶点v出发,在访问了v之后依次访问v的各个未曾访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使得“先被访问的顶点的邻接点先于... 阅读全文
posted @ 2014-12-05 11:46 Jessica程序猿 阅读(2821) 评论(0) 推荐(0)
摘要:1. 深度优先搜索介绍图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的顶点都被访问到。 若此时尚... 阅读全文
posted @ 2014-12-05 11:20 Jessica程序猿 阅读(2809) 评论(1) 推荐(0)
摘要:邻接表有向图是指通过邻接表表示的有向图。上面的图G2包含了"A,B,C,D,E,F,G"共7个顶点,而且包含了",,,,,,,,"共9条边。上图右边的矩阵是G2在内存中的邻接表示意图。每一个顶点都包含一条链表,该链表记录了"该顶点所对应的出边的另一个顶点的序号"。例如,第1个顶点(顶点B)包含的链表... 阅读全文
posted @ 2014-12-05 10:40 Jessica程序猿 阅读(2786) 评论(0) 推荐(0)
摘要:邻接矩阵有向图的介绍邻接矩阵有向图是指通过邻接矩阵表示的有向图。上面的图G2包含了"A,B,C,D,E,F,G"共7个顶点,而且包含了",,,,,,,,"共9条边。上图右边的矩阵是G2在内存中的邻接矩阵示意图。A[i][j]=1表示第i个顶点到第j个顶点是一条边,A[i][j]=0则表示不是一条边;... 阅读全文
posted @ 2014-12-05 10:13 Jessica程序猿 阅读(3377) 评论(0) 推荐(0)
摘要:第一篇:typedef struct与struct的区别1. 基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确... 阅读全文
posted @ 2014-12-05 09:58 Jessica程序猿 阅读(2096) 评论(0) 推荐(0)
摘要:邻接表无向图是指通过邻接表表示的无向图。上面的图G1包含了"A,B,C,D,E,F,G"共7个顶点,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7条边。上图右边的矩阵是G1在内存中的邻接表示意图。每一个顶点都包含一条链表,该链表记录了"该顶点的邻... 阅读全文
posted @ 2014-12-05 09:40 Jessica程序猿 阅读(4359) 评论(0) 推荐(0)
摘要:邻接矩阵无向图是指通过邻接矩阵表示的无向图。上面的图G1包含了"A,B,C,D,E,F,G"共7个顶点,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7条边。由于这是无向图,所以边(A,C)和边(C,A)是同一条边;这里列举边时,是按照字母先后顺序... 阅读全文
posted @ 2014-12-04 23:22 Jessica程序猿 阅读(2726) 评论(0) 推荐(0)
摘要:1. 图的定义定义:图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的;其中,点通常被成为"顶点(vertex)",而点与点之间的连线则被成为"边或弧"(edege)。通常记为,G=(V,E)。2. 图的种类根据边是否有方向,将图可以划分为:无向图和有向图。2.1 无向... 阅读全文
posted @ 2014-12-04 23:18 Jessica程序猿 阅读(411) 评论(0) 推荐(0)
摘要:3.6 编写程序,按升序对栈进行排序(即最大元素位于栈顶)。最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中(如数组)。该栈支持如下操作:push、pop、peek和isEmpty。解答使用一个附加的栈来模拟插入排序。将原栈中的数据依次出栈与附加栈中的栈顶元素比较, 如果附加栈... 阅读全文
posted @ 2014-12-04 20:22 Jessica程序猿 阅读(165) 评论(0) 推荐(0)
摘要:3.5 实现一个MyQueue类,该类用两个栈来实现一个队列。解答队列是先进先出的数据结构(FIFO),栈是先进后出的数据结构(FILO), 用两个栈来实现队列的最简单方式是:进入队列则往第一个栈压栈, 出队列如果第二个栈不为空,则直接从第二个栈出队列,否则将第一个栈的数据依次压入第二个栈,然后出栈... 阅读全文
posted @ 2014-12-04 20:00 Jessica程序猿 阅读(151) 评论(0) 推荐(0)
摘要:3.4 在经典问题汉诺塔中,有3根柱子及N个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自底向上从大到小依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时有以下限制:每次只能移动一个盘子;盘子只能从柱子顶端滑出移到下一根柱子;盘子只能叠在比它大的盘子上。请运用栈... 阅读全文
posted @ 2014-12-04 17:30 Jessica程序猿 阅读(260) 评论(0) 推荐(0)
摘要:3.3栈就像叠盘子,当盘子叠得太高时,就会倾斜倒下。因此,在真实的世界中,当一叠盘子 (栈)超过了一定的高度时,我们就会另起一堆,再从头叠起。实现数据结构SetOfStacks 来模拟这种情况。SetOfStacks由几个栈组成,当前一栈超出容量时,需要创建一个新的栈 来存放数据。SetOfStac... 阅读全文
posted @ 2014-12-04 16:52 Jessica程序猿 阅读(281) 评论(0) 推荐(0)
摘要:3.2 请设计一个栈,除pop与push方法,还支持min方法,可返回栈元素中的最小值。push、pop和min三个方法的时间复杂度必须为O(1)。我们假设除了用一个栈s1来保存数据,还用另一个栈s2来保存这些非冗余最小值。那么, 当我们将数据压到要s1时,同时将它和s2的栈顶元素比较,如果不大于s... 阅读全文
posted @ 2014-12-04 11:12 Jessica程序猿 阅读(301) 评论(0) 推荐(0)
摘要:3.1 描述如何只用一个数组来实现三个栈。解答我们可以很容易地用一个数组来实现一个栈,压栈就往数组里插入值,栈顶指针加1; 出栈就直接将栈顶指针减1;取栈顶值就把栈顶指针指向的单元的值返回; 判断是否为空就直接看栈顶指针是否为-1。如果要在一个数组里实现3个栈,可以将该数组分为3个部分。如果我们并不... 阅读全文
posted @ 2014-12-04 10:03 Jessica程序猿 阅读(259) 评论(0) 推荐(0)
摘要:2.7 编写一个函数,检查链表是否为回文。思路:1)可以利用链表中的元素采用头插法创建一个新的链表,然后比较两个链表的元素是否相等。 2)利用快慢指针,将链表后半部分逆转之后,比较前半部分与后半部分是否相等。 3)利用栈将链表中的元素保存,然后弹出与链表中元素比较。C++实现代码:#inc... 阅读全文
posted @ 2014-12-04 08:45 Jessica程序猿 阅读(180) 评论(0) 推荐(0)
摘要:2.6 给定一个有环链表,实现一个算法返回环路的开头结点。类似leetcode中Linked List Cycle IIC++实现代码:#include#includeusing namespace std;struct ListNode{ int val; ListNode *next... 阅读全文
posted @ 2014-12-03 23:14 Jessica程序猿 阅读(127) 评论(0) 推荐(0)
摘要:2.5 给定两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例:输入: (7->1->6)+(5->9->2),即617+295.输出:2->1->9,即912.进阶:假设这些数位是正向存放的示例:输入:(6... 阅读全文
posted @ 2014-12-03 22:52 Jessica程序猿 阅读(330) 评论(0) 推荐(0)
摘要:2.4 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前。思路:将小于的结点还是保存在原来的链表中,将大于等于x的结点加入一个新的链表,最后将这两个链表链接起来。C++实现代码:#include#includeusing namespace std;struc... 阅读全文
posted @ 2014-12-03 22:06 Jessica程序猿 阅读(192) 评论(0) 推荐(0)
摘要:2.3 实现一个算法,删除单向链表中间的某个结点,假设你只能访问该结点。(即你不知道头结点)这个问题的关键是你只有一个指向要删除结点的指针,如果直接删除它,这条链表就断了。 但你又没办法得到该结点之前结点的指针,是的,它连头结点也不提供。在这种情况下, 你只能另觅他径。重新审视一下这个问题,我们只能... 阅读全文
posted @ 2014-12-03 21:14 Jessica程序猿 阅读(214) 评论(0) 推荐(0)
摘要:2.2 实现一个算法,找到单链表中倒数第k个节点。这道题的考点在于我们怎么在一个单链表中找到倒数第n个元素? 由于是单链表,所以我们没办法从最后一个元素数起,然后数n个得到答案。 但这种最直观的思路显然是没错的,那我们有没有办法通过别的方式,从最后的元素数起数 n个来得到我们想要的答案呢。这个次序颠... 阅读全文
posted @ 2014-12-03 20:59 Jessica程序猿 阅读(190) 评论(0) 推荐(0)
摘要:2.1 编写代码,移除未排序链表中的重复节点。不使用临时缓存:如果不允许使用临时的缓存(即不能使用额外的存储空间),那需要两个指针, 当第一个指针指向某个元素时,第二个指针把该元素后面与它相同的元素删除, 时间复杂度O(n2)。C++实现代码:#include#includeusing namesp... 阅读全文
posted @ 2014-12-03 20:32 Jessica程序猿 阅读(224) 评论(0) 推荐(0)
摘要:1.8 假定有一个方法isSubstring,可检查一个单词是否为其他字符串的子串。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次isSubstring。旋转字符串:”waterbottle”是”erbottlewat”的旋转字符串。解答题目说我们使用一次isSub... 阅读全文
posted @ 2014-12-03 19:28 Jessica程序猿 阅读(198) 评论(0) 推荐(0)
摘要:1.7 编写一个算法,若M*N矩阵中某个元素为0,则将其所在的行与列清零。类似于leetcode中的Set Matrix ZeroesC++实现代码:#include#includeusing namespace std;void setMatricZero(vector > &matrix){ ... 阅读全文
posted @ 2014-12-03 18:42 Jessica程序猿 阅读(180) 评论(0) 推荐(0)
摘要:1.6 给定一幅由N*N矩阵表示的如下,其中每个像素的大小为4个字节,编写一个方法,将图像旋转90度。不占用额外内存空间能否做到?类似leetcode:Rotate Image思路: 我们这里以逆时针旋转为例(写代码时比较容易理解,顺时针旋转的实现思想相似),可以先将原矩阵以主对角线为对称轴,交换... 阅读全文
posted @ 2014-12-03 18:02 Jessica程序猿 阅读(130) 评论(0) 推荐(0)
摘要:1.5 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串”aabcccccaaa“会变成”a2b1c5a3“。若”压缩“后的字符串没有变短,则返回原先的字符串。类似 leetcode中解法:Count and say.C++实现代码:#include#includeusi... 阅读全文
posted @ 2014-12-03 17:06 Jessica程序猿 阅读(158) 评论(0) 推荐(0)
摘要:1.4 编写一个方法,将字符串中的空格全部替换为“%20“。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的”真实“长度。C++实现代码:#include#include#includeusing namespace std;string replacespace(string str){... 阅读全文
posted @ 2014-12-03 16:23 Jessica程序猿 阅读(104) 评论(0) 推荐(0)
摘要:1.3 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排序后,能否变成另一个字符串。C++实现代码:#include#include#includeusing namespace std;bool isEqual(string s1,string s2){ map mp; if... 阅读全文
posted @ 2014-12-03 15:47 Jessica程序猿 阅读(116) 评论(0) 推荐(0)
摘要:1.2 用C或C++实现void reverse(char *str)函数,即反转一个null结尾的字符串。C++实现代码:#include#includeusing namespace std;/*反转字符串*/void reverse(char *str){ if(!str) ... 阅读全文
posted @ 2014-12-03 11:51 Jessica程序猿 阅读(171) 评论(0) 推荐(0)
摘要:1.1 实现一个算法,确定一个字符串的所有字符是否全部不同。假设不允许使用额外的数据结构,又该如何处理?C++实现:#include#include#includeusing namespace std;/*判断是否有重复字符*/bool unqString(string s){ if(s.e... 阅读全文
posted @ 2014-12-03 11:07 Jessica程序猿 阅读(211) 评论(0) 推荐(0)
摘要:这里主要谈及强连通分量(以下简称SCC,strongly connected component)三种常见的求法(以下涉及的图均为有向图),即Kosaraju、Tarjan和Gabow。三种算法背后的基础思想都是DFS,只是它们通过DFS获得了不同的信息。各位大哥大姐继续往下读之前,最好对DFS相关... 阅读全文
posted @ 2014-12-02 22:17 Jessica程序猿 阅读(3804) 评论(0) 推荐(0)
摘要:Follow up for problem "Populating Next Right Pointers in Each Node".What if the given tree could be any binary tree? Would your previous solution stil... 阅读全文
posted @ 2014-12-02 16:33 Jessica程序猿 阅读(174) 评论(0) 推荐(0)
摘要:Implement regular expression matching with support for'.'and'*'.'.' Matches any single character.'*' Matches zero or more of the preceding element.The... 阅读全文
posted @ 2014-12-02 14:11 Jessica程序猿 阅读(171) 评论(0) 推荐(0)
摘要:Given a stringsand a dictionary of wordsdict, add spaces insto construct a sentence where each word is a valid dictionary word.Return all such possibl... 阅读全文
posted @ 2014-12-02 11:20 Jessica程序猿 阅读(295) 评论(0) 推荐(0)
摘要:You are given a string,S, and a list of words,L, that are all of the same length. Find all starting indices of substring(s) in S that is a concatenati... 阅读全文
posted @ 2014-12-02 09:35 Jessica程序猿 阅读(247) 评论(0) 推荐(0)
摘要:Given an absolute path for a file (Unix-style), simplify it.For example,path="/home/", =>"/home"path="/a/./b/../../c/", =>"/c"click to show corner cas... 阅读全文
posted @ 2014-12-01 23:15 Jessica程序猿 阅读(281) 评论(0) 推荐(0)
摘要:Given a strings, partitionssuch that every substring of the partition is a palindrome.Return the minimum cuts needed for a palindrome partitioning ofs... 阅读全文
posted @ 2014-12-01 22:34 Jessica程序猿 阅读(247) 评论(0) 推荐(0)
摘要:Given a matrix ofmxnelements (mrows,ncolumns), return all elements of the matrix in spiral order.For example,Given the following matrix:[ [ 1, 2, 3 ],... 阅读全文
posted @ 2014-12-01 20:25 Jessica程序猿 阅读(201) 评论(0) 推荐(0)
摘要:动态规划Given a stringS, find the longest palindromic substring inS. You may assume that the maximum length ofSis 1000, and there exists one unique longes... 阅读全文
posted @ 2014-12-01 19:48 Jessica程序猿 阅读(210) 评论(0) 推荐(0)
摘要:Write a program to solve a Sudoku puzzle by filling the empty cells.Empty cells are indicated by the character'.'.You may assume that there will be on... 阅读全文
posted @ 2014-12-01 16:25 Jessica程序猿 阅读(324) 评论(0) 推荐(0)
摘要:Given a collection of numbers that might contain duplicates, return all possible unique permutations.For example,[1,1,2]have the following unique perm... 阅读全文
posted @ 2014-12-01 14:18 Jessica程序猿 阅读(203) 评论(0) 推荐(0)
摘要:Given two binary strings, return their sum (also a binary string).For example,a ="11"b ="1"Return"100".思路:逐位相加,进位保留在和的下一位中。C++实现代码:#include#include#in... 阅读全文
posted @ 2014-12-01 11:20 Jessica程序猿 阅读(218) 评论(0) 推荐(0)
摘要:Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.Question:Given an integer, convert it to a r... 阅读全文
posted @ 2014-12-01 11:05 Jessica程序猿 阅读(179) 评论(0) 推荐(0)
摘要:Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.首先简单介绍一下罗马数字,一下摘自维基百科罗马数字共有7个,即I(1)、V(5)、X(1... 阅读全文
posted @ 2014-12-01 10:35 Jessica程序猿 阅读(209) 评论(0) 推荐(0)