摘要: 大家应该都听说过这个老题目:有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?这个问题的答案也堪称经典:把瓶子从 0 到 999 依次编号,然后全部转换为 10 位二进制数。让第一只老鼠喝掉所有二进制数右起第一位是 1 的瓶子,让第二只老鼠喝掉所有二进制数右起第二位是 1 的瓶子,等等。一星期后,如果第一只老鼠死了,就知道毒药瓶子的二进制编号中,右起第一位是 1 ;如果第二只老鼠没死,就知道毒药瓶子的二进制编号中,右起第二位是 0 ……每只老鼠的死活都能确定 阅读全文
posted @ 2012-10-22 11:36 技术收集专用 阅读(1228) 评论(0) 推荐(0) 编辑
摘要: 转自:http://s.sousb.com/2011/04/06/%e6%89%be%e5%87%ba%e4%ba%8c%e5%8f%89%e6%a0%91%e4%b8%ad%e5%92%8c%e4%b8%ba%e6%9f%90%e4%b8%80%e5%80%bc%e7%9a%84%e6%89%80%e6%9c%89%e8%b7%af%e5%be%84/题目:输入一个整数和一棵二元树。打印出和与输入整数相等的所有路径,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。分析:这道题考查对二叉树遍历方式的理解,采用后序遍历,如果把二叉树看成图,就是图的深度遍历。使用变量存放当前遍历 阅读全文
posted @ 2012-10-19 10:22 技术收集专用 阅读(1238) 评论(0) 推荐(0) 编辑
摘要: #include<cstring> #include <cstdlib>#include <iostream>using namespace std;#define M 100 //LCS问题就是求两个字符串最长公共子串的问题 char* LCS(char left[],char right[]) { //获取左子串的长度,获取右子串的长度 int lenLeft=strlen(left),lenRight=strlen(right),k; //注意这里要写成char型,而不是int型,否则输入整型数据时会产生错误。 //矩阵c纪录两串的匹配情况 ... 阅读全文
posted @ 2012-10-19 09:15 技术收集专用 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 在柱状图中找最大矩形——O(n)时间复杂度java实现 ZZ:http://blog.csdn.net/xybsos/article/details/8049048 具体题目如下:给一组非负的整数来表示一个柱状图,设计一个算法获得柱状图中最大矩形的面积。比如,输入如下数据:2,1,4,5,1,3,3,其中每个数表示一个柱状条的高度,柱状条的宽度为默认值1,则计算得最大矩形的面积为8。 思路:使用一个栈来保存输入柱状条,每个柱状条包含两个信息:(1)柱状条的高度(height);(2)柱状条的x坐标(index) 。数组中的柱状条按序准备入栈,入栈的条件:当入栈元素e的高度>=栈顶元素的高 阅读全文
posted @ 2012-10-18 10:25 技术收集专用 阅读(912) 评论(0) 推荐(0) 编辑
摘要: 六.算法题请参考数据结构和计算机算法类书籍,作者就不再抄书了。附(1):烧绳子类问题总结:一般给出的绳子都是不均匀的。如果一根为一小时,那么半个小时的计算方法是从两头烧。十五分钟的计算方法是从两头烧,同时从中间任何一个地方开始烧,这样这根绳子就有四个燃烧点,时间自然是一个燃烧点的四分之一。如果计算十分钟的时间,那么就让绳子有六个燃烧点,方法就不用说了吧!附(2):天平称球问题解答以及总结:将球分为a b c d; e f g h; i j k l 三组。第一次称量,比较 abcd efgh情形一:两者重量相等,此时说明答案在ijkl中。称量ij,如果相等,说明答案在kl中。拿k与a比较,如果相 阅读全文
posted @ 2012-10-17 21:06 技术收集专用 阅读(189) 评论(0) 推荐(0) 编辑
摘要: void test(int nn){ const double e = 1e-6; double k = 10; double n = 2, m = k; while (n - m < -e || n - m > e) { m = k / n; n = (m + n) / 2; // cout<<n<<endl; } cout<<n<<endl;} 阅读全文
posted @ 2012-10-17 19:44 技术收集专用 阅读(131) 评论(0) 推荐(0) 编辑
摘要: strcpy()、memcpy()、memmove()、memset()的实现;***;memcpy.asm - contains memcpy and memmove routines;; Copyright (c) 1986-1997, Microsoft Corporation. All right reserved.;;Purpose:; memcpy() copies a source memory buffer to a destination buffer.; Overlapping buffers are not treated specia... 阅读全文
posted @ 2012-10-13 23:34 技术收集专用 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 正则表达式全部符号解释字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp 对象的 Mult 阅读全文
posted @ 2012-10-13 20:52 技术收集专用 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.mitbbs.com/article_t/CS/31186033.html二叉树是面试里常见的问题种类,大家在面试前必须熟悉这一类的问题。以下是我收集的一些常见二叉树面试问题(包括我亲身经历的)。多做多练习,相信你一定可以掌握好。我会在这里更新和添加常见到的二叉树问题。Determine if a Binary Tree is a Binary Search Tree这题很常见,microsoft,amazon, google的面试都有人被问过。这题也是二叉树的好题,必须得对BST的定义搞清楚。有一个常见的陷阱,就是把current node的value和leftn 阅读全文
posted @ 2012-10-12 13:54 技术收集专用 阅读(717) 评论(0) 推荐(0) 编辑
摘要: 方法题集:方法一.int n=0;while(n>=3){A-=3;n++;}方法二.A/3 = A/2 - A/6A/6 = A/4 - A/12A/12 = A/8 - A/24so: A/3 = A/2-(A/4-(A/8-(A/16-(A/14.....公式没法打,A/3=累加(-1)k次方* A/(2的K次方)即:N是个值较大的数for(i = 0;i < N;i++) anwer += pow(i,-1)*(A>>1)方法三.int divby3(int x){return ((__int64)x*0xAAAAAAABULL)>>33 ;}比0x 阅读全文
posted @ 2012-10-12 10:59 技术收集专用 阅读(306) 评论(0) 推荐(0) 编辑