- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 飞机加油问题
每个飞机只有一个油箱飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈所有飞机从同一机场起飞,而且必须都安全返回机场,不允许中途降落,中间没有飞机场五架护航够了。开始对称的想问题了,看来不对称。1.主机和第一架护航机起飞,1/6圈处护航机剩2/3箱油,刚好主机空出1/3箱的容量,加油后护航机刚好安全返回。2.主机加油后在2/3圈处油耗尽,第二架护航既可以在这个地方等主
2011-11-07 21:35:53 778
转载 N个元素的有序数组A,判断是否有 A[i]=i 存在
/// //下述算法只对严格单调的整数数组有效,复杂度O(N); /// 查找数组中的一个数k,满足a[k] == k /// 需保证a数组严格单调上升 /// /// 找到返回k,找不到返回-1 public staticintFindNumber(int[]a) { if (a==null)
2011-11-07 20:01:53 1380
原创 链表是否交叉
给定两个单链表:如何判断单链表是否交叉?如何找出出交叉在哪里?如果可能有环呢?如果两个链表相交,必然是Y字形,所以判断两个链表的最后一个节点是不是相同即可;根据两个链表的长度差 m-n,长的先走m-n步,短的从头开始走,相遇点即为交点;先判断两个链表有没有环,如果都没环(已解决),有一个有环一个没环,它们肯定不相交;如果都有环,如何判断? a) 从链表1的环里随便找一个
2011-11-07 19:59:23 234
原创 找出字符串的最长不重复子串
题目:找出字符串的最长不重复子串,输出最长子串 思路:维持两个数组:Start[]和All[],分别记录,从当前的字符为起始的子串的最长值,和当前字符后面的最长子串长度。在向前遍历时,当有重复字符出现时,更新相应的长度值,即,更新Start[curIndex]为从当前点,到那个已经存在的重复字符之前的长度;All[curIndex]也要做相应调整。比较:Max(
2011-11-03 13:52:41 420
原创 baidu-2011
1、随即采样问题:设rand(s,t)返回[s,t]之间的随机小数,利用该函数在一个半径为R的圆内找随机n个点,并给出时间复杂度分析。:方案1:选择2个随即数X=rand(-R,R),Y =rand(-R,R),然后选取X2 + Y2 时间复杂度 O(N2);While(N){X=rand(-R,R);Y=rand(-R,R);If( X*X + Y*Y N
2011-11-01 15:37:01 162
原创 编程之美阅读笔记--发帖水王
//N!的2进制表示中最低位的1的位置//看一个2进制除以2的过程:是一个把数右移的过程,例如10100/2 = 1010;1010/2= 101;//右移一次等于除以2一次,贡献一个2的因子,最后最低位1的位置等于2的因子数+1;int low1Pos(int N){ int pos = 0; while(N){ N >>=1; pos = pos + N;//这
2011-11-01 13:38:47 2055
原创 25匹马问题
题目是:有25匹马,每轮跑5匹,除了能够得出该轮中马匹的先后顺序外不能记录马匹跑的时间,问最多需要几轮跑出前五名。 我的答案是最多7轮1) A1>A2>A3>A4>A52) B1>B2>B3>B4>B53) C1>C2>C3>C4>C54) D1>D2>D3>D4>D55) E1>E2>E3>E4>E56) 取每轮的第3名比赛A2>B2>C2>D2>
2011-10-31 14:07:57 469
原创 编程之美--做题笔记(1)
1.求2进制数中1的个数#include "stdafx.h" int count(int v){ intnum =0; while(v){ //右移一位,看最低位是否为1 num+= v & 0x01; v>>= 1;
2011-10-31 11:58:58 188
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人