
做题
文章平均质量分 53
villasy
这个作者很懒,什么都没留下…
展开
-
快速排序的Hoare划分
在《算法导论》中有介绍到快排的原始划分方法——Hoare划分,在算导7.1节中给出的快排经典算法中,将主元值与围绕它划分形成的两个部分分隔开了,而Hoare-Partition划分则总是将主元值放入两个划分A[p..j]和A[j+1..r]的某一个中。算导给出的Hoare-Partition划分伪代码如下:Hoare-Partition(A,p,r): x = A[p] i = p-1原创 2012-12-05 16:48:29 · 4953 阅读 · 3 评论 -
二维数组赋值问题
int a[3][2] = {(0, 1), (2, 3), (4, 5)}; int *p = a[0]; printf("%d\n", p[0]);代码中的{}里面是(),圆括号不能给二位数组初始化的。正确的给二维数组的赋值方式为:int b[3][2] = {{0, 1}, {2, 3}, {4, 5}};但逗号表达式,每个元素都要求值,但是整体的值原创 2014-07-01 12:54:45 · 2324 阅读 · 0 评论 -
2013微软实习笔试题错题总结
1、排序稳定性1) 稳定的:如果存在多个具有相同排序码的记录,经过排序后,这些记录的相对次序仍然保持不变,则这种排序算法称为稳定的。 插入排序、冒泡排序、归并排序、分配排序(桶式、基数)都是稳定的排序算法。2)不稳定的:否则称为不稳定的。 直接选择排序、堆排序、shell排序、快速排序都是不稳定的排序算法。2、cdecl stdcall pascal fas原创 2014-07-01 12:51:51 · 671 阅读 · 0 评论 -
数学题
第一题:某个公司举行一场羽毛球赛,有1001个人参加,现在为了评比出“最厉害的那个人”,进行淘汰赛,请问至少需要进行多少次比赛。第二题有100个灯泡,第一轮把所有灯泡都开启,第二轮把奇数位的灯泡灭掉,第三轮每隔两个灯泡,灭一个,开一个,依此类推。求100轮后还亮的灯泡。点评:完全平方数,本人去58面试时,也遇到过与此类似的题。第三题有20个数组,每个数组里面有500个数组,原创 2014-07-01 12:52:21 · 761 阅读 · 0 评论 -
复习计划
程序设计:1,把基础的数据结构的C语言实现在纸上写三遍以上,用我能想到的最精简最优化的方法2,阅读CARM(CLanguage ReferenceManual)和TCPL(The C Programming Language),确保不会遗漏C语言的每个细节3,重温之前自己做过的靠谱项目,并总结里面的关键难题和解决思路4,重读Writing Solid C原创 2014-07-01 12:52:59 · 648 阅读 · 0 评论 -
暴风影音
1、溢出和越界的区别是什么?越界:一般是数组下标 int a[4]; a[10] = 1; c和c++语言中数组下标越界,编译器是不会检查出错误的,但是实际上后果可能会很严重,比如程序崩溃等。溢出:char str[4]; gets(str); 堆栈溢出就是不顾堆栈中分配的局部数据块大小,向该数据块写入了过多的数据,导致数据越原创 2014-07-01 12:53:23 · 752 阅读 · 0 评论 -
序列123...N,N介于3和9之间,在其中加入+-或者空格,使其和为0
题目:序列123...N,N介于3和9之间,在其中加入+-或者空格,使其和为0,如123456 1-2 3-45+6 7 等价于1-23-45+67=0。请问,如何获得所有组合?思路:这是一种什么类型的题目,怎么感觉从来没见过,这其实是个游戏,游戏有游戏的规则。(1)至少有一个'-'才能使结果为0;(2)'+'的个数不一定要等于'-'(3)最多N-2个'+'(4)空格个数原创 2014-06-22 11:56:59 · 974 阅读 · 0 评论 -
待解决的题
求和最大m段连续子序列:http://www.cppleyuan.com/forum.php?mod=viewthread&tid=1240&extra=page%3D1最大连续乘积:http://blog.youkuaiyun.com/v_july_v/article/details/8701148序列:可以不连续;字串:要连续;原创 2014-06-22 12:17:04 · 527 阅读 · 0 评论 -
交点和分区联系
原题:one line can split a surface to 2 part, 2 line can split a surface to 4 part. Give 100 lines, no two parallel lines, on three lines join at the same point, how many parts can 100 line split。A.505原创 2014-06-22 12:18:06 · 615 阅读 · 0 评论 -
寻找发帖水王
《编程之美》的思路:如果一个ID的发帖数超过总数的一半,那么该ID在每个局部范围内也是超过一半的,因此用相互抵消的方法来确定发帖超过一半的ID。算法如下:#include #include #define NUM 10int get_post_king(int ID[], int N){ int candidate,i,times; for(times = i=0;i<NU原创 2013-03-12 22:28:09 · 761 阅读 · 0 评论 -
[没弄清楚]数组分割
《编程之美》2.18,数组分割动态规划思路:假设完成分割需要2N个步骤,第K步完成了前k个元素中任意i(0for(k=1;k<=2*n;k++){ i_max = min(k-1,n-1); for(i=i_max;i>=0;i--){ for each v in Heap[i] insert(v+arr[k],Heap[i+1]) }原创 2013-03-13 09:03:06 · 698 阅读 · 0 评论 -
镜像反转森林
1、有一颗结构如下的树,对其做镜像反转后如下,请写出能实现该功能的代码。注意:请勿对该树做任何假设,它不一定是平衡树,也不一定有序。 1 1 / | \ / | \ 2 3 4 4 3 2 / | \ / \ | | / \ / |原创 2012-12-05 16:53:39 · 792 阅读 · 0 评论 -
一个数组里,数都是两两出现的,但是有三个数是唯一出现的,找出这三个数
小米2012笔试题分析:最直观的思路就是遍历,答题代码如下:#includeusing namespace std;#define N 9int tag[N],arr[N] = {9,3,2,9,4,2,6,3,7};void find_uniq(){ int i,j; memset(tag,0,N); for(i=0;i<N;i++){原创 2012-12-06 14:08:07 · 1280 阅读 · 0 评论 -
卡特兰数求解问题
微软2012校招笔试题第18题:There is a stack and a sequence of n numbers(i.e. 1,2,3,...,n), Push the n numbers into the stack following the sequence and pop out randomly . How many different sequences of the n原创 2012-12-05 18:59:23 · 1237 阅读 · 0 评论 -
输出二叉树第 m 层的第 k 个节点值
如题:m, k 均从 0 开始计数。#includeusing namespace std;void print_level_node(BinTree root,int level,int num){ if(!root || level < 0 || k<0) return; queue que1,que2; int cnt=m=k=t原创 2012-12-05 22:21:32 · 1378 阅读 · 0 评论 -
最大乘积子序列,并输出子序列
题目:给一个整数序列,取最大乘积子序列的值,例如:6,9,-1,4,-8,5,3,7,-100,则取出的最大乘积子序列为4,-8,5,3,7,-100。求解:求最大乘积子序列,并输出子序列。分析:本课题可以采用动态规划的思路来解决,数可能为负数,原来负数较小的,再遇到下一个负数后可能变得更大。根据题意a[]={6,9,-1,4,-8,5,3,7,-100},令Max[i]为到i位置最大连续原创 2012-12-05 16:14:00 · 899 阅读 · 0 评论 -
贼跳台阶问题
题目:一个贼每次上楼梯1或者2,一个27层的楼梯需要多少种方法,记住贼不能经过5,8,13层,否则会被抓住。该题2011、2012校招笔试题中频繁出现。思路:从简单到复杂,如果只有1级台阶,那显然只有一种跳法。如果有2级台阶,那就有两种跳的方法了:一种是分两次跳,每次跳1级;另外一种就是一次跳2级。我们把n级台阶时的跳法看成是n的函数,记为f(n)。当n>2时,第一次跳的时候就有两种不同的原创 2012-12-08 10:26:10 · 593 阅读 · 0 评论 -
微策略魔数题
魔数定义:整数N以基数B表示,如21以基数3表示为210,那么21是基数3的一个魔术,210三个位的值都不一样。设计函数,输入参数N和B(B介于2到10之间),返回是否为魔数。思路:进制转换,检查是否有重复位。因为B:2~10,则各位上的数:0~9,采用哈希的方式:tag[9],数组下标表示位上的数,其值表出现的次数。#include#includeusing namespace st原创 2012-12-09 18:22:50 · 1130 阅读 · 0 评论 -
m位二进制数,1个数不超过n,字典序排下第i个数
题目:给定m位字符串数组S,由0和1组成,要求m位中1的个数不超过n,然后找到字典序的第i个数。如:如 m=4 n=2 即1的个数不超过2个 0111就不行,如果找第i=8个 从0000 0001 …… 0110 1000 。第八个就是1000 。写一个函数,输入m,n,i返回那个数。思路1:m=4,n=2,i=8,按正常的方法来讲是16中方法,晒去不合格的,即1的数量超过2的原创 2012-12-10 20:15:06 · 1264 阅读 · 0 评论 -
Unique Binary Search Trees 求BST的组合总数 @LeetCode
原文链接:http://m.blog.youkuaiyun.com/blog/hellobinfeng/14514649转载 2014-07-13 18:09:13 · 674 阅读 · 0 评论