![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔试面试
wingsun999
这个作者很懒,什么都没留下…
展开
-
25匹马问题
题目是:有25匹马,每轮跑5匹,除了能够得出该轮中马匹的先后顺序外不能记录马匹跑的时间,问最多需要几轮跑出前五名。 我的答案是最多7轮 1) A1>A2>A3>A4>A5 2) B1>B2>B3>B4>B5 3) C1>C2>C3>C4>C5 4) D1>D2>D3>D4>D5 5) E1>E2>E3>E4>E5 6) 取每轮的第3名比赛 A2>B2>C2>D2>原创 2011-10-31 14:07:57 · 480 阅读 · 0 评论 -
编程之美--做题笔记(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 · 193 阅读 · 0 评论 -
编程之美阅读笔记--发帖水王
//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 · 2064 阅读 · 0 评论 -
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 · 171 阅读 · 0 评论 -
找出字符串的最长不重复子串
题目:找出字符串的最长不重复子串,输出最长子串 思路:维持两个数组:Start[]和All[], 分别记录,从当前的字符为起始的子串的最长值,和当前字符后面的最长子串长度。 在向前遍历时,当有重复字符出现时,更新相应的长度值, 即,更新Start[curIndex]为从当前点,到那个已经存在的重复字符之前的长度; All[curIndex]也要做相应调整。 比较:Max(原创 2011-11-03 13:52:41 · 427 阅读 · 0 评论 -
链表是否交叉
给定两个单链表: 如何判断单链表是否交叉?如何找出出交叉在哪里?如果可能有环呢? 如果两个链表相交,必然是Y字形,所以判断两个链表的最后一个节点是不是相同即可;根据两个链表的长度差 m-n,长的先走m-n步,短的从头开始走,相遇点即为交点;先判断两个链表有没有环,如果都没环(已解决),有一个有环一个没环,它们肯定不相交;如果都有环,如何判断? a) 从链表1的环里随便找一个原创 2011-11-07 19:59:23 · 242 阅读 · 0 评论 -
N个元素的有序数组A,判断是否有 A[i]=i 存在
/// //下述算法只对严格单调的整数数组有效,复杂度O(N); /// 查找数组中的一个数k,满足a[k] == k /// 需保证a数组严格单调上升 /// /// 找到返回k,找不到返回-1 public staticint FindNumber(int[]a) { if (a== null)转载 2011-11-07 20:01:53 · 1396 阅读 · 0 评论 -
飞机加油问题
每个飞机只有一个油箱飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈所有飞机从同一机场起飞,而且必须都安全返回机场,不允许中途降落,中间没有飞机场 五架护航够了。开始对称的想问题了,看来不对称。1.主机和第一架护航机起飞,1/6圈处护航机剩2/3箱油,刚好主机空出1/3箱的容量,加油后护航机刚好安全返回。2.主机加油后在2/3圈处油耗尽,第二架护航既可以在这个地方等主原创 2011-11-07 21:35:53 · 790 阅读 · 0 评论