- 博客(244)
- 收藏
- 关注
原创 A家面经
Round 1 (Written)1. Given an array, output an array where every index contains nearest greatest element to that element on right side.2. Program to convert sorted array to Binary Search Tree3.
2014-02-27 14:52:15
1557
原创 L家面经
1. 实现一个Hashmap,考虑多线程环境;2.given the list {{1,1},2,{1,1}},返回10……因为,(four 1's at depth 2, one 2 at depth 1). 给定 {1,{4,{6}}} ,返回27……因为, (one 1 at depth 1, one 4at depth 2, and one 6 at depth 3)
2014-02-26 15:03:27
1438
原创 [各种面试题] 树的序列化和反序列化
树的序列化和反序列化这里使用的是Leetcode上的层序遍历的序列化的方法。string serialize(TreeNode* root){ string seq; queue Q; Q.push(root); while(!Q.empty()) { TreeNode* cur=Q.front(); Q.pop(); if(cur==NULL) seq.
2013-10-20 22:31:53
2711
原创 [各种面试题] 堆的实现
比较常规的题,试着写了下。int heap[100];int n;void adjust_down(int rt){ if(rtn) return; if ( rt*2>n ) return; else { int val=heap[rt<<1]; int child=rt<<1; if(rt*2+1<=n&&heap[rt*2+1]<val) {
2013-10-20 21:52:31
1458
原创 [各种面试题] 删除字符中的b和ac
删除字符中的b和ac删除字符分析原题删除字符串中的“b”和“ac”,需要满足如下的条件:1. 字符串只能遍历一次2. 不能够使用额外的空间例如:1. acbac ==> ""2. aaac ==> aa3. ababac ==> aa4. bbbbd ==> d进一步思考:如何处理aaccac呢,需要做哪些改变呢?in
2013-10-20 18:49:59
3357
原创 [各种面试题] 和大于S的最短子序列
和大于S的最短子序列给定长度为n的整数数列:a0,a1,..,an-1,以及整数S。这个数列会有连续的子序列的整数总和大于S的,求这些数列中,最小的长度。int findShortest2(vector& num,int s){ int n=num.size(); queue Q; int ans=n+1,qSum=0; for(int i=0;i<n;i++) {
2013-10-20 16:48:11
2926
转载 [智力题] 用信息熵解决天平跟毒药问题
用信息熵解决天平跟毒药问题才发现信息熵好神奇。。。http://blog.sciencenet.cn/blog-677221-669159.html
2013-10-20 11:52:20
1266
原创 [各种面试题] 等长链表单扫描求和
等长链表单扫描求和两个单链表(singly linked list),每一个节点里面一个0-9的数字, 输入就相当于两个大数了。然后返回这两个数的和(一个新list)。这两个输入的list 长度相等。 要求是:不用递归。要求算法在最好的情况下,只遍历两个list一次, 最差的情况下两遍。下面这个方法也只是看上去很美,其实也不是遍历了一遍,一前一后两个指针不也遍历了两遍吗。所
2013-10-19 21:20:08
1167
原创 [各种面试题] 请用Read4实现Read
请用Read4实现ReadF家的面试题,题意不太容易懂,大概就是有个read4每次读4字节,然后要实现一个int read(int size,char* buffer) 这样的函数。int read(int size,char* buffer){ assert(size>0&&buffer); static char extra[4]; static int extra_c
2013-10-19 16:54:05
3304
原创 [Leetcode] Word Break、Word BreakII
Word BreakGiven a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words.For example, givens = "leetcode",
2013-10-19 13:42:43
7819
转载 [各种面试题] 小朋友拿糖果
小朋友拿数据http://www.itmian4.com/forum.php?mod=viewthread&tid=1133有两个小朋友,玩一个游戏,游戏的内容是:有一个数组,只有头和尾可以取数据,一次只能取得一个,谁拿到的数据和最大谁就赢了。现在假设两个小孩都足够聪明。你能否求出第一个小孩,取得的和是多少分析:首先让我想到的是动态规划,然后试图给出公式。不管哪个小孩,我们用dp[j]
2013-10-17 20:34:55
1475
原创 [各种面试题] 第K大的拥有个数不超过1的字符串
微策略的一道笔试题:0和1的字符串,要求找出所有1个数不超过k个的n长度的字符串中第I大的 有没有什么比从小到大遍历,然后数1个数是否符合条件更好的办法? 举几个例子就会发现,其实就是求I的二进制表示:比如 I=1 : 1I=2: 10I=7: 111所以下面就不讲了。
2013-10-15 14:42:16
1192
原创 [各种面试题] 匹配的字符串模式的个数
今天AMAZON的一道题,其实数据很弱,直接暴力都能过的。然后第一反应是用字典树,就是如果匹配到*号的时候,就把一层都往下搜索一遍。然后第二反应是用KMP,这样复杂度是O(n * (n+m ) )的。直接字符串读取一行还没弄出来。囧。#include#include#include#includeusing namespace std;bool isMatc
2013-10-15 14:26:15
1270
转载 [各种面试题] 找出三个只出现一次的数
题目:一个数组中有三个数字a、b、c只出现一次,其他数字都出现了两次。请找出三个只出现一次的数字。http://zhedahht.blog.163.com/blog/static/25411174201283084246412/分析:在博客http://zhedahht.blog.163.com/blog/static/2541117420071128950682/中我们讨论了
2013-10-15 13:12:18
1021
转载 [各种面试题] 子序列的个数、排列木桩
来自:http://blog.csdn.net/thebestdavid/article/details/11908961注意这里是求子序列的个数。子序列的个数题目详情: 子序列的定义:对于一个序列a=a[1],a[2],......a[n],则非空序列a'=a[p1],a[p2]......a[pm]为a的一个子序列,其中1例如:4,14,2,3和
2013-10-14 22:10:05
1069
转载 [各种面试题] 整数划分问题
http://www.cnblogs.com/xiaoxian1369/archive/2011/09/12/2174212.html:整数划分 --- 一个老生长谈的问题: 1) 练练组合数学能力. 2) 练练递归思想 3) 练练DP 总之是一道经典的不能再经典的题目: 这道好题求: 1. 将n划分成若干正整数之和的划分数。 2. 将
2013-10-13 21:21:11
4299
原创 [各种面试题] 最长重复子串-后缀数组
正好练习写一下后缀数组。#include#include#include#includeusing namespace std;struct node{ char* s; int start; node(char* ss,int t):s(ss),start(t){} bool operator<(const node& oth)const { ret
2013-10-11 18:07:17
926
原创 [各种面试题] 交叉大小的序列
这是G家的面试题:首先给你一个字符序列,比如 2,1 5,4 6 然后让你生成这么一个序列 ,其中 s1 s3 s5 这个还比较好说咯,把原来的序列排序,然后把后一半的数字插入到前一半的中间,就能得到了。你以为就完了吗,当然没有。接着会问你,怎么把全部的这种序列排出来。巧妙的生成我还想不到,我就用了个比较直观暴力的回溯来做了,每次选取一个没用过的数字到当前位置就好
2013-10-11 15:32:51
854
原创 [各种面试题] N个点来回路径最小
N个点来回路径最小:2013年Hulu面试中出现过。二维平面上有n个点,已按照x坐标从左到右排序(所有点的x坐标均不同),存放在数组points中。需要从最左边的点出发,先向右扫描访问一些点,到达最右边的点,然后再向左扫描,访问第一次没有访问的点,最后回到最左边的点。扫描过程中经过的总的欧式距离要最小。返回这个最小的欧式距离。样例:points
2013-10-09 20:13:47
3126
原创 [LeetCode] Palindrome Partitioning
Palindrome Partitioning Given a string s, partition s such that every substring of the partition is a palindrome.Return all possible palindrome partitioning of s.For example, given
2013-10-08 23:05:23
875
原创 [LeetCode] Palindrome Partitioning II
Palindrome Partitioning IIGiven a string s, partition s such that every substring of the partition is a palindrome.Return the minimum cuts needed for a palindrome partitioning of s
2013-10-08 22:56:22
744
原创 [各种面试题] 棋盘寻宝扩展
题目描述:现在有一个8*8的棋盘,上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于100),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角。从棋盘的左上角移动到右下角的时候的,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,但是拿到的所有的礼物的价值之和不大于一个限定值limit,请设计一个算
2013-10-08 20:20:16
1498
转载 [各种面试题] 矩阵覆盖求面积或者周长或者并的面积
首先求覆盖面积有两种方法:一是先离散化,然后分成 n*m个小格子,然后读入所有矩形,把矩形包含的所有小格子染色,最后统计被染色的格子的面积求和。二是用线段树+扫描线,很巧的方法,但是别人的代码我没有看懂。http://blog.csdn.net/dooder_daodao/article/details/6334169贴一个离散化的代码过来:#include#incl
2013-10-08 12:25:30
1975
转载 [各种面试题] 碰撞检测
来先个矩阵相交的:矩阵相交的条件是 ( P1,P2), (P3,P4 ),两个矩形,满足 pp= (max(p1.x,p3.x),max(p1.y,p3.y)), pq=( min(p2.x,p4.x), min (p2.y,p4.y) )那么相交的条件是 pp.x然后是线段相交的:http://blog.csdn.net/greyant/article/
2013-10-08 10:31:30
1043
原创 [各种面试题] 两条路径的最大收获
题目不太记得清了,大意是有个MXN的棋盘,然后每个格子上有一个价值,需要从左上角走到右下角再走回来,但每个格子只能走一次,请问来回的最大收获是多少。找了个NOIP的原题:题目链接: http://soj.me/1767考查从 (1,1)到(m,n)找两条不相交的路径使得它们的权值和最大。 法1:动态规划 设 f [ k ][ i ][ j ] 表
2013-10-08 09:41:29
1622
原创 [各种面试题] 树的最小高度
题目描述:给定一棵无向树, 我们选择不同的节点作为根节点时,可以得到不同的高度(即树根节点到叶子节点距离的最大值), 现在求这棵树可能的最低高度。输入:输入可能包含多个测试案例。对于每个测试案例,输入的第一行为一个整数n(1 接下n-1行,每行包括两个整数u,v( 0输出:对应每个测试案例,输出这棵树可能的最小高度。
2013-10-07 23:10:38
1872
原创 [各种面试题] 买卖股票最多K次
题目描述:给定一个大小为n的数组,数组的元素a[i]代表第i天的股票价格。设计一个算法,计算在最多允许买卖k次(一买一卖记为一次)的条件下的最大收益。需要注意的是,你不能同时拥有两份股票。也就是说在下次买入前,你必须把手头上原有的股票先卖掉。输入:输入可能包含多个测试案例。对于每个测试案例,输入的第一行为两个整数n和k(1输入的第二行包括n个整数
2013-10-07 22:22:44
3993
原创 [各种面试题] 二叉树旋转查询
题目描述http://ac.jobdu.com/problem.php?pid=1541直接模拟就好了,但是我的代码后面的样例要超时。。。不知道为什么,把cin , cout 改成 scanf 之后居然就变成 output limit exceed 了,奇怪。算了,思路对的就行,懒得去搞了。#include#include#include#include#inc
2013-10-07 21:38:36
774
原创 [各种面试题] 黑白迷阵
题目描述:黑白迷阵是一个GrassLand编写的手机游戏,它的规则非常简单,有如下4*5的棋盘,其中一些是格子是黑色,一些格子是白色的,每当点击其中某一个格子,它以及它上下左右五个格子的颜色会发出反转,如下图 游戏胜利的条件很简单,把所有的格子变为黑色即可。GrassLand想知道,给定一
2013-10-07 17:38:20
1220
原创 [各种面试题] 谷歌上机笔试--分数
题目描述:有一棵无限完全二叉树,他的根节点是1/1,且任意一个节点p/q的左儿子节点和右儿子节点分别是,p/(p+q)和(p+q)/q。如下图:它的层次遍历结果如下:1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1,...有如下两类问题:1.找到层次遍历的第n个数字。如,n为2时,该数字为1/2;2.给定一个数字p/q,输出它在层次遍历中的顺序,如
2013-10-07 16:48:26
826
原创 [各种面试题] 重叠的最长子串
重叠的最长子串:题目描述:给定两个字符串,求它们前后重叠的最长子串的长度,比如"abcde"和“cdefg”是"cde",长度为3。输入:输入可能包含多个测试案例。对于每个测试案例只有一行, 包含两个字符串。字符串长度不超过1000000,仅包含字符'a'-'z'。输出:对应每个测试案例,输出它们前后重叠的最长子串的长
2013-10-07 14:27:01
1338
原创 [各种面试题] 两个数组和的第K大
这是谷歌的一道面试题,有两个数组A和B,假设有一个数组C,C[i] = A[j] + B[ k ] , 即C中的元素是A和B中两个元素的和。让你求C中第K大的数字。之前有一篇转载的用堆来求的方法,因为每出堆一次最多添加两个元素进来,所以堆的最大容量是 2* k, 所以入堆出堆复杂度是 logK, 最后的复杂度是KlogK。注意添加的时候要判断是否已经进过堆。#include#
2013-10-07 14:04:20
3451
4
原创 [LeetCode] Single Number II
Single Number II Given an array of integers, every element appears three times except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could
2013-10-06 16:15:26
1940
原创 [LeetCode] Copy List with Random Pointer
Copy List with Random Pointer A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy of t
2013-10-05 15:56:04
954
原创 [LeetCode] Unique Binary Search Trees II
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n.For example,Given n = 3, your program should return all 5 unique BST's shown below. 1 3
2013-10-02 16:05:34
666
原创 [各种面试题] N皇后问题非递归版
N皇后问题的非递归版本:#include#include#includeusing namespace std;const int N=4;vector rowPut(N+1,0);void print(){ vector > grid(N,vector(N,'.')); for(int i=1;i<=N;i++) grid[i-1][ rowPut[i] -1]
2013-09-23 20:26:31
806
原创 [LeetCode] Substring with Concatenation of All Words
Substring with Concatenation of All Words 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 conca
2013-09-23 11:33:51
2356
原创 [各种面试题] 最大子矩阵和
有一个n*m的二维整型数组矩阵matrix,计算它的最大子矩阵和(允许子矩阵为空)。样例:它的最大子矩阵和为29,对应的子矩阵为图中蓝色线条圈出的矩阵。提示:时间复杂度O(n^3),可以先尝试完成最大连续子段和问题。流传很广的题了。void initAccSum(vector >& mat,vector >& accSum);int maxSeqS
2013-09-21 22:30:16
904
原创 [各种面试题] 单词游戏
一个n*m的字母网格grid,格子中的字母属于26个大写字母。选择某个格子作为起始点,每一步可以移动到上下左右相邻的格子中,这样遍历经过的字母组成了单词(每个格子只能访问一次)。判断是否能够在网格中找到给定的单词pattern。样例:n=3,m=4Grid:PACDBGHIMNDC对于pattern = "DCHGB",返回true。对于pattern = "PB
2013-09-21 20:38:41
1165
原创 [各种面试题] 复制有向图
复制一个有向图。输入是有向图中的一个结点指针,返回复制的图中对应的结点指针。有向图中结点的定义为:C++struct GraphNode { int data; vector neighbors; GraphNode(int data) : data(data) {}};跟复制带随即指针的链表其实是一样的。思路就是先复制新节点,然后复制连接关系,最后再把新复制
2013-09-21 19:25:50
1430
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人