算法与数据结构
文章平均质量分 67
wangyangkobe
这个作者很懒,什么都没留下…
展开
-
思科面试
offer难求,折腾了一个多月,连个一个满意的offer也没弄到,看到别人20W+的offer,心中无不羡慕,更多的是对自己的检讨,找工作就那一段时间,很快就过去了,公司都没了,offer怎么可能会有呢?已经实习了好几个月,但是啥也没学到,到时把以前知道的东西忘光了,搞得自己每天都很忙,没时间去看书,面试的时候一问三不知,甚是尴尬,这样怎么会有offer!自己的态度也不够端正,总是不能原创 2011-11-04 15:51:18 · 6558 阅读 · 3 评论 -
如何删除有序数组中的重复元素
<br />如何删除有序数组中的重复元素,空间复杂度O(1),时间复杂度尽可能低?<br />#include <iostream>#include <cassert>#include <iterator>using namespace std;/* *函数功能:删除data数据中的重复元素,需保证data有序 ×时间复杂度O(n),空间复杂度O(1) ×data[] : 输入的有序序列; length : 输入数组的长度 *Returns : 移除重复元素后的新长度*/原创 2011-04-29 11:28:00 · 3548 阅读 · 0 评论 -
百度的一些算法
两个已排序的整型数组,求交集,最快算法输入:两个已排序的整型数组(int a[m], b[n])输出:两个数组的交集#include using namespace std;/**问题描述:两个已排序的整型数组,求交集,最快算法×输入:两个已排序的整型数组(int a[m], b[n])×输出:两个数组的交集*思想:二路归并,时间复杂度为0(min(len_A, len_B))*/void GetIntersect(int A[], int B[], int len_A, i原创 2011-05-01 17:13:00 · 1611 阅读 · 0 评论 -
二叉查找树的一道题
一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。复杂度如果是O(n2)则不得分。 其实很简单,哦耶! #include "stdafx.h"#include #include #include using namespace std;struct Node{ int elememt;原创 2011-06-29 15:06:00 · 975 阅读 · 0 评论 -
《编程之美》读书笔记17: 2.16 求数组中最长递增子序列
<br />http://blog.csdn.net/ztj111/archive/2008/07/31/2748152.aspx<br />#include "stdafx.h"#include <iostream>#include <algorithm>using namespace std;//复杂度为O(N2 + N) = O(N2)int MaxLength(int arr[], int length){ int *res = new int[length]; fo原创 2011-05-06 12:56:00 · 1282 阅读 · 0 评论 -
关于在指定区间求第k小的数,求高效率算法
一、问题来源给定一个整数数列a[1..n],其中每个元素都不相同,你的程序要能回答一组格式为Q (i , j , k)的查询,Q(i, j ,k)的意思是“在a[i..j]中第k小的数是多少?” 例如令 a = {1, 5, 2, 6, 3, 7, 4},查询格式为Q (2 ,原创 2011-07-25 11:54:22 · 1886 阅读 · 0 评论 -
求集合的子集、全排列总结
1、求子集输出n个元素的集合所有的子集,如{a,b,c}的子集就有{},{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}。方法1:利用2进制的表示/*对于集合{A,B,C,D},它的非空子集个数为2×2×2×2-1,用二进制表示就是1111,我原创 2011-07-27 12:28:53 · 464 阅读 · 0 评论 -
十进制转换二进制
#include #include #include #include #include using namespace std;void ConvertToBin1(unsigned int n);void ConvertToBin2(unsigned int原创 2011-09-02 15:11:08 · 164 阅读 · 0 评论 -
将二叉树的叶子结点转换成单链表,并返回最左叶子结点的地址(链头)
已知二叉树的链表存储结构定义为如下:typedef struct BinTNode{int data;BinTNode *lchild;BinTNode *rchild;BinTNode(int elemet = 0, BinTNode *left原创 2011-09-07 14:32:39 · 4589 阅读 · 0 评论 -
给你一个int型数,如 n, 判断它是不是2的多少次方,若是的,打印出来是多少次方?
给你一个int型数,如 n, 判断它是不是2的多少次方,若是的,打印出来是多少次方 比如 n=8 2的3次方=8 所以打印3 n=5 直接cout要求,不准用循环,不准用库函数想不通,睡不着啊,我只知道 n&(n-1)可以判断是不是满足条件,但是要确定是多少次方,而且不能用循环。#include #include using namespace std;原创 2011-06-18 21:14:00 · 1809 阅读 · 0 评论 -
关于二分查找的那些事
<br />#include <iostream>#include <algorithm>#include <ctime>using namespace std;struct Generator{public: Generator(int val):value(val){} int operator() () { return (rand() % value); }private: int value;};/*****************原创 2011-04-23 13:40:00 · 554 阅读 · 0 评论 -
n 个骰子的点数
<br />2.n 个骰子的点数。<br />把n 个骰子扔在地上,所有骰子朝上一面的点数之和为S。<br />输入n,打印出S 的所有可能的值出现的概率。<br /><br />打算用动态规划来求解的,<br />C/C++ code设T(n,m)为n个骰子和为m的概率含有递推式如下:T(n,m)=T(n-1,m-1)*0.17+T(n-1,m-2)*0.17+T(n-1,m-3)*0.17+T(n-1,m-4)*0.17+T(n-1,m-5)*0.17+T(n-1,m-6)*0.17原创 2011-05-31 13:47:00 · 1478 阅读 · 0 评论 -
找寻二叉树中两个节点的公共父节点中最近的那个节点的三种情况
找寻二叉树中两个节点的公共父节点中最近的那个节点 10 / / 6 14 / / / /原创 2011-06-06 13:37:00 · 2899 阅读 · 0 评论 -
循环队列——基础知识很重要
被NVIDA鄙视情理之中的事情,这么简单的基础知识都没掌握,还是静下心好好看书吧。 基础知识,基础知识,基础知识,细节一定要研究透彻。 循环队列 循环队列一般都是用数组来实现的。为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。原创 2011-06-15 21:11:00 · 1586 阅读 · 0 评论 -
编程珠玑学习笔记
<br />第二章<br />问题C:变位词<br /><br /><br /> <br /> <br />#include "stdafx.h"#include <iostream>#include <fstream>#include <vector>#include <string>#include <algorithm>using namespace std;/*********************************************************原创 2011-04-20 15:01:00 · 880 阅读 · 0 评论 -
最大子矩阵问题
<br />问题描述:<br />http://www.cnblogs.com/fll/archive/2008/05/17/1201543.html<br /> <br /> <br />以下是来微软100题:<br /> <br /><br />求一个矩阵中最大的二维矩阵(元素和最大).如:<br />1 2 0 3 4<br />2 3 4 5 1<br />1 1 5 3 0<br />中最大的是:<br />4 5<br />5 3<br />要求:(1)写出算法;(2)分析时间复杂度;(3)用C原创 2011-04-24 15:26:00 · 5296 阅读 · 11 评论 -
求最大公约数和最小公倍数
<br />#include <iostream>using namespace std;/* 最大公因数×最小公倍数=两数的乘积 *//* *函数功能:求最大公约数(辗转相除)*/int gcd(int x, int y){ if(0 == y) return x; else return gcd(y, x%y);}/**函数功能:求最小公倍数(短除法)*/int lcm(int x, int y){ int n =原创 2011-04-25 13:01:00 · 1144 阅读 · 0 评论 -
奶牛问题
<br />一只刚出生的小牛,4年后生一只小牛,以后每年生一只。<br />现有一只刚出生的小牛,问20年后共有牛多少只?我算出来的是345只,跟答案一致<br /> <br />递归解法<br />//奶牛问题的递归解法int CowNumbers1(int year){ int bornCount; if(year < 4) bornCount = 1; else { int sum = 1; for (int i = 4; i <= year; i++)原创 2011-04-23 14:28:00 · 1642 阅读 · 0 评论 -
删除单链表中指定的节点
#include "stdafx.h"#include #include #include using namespace std; struct Node{ int pos; Node *pNext; Node(int position = -1, Node原创 2011-09-15 16:30:00 · 5511 阅读 · 0 评论 -
在排序的数组中二分查找一个元素,返回在数组中它第一次出现的位置
可以参考stl中lower_bound算法。 #include "stdafx.h"#include using namespace std;int BinSearchFirst(int arr[], int begin, int end,原创 2011-10-02 20:35:40 · 4163 阅读 · 1 评论 -
程序员面试攻略读书笔记
1、C语言: 定义一个宏,比较a、b的大小,不要用大于、小于和IF运算符通过移位运算来判定整数的正负性。#include using namespace std; #define MAX(A,B) (((A)-(B))>>31 ? (B) : (A))原创 2011-10-02 22:14:39 · 1158 阅读 · 0 评论 -
13个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球?
13个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球? 4--4称一次,如果平衡,就在另5个中,拿3个正常的与5个中的三个对比,如果相等,在剩余两个中,拿正常的一个与剩余2个中一个对比,出结果,如果上次,3v3不相等那么知道到球是轻还是重,取不原创 2011-09-30 14:18:20 · 7491 阅读 · 6 评论 -
一致性hash
http://hbluojiahui.blog.163.com/blog/static/31064767201098114026211/转载 2011-10-13 14:23:35 · 96 阅读 · 0 评论 -
编程珠玑第8章:具有n个浮点数字的向量x,在任何相邻子向量中找出最大和。
http://hi.baidu.com/banyantree/blog/item/7d78b1ef3d2a1e11fdfa3c93.html#include "stdafx.h"#include using namespace std;int FindMa原创 2011-10-03 18:45:22 · 1136 阅读 · 0 评论 -
最大0,1子矩阵
在一个0,1方阵中找出其中最大的全0子矩阵,所谓最大是指O的个数最多 一行一行的求,如果这行的第j个是1 , 这 h[j]++; 否则 h[j] = 0;然后对求第一行到这行的最大全1矩阵。例如这行的h值为 5 1 1 5 3 5 这最大全1矩阵的和应该为9转载 2011-10-05 19:01:58 · 3070 阅读 · 0 评论 -
百度最新试题
原创 2011-10-07 17:35:05 · 114 阅读 · 3 评论 -
根据前序和中序构造二叉树(变成之美P246)
#include "stdafx.h"#include #include using namespace std;struct Node{ char element; Node *left; Node *right; Node(char ele = '0',原创 2011-10-09 17:06:21 · 116 阅读 · 0 评论 -
编程珠玑第2章:排序、二分查找、签名、向量平移
给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中一32位整数。1、在文件中至少存在这样一个数?2、如果有足够的内存,如何处理?3、如果内存不足,仅可以用文件来进行处理,如何处理? 答案:1、32位整数,包括-2146473648~转载 2011-10-02 17:12:00 · 3108 阅读 · 1 评论 -
Python面试集锦
1、请教一下列表与元组的区别是什么.分别在什么情况下使用列表中的项目应该包括在方括号中,你可以添加、删除或是搜索列表中的项目。由于你可以增加或删除项目,所以列表是可变的数据类型,即这种类型是可以被改变的。元组和列表十分类似,但是元组是不可变的.也就是说你不原创 2011-10-12 11:44:29 · 1434 阅读 · 0 评论 -
约瑟夫问题
约瑟夫问题:1、用单循环链表来实现,这样比较简单#include "stdafx.h"#include #include #include using namespace std; struct Node{ int pos; Node *pNext;原创 2011-09-15 13:06:33 · 779 阅读 · 0 评论 -
strstr函数的自己实现
请用标准C语言实现下列标准库函数,设计中不得使用其他库函数。char *strstr(char *str1,char *str2);在字符串str1中,寻找字串str2,若找到返回找到的位置,否则返回NULL。#include #include using nam原创 2011-09-18 17:18:16 · 13356 阅读 · 8 评论 -
单链表的操作
#include "stdafx.h"#include using namespace std;struct Node { int element; Node *pNext; Node(int ele = 0, Node *next = NULL)原创 2011-09-19 17:03:32 · 917 阅读 · 0 评论 -
几道算法题
任意一串字符串 字符串里包含数字部分和一般的字符例如 ad2ef35adx1wewe76注意这个字符串 里面有4个数字 分别是 1 2 35 76 不考虑大数将数字按照从小到大排序 组成一个新的字符串要求制作一个函数来进行处理假设是 fun(c原创 2011-09-16 16:58:16 · 879 阅读 · 0 评论 -
二叉树的操作
#include "stdafx.h"#include #include #include using namespace std;struct Node{ int element; Node *lChild; Node *rChild; Node(int原创 2011-09-22 17:04:05 · 97 阅读 · 0 评论 -
大家都来瞧一瞧看看!
union TEST{struct a{int t;short m;char p;};char p2;};问:sizeof(TEST)=?这一道题,一上来,大脑的直接反应是8。但是这是一个错误的答案,大家可以去问问编原创 2011-09-25 20:51:58 · 911 阅读 · 2 评论 -
已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10。
已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10。http://www.ihas1337code.com/2010/11/rejection-sampling.htmlThis has be转载 2011-09-26 15:50:15 · 159 阅读 · 0 评论 -
搜狗笔试题
一个长度为n的数组a[0],a[1],...,a[n-1]。现在更新数组的名个元素,即a[0]变为a[1]到a[n-1]的积a[1]变为a[0]和a[2]到a[n-1]的积,...,a[n-1]为a[0]到a[n-2]的积。程序要求:要求具有线性复杂度。不能使用除原创 2011-09-27 12:30:38 · 2939 阅读 · 2 评论 -
关于单链表的操作
#include "stdafx.h"#include #include #include using namespace std;struct Node{public: int element; Node *pNext; Node(int ele = 0, Node *next = NULL) :element(ele), pNext(next){}};//函数功能:创建单链表Node* CreateList(int arr[], int n)原创 2011-04-13 15:00:00 · 506 阅读 · 0 评论 -
动态规划经典问题——求矩阵相乘的最佳顺序
<br />// wy.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <algorithm>#include <cmath>using namespace std;/************************************************************************/原创 2011-05-28 13:32:00 · 3913 阅读 · 0 评论 -
利用后缀数组求字符串中的最长公共字串——编程珠玑15章
<br />#include "stdafx.h"#include <iostream>#include <algorithm>using namespace std;/************************************************************************///函数功能:求字符串str1和str2的公共序列的长度/*********************************************************原创 2011-05-31 11:47:00 · 1075 阅读 · 0 评论