
面试题
田贝
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
迅雷2014-difference&&反转链表
9月9日,迅雷2014校招笔试编程题:已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。链表结点的结构类型定义如下:struct node { int elem; node原创 2014-02-11 20:28:34 · 661 阅读 · 0 评论 -
找第K大的数
#include int select(int * arr, int length, int k){ int begin = 0, end = length - 1; int key , lpos; do { if(begin = length || begin > end) { printf("Data error!\n"); return -1; }原创 2013-11-09 02:21:44 · 774 阅读 · 0 评论 -
最长公共子序列
参考 http://blog.youkuaiyun.com/steven30832/article/details/8260189#include #include #include #include #include static bool LCS(const std::string & str1, const std::string & str2, std::stri原创 2014-04-08 21:36:46 · 765 阅读 · 0 评论 -
蓄水池抽样——《编程珠玑》读书笔记
http://blog.youkuaiyun.com/huagong_adu/article/details/7619665转载 2014-04-09 13:18:29 · 625 阅读 · 0 评论 -
最短路径(Dijikstra和Floyed)
#include #include #include #include typedef unsigned int ssize_t;const ssize_t MAXSIZE = 20;static ssize_t graph [MAXSIZE][MAXSIZE];static ssize_t node_num;static char node [MAXSIZE];原创 2014-04-01 16:07:15 · 915 阅读 · 0 评论 -
八皇后问题
#include #include #include typedef int bool;#define true 1#define false 0#define M (8)#define OK(x, y) ((x) >= 0 && (x) = 0 && (y) < M)static int board[M][M]; /* 棋盘 */int cnt = 0; /* 记录解法种原创 2014-02-15 06:12:42 · 722 阅读 · 0 评论 -
二叉排序树增删改查
今天闲来无事,自己写了遍排序树,不知怎么是,觉得比教材上写的长,总感觉出错了,可现在没书,有机会再校对校对bst.h#ifndef _MY_BST_H_#define _MY_BST_H_typedef struct node * link;struct node { int item; link l; link r;};/* 构造一个节点 */link new原创 2014-02-11 16:14:01 · 849 阅读 · 0 评论 -
微软面试100题系列-数组连续和最大
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为 O(n)。例如输入的数组为 1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为 3, 10, -4, 7, 2,因此输出为该子数组的和 18。#include #include #define MIN原创 2014-02-15 03:05:12 · 675 阅读 · 0 评论 -
微软面试100题系列-设计包含 min 函数的栈
定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素。要求函数 min、push 以及 pop 的时间复杂度都是 O(1)。#define STACK_SZ 10struct stack{ int buf[STACK_SZ]; int top_index; int min_index;};int is_empty(struct stack *原创 2014-02-15 02:44:06 · 836 阅读 · 0 评论 -
堆
还记得是大二的时候写过堆,没想到今天写的时候一气呵成#include #ifdef __cplusplusextern "C" {#endif#define PARENT_INDEX(i) (((i) - (!((i) & 1))) / 2)#define LSON_INDEX(i) ((i) * 2 + 1)#define RSON_INDEX(i) ((i) * 2 + 2原创 2014-02-10 02:45:22 · 690 阅读 · 0 评论 -
最大连续和
#include #include #include #include int getMaxContinuousSum(int * arr, int length){ int result = INT_MIN; int posbegin = 0, posend = 0; for(int i = 0; i < length; i++) { for(int j = i; j原创 2013-11-09 01:48:39 · 844 阅读 · 0 评论 -
将字符串中的\t换成四个空格键
没想到Tab键也只是一个字符,还那么宽!#include using namespace std;#define MAXLEN 100bool TabToSpace(char str[] ,int len){ int i = 0 ,nCount = 0 ,j = 0; while(str[i]) { if(str[i++] == '\t') nCount +=原创 2013-08-30 16:37:30 · 1995 阅读 · 0 评论 -
a+b
/* A B 将绝对值较大的P放在前面,绝对值较小的Q放在后面 如果两个都是正数,则直接相加; 负数,则直接相加; 3 -5 结果为负 -3 5 结果为正 如果一正一负,做减法。 如果结果大于0,并且是PN类型,则输出结果。 如果结果大于0, */#include #include原创 2014-01-07 18:35:30 · 684 阅读 · 0 评论 -
逆序数
#include #include int InversionPair(int * arr, int low, int high, int * assist){ if(low >= high) return 0; int mid = low + (high - low) / 2; int lRet = InversionPair(arr, low, mid, assist);原创 2013-11-09 01:47:43 · 839 阅读 · 0 评论 -
最大公约数与最小公倍数
#include using namespace std;int max_partibility(int m ,int n){ int tmp ,remainder; if(m < n) { tmp = m; m = n; n = tmp; } while((remainder = m % n) != 0) { m = n ; n = remain原创 2013-08-29 21:57:20 · 969 阅读 · 0 评论 -
杨氏矩阵-分治法查找
在一个m行n列二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。/* 一个m*n的矩阵,从左到右从上到下都是递增的, 给一个数elem,求是否在矩阵中,给出思路和代码*/#include #define MAX_ROW 3#define MAX_COL 3sta原创 2014-02-11 21:17:58 · 1365 阅读 · 1 评论 -
BFS与DFS的区别
广度优先搜索的性质:当问题有解时,一定能找到解当问题为单位耗散值,且问题有解时,一定能找到最优解方法与问题无关,具有通用性效率较低属于图搜索方法深度优先搜索的性质:一般不能保证找到最优解当深度限制不合理时,可能找不到解,可以将算法改为可变深度限制最坏情况时,搜索空间等同于穷举与回溯法的差别:图搜索是一个通用的与问题无关的方法原创 2014-04-27 23:44:08 · 1240 阅读 · 0 评论