算法
lm312177697
it人
展开
-
创新工场笔试题2013年校园招聘
时间:2012年9月27日 地点:鼎好大厦10层考试时长:1小时一, 选择题1,求z的结果[cpp] view plaincopyprint?#define N 3 #define Y(n) ((N+1)*n) z = 2*(N+Y(5+1)); 解答:482,有关多线程,多进程的描述错误的是A, 子进转载 2012-10-02 20:07:13 · 941 阅读 · 0 评论 -
微软的实习生笔试题,不是太难,算法的题好多,但是很多答案都不确定,欢迎大家讨论答案~
微软的实习生笔试题,不是太难,算法的题好多,但是很多答案都不确定,欢迎大家讨论答案~ 答案:1.C(每迭代一次至少一个确定) 2.AC 3.ACE 4.A 5.C 6.C 7.D8. AD 9.B 10.E 11.BCD(没把握) 12.BC 13.不会 14.ACE 15.D 16.A 17.B 18.D19.C 20.E各个论坛上看到的分析:转载 2012-09-22 12:55:28 · 632 阅读 · 0 评论 -
memcpy与memmove
首先看下man的结果:NAME memcpy - copy memory areaSYNOPSIS #include void *memcpy(void *dest, const void *src, size_t n);DESCRIPTION The memcpy() function copies n byt转载 2012-09-22 13:17:41 · 396 阅读 · 0 评论 -
八皇后问题和字符串全排列
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *转载 2012-10-13 10:31:17 · 1598 阅读 · 0 评论 -
关于稀疏矩阵的压缩存储与基本运算
对于基本类型数组,比如int数组,如果new了之后没有显式的初始化,数组中的元素值将自动初始化为0,如果是float数组值为0.0,而对于对象数组将被初始化为null。稀疏矩阵可以说是存在较多的0(int数组)或null值(对象数组),手动化初始的值较少的二维数组(或多阶数组),稀疏矩阵的压缩存储是为了节省空间而对这类矩阵进行压缩存储。所谓的压缩存储是:为多个相同的值分配一个存储空转载 2012-10-14 19:04:32 · 1865 阅读 · 0 评论 -
20121014搜狗笔试题方格取数
#include using namespace std;/*有n*n方格,里面有正数和0,从左上走到左下,走过的路径值变成0,一共走两次,求路径最大和和(两次路径)。用dp来做,f[i][j][k][l]为最大和,I,j为a走的,k,l为b走的,用m,n两个二维数组记录走的路线就可以了*/#define N 50int f[N][N][N][N]={0};int转载 2012-10-14 20:07:14 · 847 阅读 · 0 评论 -
用1 ×2 的瓷砖覆盖8 ×8 的地板,有多少种方式呢?
这个题在POJ上有,地址是:http://acm.pku.edu.cn/JudgeOnline/problem?id=2411以前做过这个题,是用状态DP来做的。大致说下方法,DP需要用到两维,一维表示到达哪一行,另一维表示这一行的状态。用二进制来表示假定方格为N行M列。表示方法如下:f[i][j]。 ---- i表示第i行,j表示该行的二进制状态。而f[i][j]则记录由转载 2012-10-15 15:24:33 · 1437 阅读 · 0 评论 -
实现两个N*N矩阵的乘法,矩阵由一维数组表示
#includeusing namespace std;#define size 2int * multi(int* a, int* b, int N){ inti,j,k,temp; int * c = (int*)malloc(N*N); for(i=0;i { for(j=0;j { temp =转载 2012-10-15 15:53:14 · 838 阅读 · 0 评论 -
微软等数据结构+算法面试100题全部答案集锦
微软等数据结构+算法面试100题全部答案集锦作者:July、阿财。时间:二零一一年十月十三日。引言 无私分享造就开源的辉煌。 今是二零一一年十月十三日,明日14日即是本人刚好开博一周年。在一周年之际,特此分享出微软面试全部100题答案的完整版,以作为对本博客所有读者的回馈。 一年之前的10月14日,一个名叫July (头像为手冢国光)的人在一转载 2012-10-19 23:11:05 · 2947 阅读 · 0 评论 -
编辑距离,最长公共子序列,最长公共子串,最长递增子序列
编辑距离,最长公共子序列,最长公共子串,最长递增子序列1.编辑距离编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。俄罗斯科学家Vladimir Levenshtein在1965年提出这个概念。例如将kitten一字转成sitt转载 2012-10-19 22:49:03 · 584 阅读 · 0 评论 -
全排列不重复
#include#include#includeusing namespace std;int h[256]={0};#define N 100//char *indexss; //保存上一个排列的值(重复的排列是相邻的)void quanpaiWithOutRepety(char a[],int len,int index){ char c='/0';转载 2012-10-20 17:29:20 · 473 阅读 · 0 评论 -
大容量数据排序
大容量数据排序 2011-10-03 17:33:44| 分类:简单数据结构及算 |字号 订阅大容量数据样本,由于其数据过大,无法在内存中一次完成对其排序。通常需要利用外部排序和其他行之有效的方法。1、位图算法:位图算法的限制是排序数不要太大(最好不超过10M);数据无重复(或者找出现2次的数); 如对一千万个无重复整型数据进行排序,如利用转载 2012-10-20 20:46:29 · 754 阅读 · 0 评论 -
把数组排成最小的数
问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。 思路:先将整数数组转为字符串数组,然后字符串数组进行排序,最后依次输出字符串数组即可。这里注意的是字符串的比较函数需要重新定义,不是比较a和b,而是比较ab与 ba。如果ab b转载 2012-10-11 22:57:17 · 338 阅读 · 0 评论 -
部份百度试题和答案
第2题:写一段程序,找出数组中第k大小的数,输出数所在的位置。例如 {2,4,3,4,7}中,第一大的数是7,位置在4(位置从0开始编号)。第二大、第三大的数都是4,位置在1、3随便输出哪一个均可。第四大的数是3,位置在2。 函数接口为:int find_orderk(const int * narray, const int n, const int k)第3题:芯片测试。有2k块芯片,转载 2012-09-20 23:48:08 · 1019 阅读 · 0 评论 -
c memmove memcopy strcpy学习
1.memmove函数原型:void *memmove(void *dest, const void *source, size_t count)返回值说明:返回指向dest的void *指针参数说明:dest,source分别为目标串和源串的首地址。count为要移动的字符的个数函数说明:memmove用于从source拷贝count个字符到dest,如果目标区域原创 2012-09-14 09:40:53 · 533 阅读 · 0 评论 -
输入一行字符串,找出出现的相同且长度最长的字符串,输出它及其首字母的置比如:“yyabcdagaerabceg”答案应该是abc
//输入一行字符串,找出出现的相同且长度最长的字符串,输出它及其首字母的置比如:“yyabcdagaerabceg”答案应该是abc想法是把字符串切分成多个子串,而子串是从原串长度-1的长度开始,依次递减,然后看原串中是否出现子串多次,如果有跳出循环直接输出public class FindMaxLengthOfTheSameString {public static void m原创 2012-09-14 16:16:56 · 1317 阅读 · 0 评论 -
微软9月22日笔试题
把微软的这个笔试题贴出来,纯粹是为了方便大家学习交流,相信微软不会那么小气来追究我的责任吧。确实觉得微软出的这些题都不错,虽然只有20道选择,但是考察的面很全,数据结构,网络,算法,操作系统,概率等等都包括进去了。而且答错扣分,不答0分,答对一部分给一部分的分这种给分机制非常合理,避免了有人乱蒙,且对知识点的理解错误会有所惩罚。能够真正将一个人的计算机知识水平考察出来,所以值得好好研究这些笔试题目转载 2012-09-23 10:58:43 · 3291 阅读 · 0 评论 -
卡特兰数
卡特兰数求助编辑百科名片卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。目录卡特兰数英文原理卡特兰数的应用1.括号化2.出栈次序3.凸多边形三角剖分4.给定节点组成二叉树卡特兰数的扩展卡特兰数英文原理卡特兰数的应用1.括号化2.出栈次原创 2012-10-04 19:27:10 · 1261 阅读 · 0 评论 -
Kmp算法
KMP字符串模式匹配详解来自CSDN A_B_C_ABC 网友KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。自己的kmp代码void preKMP(const char* t, int next[], int len)//next函数综合上面的规律有当转载 2012-09-14 14:46:29 · 307 阅读 · 0 评论 -
strlen与sizeof区别(转载)以及struct,union的sizeof内存对齐等问题
strlen与sizeof区别(转载)#include "stdio.h"#include "string.h"void main(){char aa[10];printf("%d",strlen(aa));printf("%d",sizeof(aa));}程序运行得到结果是strlen(aa)=15.sizeof(aa)=10;这是怎么回事呢?strlen是有转载 2012-09-14 09:56:49 · 584 阅读 · 0 评论 -
递归算法时间复杂度的计算方程式一个递归方程:
算法导论上的解递推公式的主函数法递归算法时间复杂度的计算方程式一个递归方程: 在引入递归树之前可以考虑一个例子: T(n) = 2T(n/2) + n2 迭代2次可以得: T(n) = n2 + 2(2T(n/4) + (n/2) 2) 还可以继续迭代,将其完全展开可得: T(n) = n2 + 2((n/2) 2 + 2((n/22)2+ 2转载 2012-09-22 15:50:57 · 3516 阅读 · 0 评论 -
求无序数组的中位数(转载)
求无序数组的中位数中位数即是排过序后的处于数组最中间的元素。 不考虑数组长度为偶数的情况。设集合元素个数为n。简单的想了下:思路1) 把无序数组排好序,取出中间的元素 时间复杂度 采用普通的比较排序法 O(N*logN) 如果采用非比较的计数排序等方法, 时间复杂度 O(N), 空间复杂度也是O(N).思路2)转载 2012-09-18 23:23:01 · 568 阅读 · 0 评论 -
二叉树/二叉搜索树的操作汇集(c++)
//还包含二叉查找树的一些算法#include#include#includeusing namespace std;struct binaryNode{ int value; binaryNode *right; binaryNode *left; binaryNode *parent;};int treeheight(原创 2012-09-18 23:33:05 · 456 阅读 · 0 评论 -
排序算法的时空复杂度
转载 2012-10-09 20:22:02 · 338 阅读 · 0 评论 -
将多个集合合并成没有交集的集合
给定一个字符串的集合,格式如:。要求将其中交集不为空的集合合并,要求合并完成的集合之间无交集,例如上例应输出。(1) 请描述你解决这个问题的思路;(2) 给出主要的处理流程,算法,以及算法的复杂度;(3) 请描述可能的改进。 方案1:???????? 采用并查集 (??并查集)。首先所有的字符串都在单独的并查集中。然后依扫描每个集合,顺序合并将两个相邻元素合并。例如,对于转载 2012-09-20 23:22:46 · 5742 阅读 · 0 评论 -
【引用】ACM--楼层扔鸡蛋问题
本文最早是从csdn上一篇文章看到,后找到LTang转载的一篇文章。原文已失效,无法找到。楼层扔鸡蛋的经典问题,找的可行解是很简单的,至于最优解以及m层楼n个鸡蛋的扩展则稍费脑力,此文仅转载原文,个人心得及代码实现以及动态规划问题后续会有新文章总结。转载文章如下:==有限层数和蛋数,求即使最坏情况下需要的最少判断次数==两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能转载 2012-10-11 21:55:03 · 854 阅读 · 0 评论 -
生成 [0-n) 个不重复的随机数
import java.util.*; public class A{ public static void main(String[] args){ // 生成 [0-n) 个不重复的随机数 //st 用来保存这些随机数 ArrayList list = new ArrayList();原创 2012-10-23 14:46:56 · 888 阅读 · 0 评论