编程之美
qq675927952
在上学中
展开
-
求二叉树中节点的最大距离,编程之美3.8
// 求二叉树中节点的最大距离,编程之美3.8 #inlcude using namespace std; struct Node { Node *lchild; Node *rchild; //data }; //因为最大距离,一定是已树中某点为根 的左右子树高度之和 int get_max_distance(tree* root,int& maxlen) { if(root==null) return 0;//空结点返回0原创 2011-04-07 19:27:00 · 1054 阅读 · 0 评论 -
二分查找算法
#include using namespace std; //假设arr都是升序 //int arr[9]={1,1,1,1,1,1,1,1,1}; int arr[9] ={0,0,1,1,1,3,4,4,5}; /*给定一个有序(不降序)数组arr,求最小的i使得arr[i]等于v,不存在返回-1*/ int BiSearch1(int s ,int e,int v ) { if(s > e) return -1; while( s原创 2011-04-12 22:15:00 · 673 阅读 · 0 评论 -
统计1到n之间的所有数字中1出现的个数
int main() { int iFactor = 1, iLowerNum, iCurNum, iHighNum; int n; scanf("%d",&n); int res = 0; while(n / iFactor) { iLowerNum = n - (n / iFacto原创 2011-06-13 12:15:00 · 999 阅读 · 0 评论 -
构造一个队列,使front,push,getMaxElement都是O(1)时间
<br />#include <iostream> using namespace std; const int MAXLEN = 50; const int INF = 99999999; /* 构造一个队列,使front,push,getMaxElement都是O(1)时间 思路: 由于更新大小关系要考虑到后面的元素,如 1(1) 2(2) 此时来了个 3,则前面的最大元素都要改, 所以 用栈来保存元素间的大小关系比较合适 */ class stack { private:原创 2011-04-24 21:15:00 · 880 阅读 · 0 评论 -
趣味题_蚂蚁爬杆_猴子分桃
题一: 有些蚂蚁在一条水平线上走动,每只蚂蚁的速率都是1cm/s。 当一只蚂蚁走到水平线的任何一个端点时,它都会立刻掉下来。 当两只蚂蚁碰到一起时他们都会立刻调头向相反方向移动。 我们知道蚂蚁们在水平线上的初始位置,但不幸的是,我们不知道他们初始的运动方向。 你的任务是计算所有蚂蚁从水平线上掉下来可能所需的最早和最晚的时间。 掉头转向 等效于 擦肩而过,继续爬行 思想原创 2012-05-05 14:39:39 · 874 阅读 · 0 评论