• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






canexjtuzju

记录
 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

06 2014 档案

 
wioi 1043--方格取数
摘要:题目描述:设有N*N的方格图(N 2 #include 3 #include 4 using namespace std; 5 6 int a[11][11]; 7 int dp[11][11][11][11]; 8 const int INF = 999999999; 9 10 int oper... 阅读全文
posted @ 2014-06-27 23:02 canexjtuzju 阅读(357) 评论(0) 推荐(0)
wikioi 1251--括号
摘要:题目描述:给定n个变量,求乘积的表达式的个数。相邻元素相乘需要加*号。思路:直接递归即可,ans[i][j] = ans[i][k]+ans[k+1][j](i 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 u... 阅读全文
posted @ 2014-06-27 22:38 canexjtuzju 阅读(266) 评论(0) 推荐(0)
wikioi 1688--求逆序对
摘要:题目描述:给定数组,求逆序对的个数思路:归并排序,归并的时候改变计数,当前面的元素比后面元素大则计数cnt+=(m-i)+1没有AC的版本 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #inclu... 阅读全文
posted @ 2014-06-26 22:47 canexjtuzju 阅读(146) 评论(0) 推荐(0)
wikioi 1497--求余运算
摘要:题目描述:给定b,p,k要求(b^p)%k思路:主要是快速求幂运算,有递归和非递归两种思路。递归有错误,应该是溢出问题#include #include #include #include #include #include #include #include #include #include #... 阅读全文
posted @ 2014-06-26 22:12 canexjtuzju 阅读(182) 评论(0) 推荐(0)
面试金典--17.1
摘要:题目描述:不用临时变量,直接交换两个数思路a = a+b;b = a- b;a = a-b 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #inclu... 阅读全文
posted @ 2014-06-26 20:53 canexjtuzju 阅读(98) 评论(0) 推荐(0)
面试金典--11.6
摘要:题目描述:数组每行每列都是有序的,编写代码找到指定元素思路:(1)从数组右上角开始找,每次更新i,j(已经实现)(2)对每个元素,它必定是它右下角子二维数组的最小值,也必定是左上角子二维数组的最大值,这样可以减少规模,没有实现 1 #include 2 #include 3 #include ... 阅读全文
posted @ 2014-06-26 20:31 canexjtuzju 阅读(141) 评论(0) 推荐(0)
面试金典--11.5
摘要:题目描述:给定排序后的字符串数组,中间有一些空串,要求找到给定字符串的位置思路:(1)遍历,最慢的(2)二分查找,当mid处为空串,就找到最近的非空串继续寻找。如果需要找空串?(单独处理) 1 #include 2 #include 3 #include 4 #include 5 ... 阅读全文
posted @ 2014-06-26 20:08 canexjtuzju 阅读(121) 评论(0) 推荐(0)
面试金典--11.2
摘要:题目描述:给定一个字符串数组,将变位词排在相邻的位置思路:map即可这里发现一个问题,string用sort排序不能使引用,回头看看源码。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #inclu... 阅读全文
posted @ 2014-06-26 13:52 canexjtuzju 阅读(158) 评论(0) 推荐(0)
面试金典--11.3
摘要:题目描述:给定一个数组,数组是由一个排好序的数组循环旋转得到的,现在要在数组中找给定值思路:(1)递归,二分查找,左右子数组肯定会有一个是排好序的,比较a[mid]与a[l]的大小之后,判断哪部分排好序,然后判断目标值在哪部分特殊情况是:2 2 2 3 2 2 2 2这种情况,中间元素与左边元素相同... 阅读全文
posted @ 2014-06-26 12:59 canexjtuzju 阅读(177) 评论(0) 推荐(0)
面试金典--11.1
摘要:题目描述:给定排序后数组A和B,其中A的末端有足够空间存B,编写算法,将B合并到A思路:题目的意思应该是不用额外空间,所以从两个数组的最后一个元素往前遍历,将大的放入A的末尾 1 #include 2 #include 3 #include 4 #include 5 #include 6 ... 阅读全文
posted @ 2014-06-26 11:16 canexjtuzju 阅读(102) 评论(0) 推荐(0)
编程之美--2.3
摘要:题目描述:寻找发帖水王,转换一下就是:给定一个数组,找出出现次数大于n/2的元素思路:(1)排序,直接输出中间元素(2)O(N),每次删除两个不同元素,注意代码实现 1 #include 2 #include 3 #include 4 #include 5 #include 6 #incl... 阅读全文
posted @ 2014-06-26 10:46 canexjtuzju 阅读(249) 评论(0) 推荐(0)
编程之美--2.10
摘要:题目描述:求数组的最大值和最小值,并且计算比较次数思路:(1)普通思路是遍历一遍,得比较2*N次(2)分治,具体计算可以参考书上内容,算法时间复杂度是O(logn) 1 #include 2 #include 3 #include 4 #include 5 #include 6 #incl... 阅读全文
posted @ 2014-06-25 19:52 canexjtuzju 阅读(173) 评论(0) 推荐(0)
数组面试题--数组求和
摘要:题目描述:给定一个数组,实现函数用一行代码返回这个数组的和思路:递归即可 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 int fun(vecto... 阅读全文
posted @ 2014-06-25 19:42 canexjtuzju 阅读(209) 评论(0) 推荐(0)
面试金典--9.11
摘要:题目描述:给定一个布尔表达式以及一个布尔值,算出有多少种放括号的方法使得表达式的值为给定布尔值思路:(1)递归,从左到右对每个运算符求可能的情况,有很多重复子问题(2)DP,dp[i][j][0]表示i到j之间的求值为0的方法数,dp[i][j][1]表示i到j之间求值为1的方法数 1 #incl... 阅读全文
posted @ 2014-06-25 10:56 canexjtuzju 阅读(162) 评论(0) 推荐(0)
面试金典--9.10
摘要:题目描述:给你一堆箱子,箱子宽wi,高hi,深di。箱子不能翻转,将箱子堆起来,下面的箱子必须宽、高、深均大于上面的箱子。实现一个方法,使得堆起来的箱子高度和最大思路:(1)简单思路就是递归,判断以每个箱子为底的时候得到的最大高度,优化就是可以排除比当前底要大的。(2)上面思路有很多重复计算,我们可... 阅读全文
posted @ 2014-06-24 23:26 canexjtuzju 阅读(158) 评论(0) 推荐(0)
面试金典--9.8
摘要:题目描述:给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示方法思路:一开始我想既然可以递归,那么加备忘或者自底向上DP就可以了,于是出现如下代码 1 //有可能有重复计算,所以这个方法不可行 2 int dp[10000]; 3 int fun(int n) 4 { ... 阅读全文
posted @ 2014-06-24 22:51 canexjtuzju 阅读(140) 评论(0) 推荐(0)
编程之美--3.4
摘要:题目描述:删除没有头结点的链表的指定节点思路:这道题和面试金典那道题有点像,当时的思路是将后面节点赋值到当前节点,最后删除尾节点,但是那样的话就会出现(1)尾节点没法删除(2)时间复杂度为O(n);这里换个思路,删除当前节点的下一个节点,把下个节点的值赋给当前节点,复杂度为O(1)。尾节点单独处理。... 阅读全文
posted @ 2014-06-24 12:31 canexjtuzju 阅读(161) 评论(0) 推荐(0)
编程之美--3.3
摘要:题目描述:计算相似度,其实本质就是计算编辑距离思路:一开始先递归,然后加备忘改DP,发现有很多重复子问题,再重新设计dp算法 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using ... 阅读全文
posted @ 2014-06-24 12:13 canexjtuzju 阅读(149) 评论(0) 推荐(0)
编程之美--2.6
摘要:这里和上一题关于gcd的都没有考虑大数运算相关的。题目描述:求浮点数的精确表示思路:通过分数来进行表示最精确,所以问题转化成了如何通过分数表示浮点数(1)非循环小数:c.a(其中c表示一个整数,a表示一个整数),那么分数就是(c*(10^n)+a)/10^n,其中n为a的位数,最后约分(2)循环小数... 阅读全文
posted @ 2014-06-22 21:26 canexjtuzju 阅读(192) 评论(0) 推荐(0)
编程之美--2.7
摘要:题目描述:最大公约数问题思路:三个思路(1)gcd(x,y) = gcd(y,x%y);(2)gcd(x,y) = gcd(y,x-y);(3)gcd(x,y) = gcd(x/2,y/2)*2;(x,y均被2整除) 1 #include 2 #include 3 #include 4 #in... 阅读全文
posted @ 2014-06-22 20:49 canexjtuzju 阅读(172) 评论(0) 推荐(0)
c++笔记--new和delete(一)
摘要:前面的话:我们都知道,当我们调用new来分配内存的时候,首先会分配内存,其次调用构造函数,最后返回指针。对于第二步失败,我们后面也将介绍,第二步失败时会调用对应的delete来释放内存。本文主要探讨第一步失败的情况。(一)内存分配失败的时候一般会怎么处理?(1)c中,malloc如果失败会返回空指针... 阅读全文
posted @ 2014-06-20 22:00 canexjtuzju 阅读(135) 评论(0) 推荐(0)
面试金典--9.6
摘要:题目描述:实现一种算法,打印n对括号的全部有效组合思路:递归,不合法状态就是right 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 vector res;10 void... 阅读全文
posted @ 2014-06-20 10:01 canexjtuzju 阅读(131) 评论(0) 推荐(0)
编程之美--2.13
摘要:题目描述:给定长度为N的数组,只允许用乘法,求任意N-1个元素的乘积最大值思路:(1)直接选出任意N-1个元素求结果(2)对第i个元素,记录其左边以及右边的元素乘积,最后遍历一遍,求l[i]*r[i]的最大值即可 1 #include 2 #include 3 #include 4 #incl... 阅读全文
posted @ 2014-06-19 21:43 canexjtuzju 阅读(133) 评论(0) 推荐(0)
编程之美--2.17
摘要:题目描述:数组循环移动K位分析:这道题和之前碰到的字符串循环移位其实是一个思路的,编程珠玑上面也讲了这道题。(1)第一种方法是对数组划分成两个部分,对两部分进行反转,同时对整个数组进行反转(2)第二种方法是将第i位的元素和(i+k)%N的元素交换,从第0个元素开始,循环直到回到第0个元素。 1 #i... 阅读全文
posted @ 2014-06-19 21:07 canexjtuzju 阅读(210) 评论(0) 推荐(0)
编程之美--3.8
摘要:题目描述:求二叉树节点的最大距离,距离是节点之间边的数目思路:递归判断左子树右子树以及经过当前节点的值的大小 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include ... 阅读全文
posted @ 2014-06-19 20:43 canexjtuzju 阅读(165) 评论(0) 推荐(0)
编程之美--3.7
摘要:题目描述:实现一个队列,要求有MAX操作,且越快越好。思路:这道题其实就是之前碰到的,两个栈实现一个队列+min栈,变形题目,当然可以使用类似于min栈的实现(http://www.cnblogs.com/cane/p/3793510.html)来实现一个max栈了,这里提供一个书上的另外的一个实现... 阅读全文
posted @ 2014-06-19 13:48 canexjtuzju 阅读(191) 评论(0) 推荐(0)
面试金典--9.3
摘要:题目描述:给定有序数组,要求找出A[i]=i的索引。(没有重复元素)简单粗暴的方法:遍历一遍(这里可以优化,若当前A[i] != i,但是A[i] > i,那么因为数组有序,所以后面的元素不可能满足条件,可以直接输出了,这个思想可以用到有重复元素的情况下)。二分递归法:比较A[mid]与mid的关系... 阅读全文
posted @ 2014-06-18 22:02 canexjtuzju 阅读(109) 评论(0) 推荐(0)
面试金典--9.2
摘要:题目描述:设想有个机器人坐在X*Y网格的左上角,只能向右向下移动。机器人从(0,0)开始出发,到(X,Y)共有多少种方法。思路:到i,j只和,(i-1,j)和(i,j-1)有关递归的时候加备忘 1 #include 2 #include 3 #include 4 #include 5 #in... 阅读全文
posted @ 2014-06-18 21:50 canexjtuzju 阅读(142) 评论(0) 推荐(0)
面试金典--9.1
摘要:类似于斐波切数列,自下而上,添加备忘 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include ... 阅读全文
posted @ 2014-06-18 21:28 canexjtuzju 阅读(123) 评论(0) 推荐(0)
面试金典--4.5
摘要:题目描述:实现一个函数,检查一颗二叉树是否为二叉查找树思路:递归判断当前节点以及其左右子树(这种思路是错误的,因为二叉查找树必须左子树所有节点小于等于当前节点;右子树所有节点大于当前节点;) 1 #include 2 #include 3 #include 4 #include 5 #inc... 阅读全文
posted @ 2014-06-18 20:47 canexjtuzju 阅读(146) 评论(0) 推荐(0)
面试金典--4.4
摘要:题目描述:给定二叉树,同一深度的放置在同一链表中,深度为D则有D个链表,BFS即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include ... 阅读全文
posted @ 2014-06-18 20:39 canexjtuzju 阅读(126) 评论(0) 推荐(0)
面试金典--3.5
摘要:http://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html老题目了,4月份面腾讯实习的时候问了这道题,都不用写代码的。 1 #include 2 #include 3 #include 4 #include 5 ... 阅读全文
posted @ 2014-06-17 21:55 canexjtuzju 阅读(113) 评论(0) 推荐(0)
面试金典--3.3
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #in... 阅读全文
posted @ 2014-06-17 21:38 canexjtuzju 阅读(173) 评论(0) 推荐(0)
面试金典--min栈的实现
摘要:题目描述:实现一个包含min操作的栈,时间复杂度需要是O(1)思路:一开始的想法是添加辅助栈保存当前最小元素,但是这样存在的问题就是不能处理重复元素;于是.....我还是google了,找到如下锦囊妙计不需要额外的空间,栈顶保存的是最小元素,每次push比较,如果当前元素更小的话就更新栈顶,另外栈顶... 阅读全文
posted @ 2014-06-17 21:19 canexjtuzju 阅读(432) 评论(0) 推荐(0)
面试金典--一个数组实现三个栈(固定大小)
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 usi... 阅读全文
posted @ 2014-06-17 20:30 canexjtuzju 阅读(195) 评论(0) 推荐(0)
编程之美--3.1
摘要:题目描述:给定s1,s2两个字符串,要求判定s2是否能够被s1做循环移位得到的字符串包含。思路:类似于面试金典字符串那一节最后一题,字符串拼接的思路,将s1 = s1+s1,这样只要能够移位得到包含s2那么就肯定在拼接后的s1中 1 #include 2 #include 3 #include ... 阅读全文
posted @ 2014-06-16 12:20 canexjtuzju 阅读(189) 评论(0) 推荐(0)
面试金典--5.2
摘要:题目描述:打印double类型,且在0~1之间的数的二进制表示思路:每次乘以2,相当于左移1位,判断当前位是0还是1。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #inc... 阅读全文
posted @ 2014-06-15 14:24 canexjtuzju 阅读(124) 评论(0) 推荐(0)
面试金典--5.1
摘要:题目描述:给定N,M两个32位整数,以及i、j,将i、j之间的位置为数M对应的二进制位 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include... 阅读全文
posted @ 2014-06-15 14:11 canexjtuzju 阅读(128) 评论(0) 推荐(0)
面试金典--检查链表是否是回文
摘要:题目描述:检查单链表是否是回文。思路:反转,比较(反转的时候可以借助栈来实现) 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 ... 阅读全文
posted @ 2014-06-15 13:25 canexjtuzju 阅读(304) 评论(0) 推荐(0)
面试金典--对链表表示的整数求和
摘要:题目描述:给定两个链表,逆序表示两个整数,对这两个链表进行求和。思路:注意进位即可,可以就地操作,但是实现稍微麻烦一点(如果不就地的话,可以转化成递归操作,代码更加简洁) 1 #include 2 #include 3 #include 4 #include 5 #include ... 阅读全文
posted @ 2014-06-15 13:08 canexjtuzju 阅读(312) 评论(0) 推荐(0)
面试金典--以x为基准对链表进行划分
摘要:题目描述:以给定值x为基准将链表分割成两部分,所有小于x的节点排在大于等于x的节点之前。思路:设置largehead,largetail和smallhead,smalltail,第一次找到小于或者大于等于x的节点时就更新head指针,后面遍历链表每次更新tail指针。实现没考虑空链表等边界情况。 1... 阅读全文
posted @ 2014-06-15 12:41 canexjtuzju 阅读(362) 评论(0) 推荐(0)
面试金典--删除链表某个节点,只能访问该节点
摘要:题目2.3:实现一个算法,删除单向链表中间的某个节点,只能访问该节点。将后续节点的值复制到当前节点即可,但是最后一个节点就不能删除了。另外我的实现中没考虑只有一个节点或者为空的情况 1 #include 2 #include 3 #include 4 #include 5 #include ... 阅读全文
posted @ 2014-06-15 12:23 canexjtuzju 阅读(217) 评论(0) 推荐(0)
面试金典--删除未排序链表重复节点
摘要:编写代码,删除未排序链表的重复节点思路:hash记录当前节点是否出现过 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 10 using namespa... 阅读全文
posted @ 2014-06-15 11:33 canexjtuzju 阅读(220) 评论(0) 推荐(0)
wikioi 1017--乘积最大
摘要:给定一个数串,以及K,求对这个数串K划分的乘积最大值。DP思路:一开始肯定想到的是递归,假设在某两个字符间有一个乘号,那么乘积最大就是乘号两边的区间接着划分的乘积最大值。于是状态空间表示如下dp[i][k]表示从0~i之间有K个乘号的乘积最大值,dp[i][k] = max(dp[j][k-1]*n... 阅读全文
posted @ 2014-06-13 22:00 canexjtuzju 阅读(380) 评论(0) 推荐(0)
Hulu实习面试题--对一个数进行划分,求最大乘积
摘要:题目描述:对一个给定正整数n,划分成若干个整数之和,然后这些整数的乘积最大我一开始给的思路是:进行递归,F(n) = max(F(n-i)*F(i))(1 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include ... 阅读全文
posted @ 2014-06-11 21:36 canexjtuzju 阅读(415) 评论(0) 推荐(0)
编程珠玑--变位词集合
摘要:有一步是必须处理的,就是对字符串进行排序;第二步的方法就比较多:(1)采用字符串哈希(求值)(2)排序后转化为24位的位向量(3)直接排序后的字符串作为标识(书上的方法) 1 #include 2 #include 3 #include 4 #include 5 #include 6 #i... 阅读全文
posted @ 2014-06-10 10:56 canexjtuzju 阅读(199) 评论(0) 推荐(0)
编程珠玑--左旋字符串
摘要:其实编程之美也有类似的题,这道题是编程珠玑第二章的题目。题目描述:给定一个字符串,将字符串循环移位K次。最简答的方法就是,通过O(n)的辅助空间,将数组循环移位,时间复杂度就是O(n)但是如果要求空间复杂度为O(1)呢?观察规律可知,对前K位反转以及后面的反转,最后对整个字符串反转就能达到O(1)的... 阅读全文
posted @ 2014-06-10 10:35 canexjtuzju 阅读(156) 评论(0) 推荐(0)
wikioi--1697 ⑨要写信
摘要:把n个元素的错排数记为Dn,显然D1=0,D2=1。当n≥3时,设不错排时i位置的元素为a[i],不妨设最后一个数a[n]排在了第k位,其中k≠n,也就是1≤k≤n-1。那么我们现在考虑第n位的情况。当a[k]排在第n位时,a[n]与a[k]的位置均已确定,除了a[n]和a[k]以外还有n-2个数,... 阅读全文
posted @ 2014-06-09 23:13 canexjtuzju 阅读(126) 评论(0) 推荐(0)
wikioi--1044 拦截导弹
摘要:题目链接:http://www.wikioi.com/problem/1044/题目其实就是最长上升子序列的变形。下面是两个重要定理:定理1 令(X,≤)是一个有限偏序集,并令r是其最大链的大小。则X可以被划分成r个但不能再少的反链。 其对偶定理称为Dilworth定理:定理2 令(X,≤)是一个有... 阅读全文
posted @ 2014-06-09 22:28 canexjtuzju 阅读(300) 评论(0) 推荐(0)
桶排序--小试牛刀
摘要:桶排序特点:在桶的大小和元素个数呈现线性关系的时候,复杂度是线性的,最差是O(n^2)(个人理解是当所有元素都在一个桶的时候,采用插入排序的时候);稳定排序(注意实现的时候:对同一个桶内元素的排序要使用稳定排序实现);空间复杂度比较高;桶排序的描述:(1)初始化桶,将元素放入到合适的桶内(2)对各个... 阅读全文
posted @ 2014-06-09 21:06 canexjtuzju 阅读(206) 评论(0) 推荐(0)
Kinect数据流回放--ColorStream
摘要:针对上一篇的数据流的录制,相应的有数据流的回放,回放包括:显示,暂停,快进快退,循环播放等功能。一、录制二进制流:这个主要是快进快退以及循环播放比较麻烦,因为得控制好文件流的当前位置,通过seek函数合理设定。主要是根据PixelDataLength属性值来进行调整,因为这个值记录了数据流的byte... 阅读全文
posted @ 2014-06-09 16:36 canexjtuzju 阅读(820) 评论(0) 推荐(0)
Kinect数据流录制--ColorStream
摘要:一般使用Kinect进行数据录制彩色图像的话,有多种选择:直接存为二进制流,存图片或者是存视频等。下面主要介绍这几种方法的实现:一、存二进制流 1 using Microsoft.Kinect; 2 using System.IO; 3 class ColorStreamBinaryRecorder... 阅读全文
posted @ 2014-06-08 15:54 canexjtuzju 阅读(763) 评论(0) 推荐(0)