算法随笔(1)

来源:互联网 发布:双十一淘宝的书降价吗 编辑:程序博客网 时间:2024/05/16 11:44

  • 9月21日-算法课上的小题目1中间数
  • 9月22日-算法课上的小题目2一个开关

9月21日-算法课上的小题目1:中间数

在一个数组中,如{1,6,4,5,7,9,8,10,14,12},存在这样的数:7和10,它们的左边全部比自己小,右边全部比自己大,这样的数成为中间数。设计一个求中间数的算法。

  • 思想:从左边遍历一次数组,求出满足左边全部比自己小的数;从右边遍历一次数组,求出满足右边全部比自己大得数。最后两个集合求交集。Over~

9月22日-算法课上的小题目2:一个开关

房间里有一个开关,开始是关着的,100个人随机地被叫进来,如何确定在何时每个人都进来过至少一次。

  • 思想:选一个人计数,约定只有计数员能关闭开关,每个人进房间后,开关是关着的就打开,开着的就不操作。这样当计数员进房间看到开关打开时,计数加1并关闭开关。计数到99后就可以确定满足要求。(计数员也是概率地被叫进来,所以这个过程会非常漫长。。。)

难度加大版:房间里有一个开关,开关的初始状态未知,所以也没办法事前约定,100个人随机的等概率地依次进来,如何确定在何时每个人都进来过至少一次。

  • 思想:选一个人计数,约定只有计数员能关闭开关。还是跟上面一样的操作,计数到198后就可以确定满足要求。(不用管开关的初始状态,其他99个人每人至少操作了2次)
原创粉丝点击