之前遇到一个面试题,大意是:电梯里一拥而上一群人,导致电梯超重,于是大家约定,站成一圈,任选一人开始报数,数到3的那个人出电梯,圈内的下一个人重新从1开始报数,数到3的人再出电梯,一直这样,直到电梯不超重。
现给一串有序的数字,电梯超重需出去M个人,数到K的人出电梯,让列出出电梯的人的序号。
当时第一反应是约瑟夫环,然后用循环链表解决了。
什么是约瑟夫环?百度了一下,原来还有这么一个故事:
在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。首先从一个人开始,越过k-2个人(因为第一个人已经被越过),并杀掉第k个人。接着,再越过k-1个人,并杀掉第k个人。这个过程沿着圆圈一直进行,直到最终只剩下一个人留下,这个人就可以继续活着。问题是,给定了和,一开始要站在什么地方才能避免被处决?Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃过了这场死亡游戏
解决这类问题,最直接的方式,就是使用循环链表物理还原。
golang实现:type Node struct {value intnext *Node}type Circle struct {tail *Nodelenth int}// 增加节点:func (c *Circle) add(value int) {newNode := &Node{value, nil}if c.lenth == 0 { //空链表中添加节点c.tail = newNodec.tail.next = newNode} else {newNode.next = c.tail.nextc.tail.next = newNodec.tail = newNode}c.lenth = 1}// 初始化 模拟所有人围成一圈func (c *Circle) init(total int) {for i := 1; i 运行结果,最终的状态确实是:16 31 ,整个队伍就剩下Josephus和他的朋友2人……我不由感叹,这,太TM聪明了另外说到面试题,我当时正得意输出结果和测试用例一样时,面试官给我输入了一个场景之外的奇葩数字,还好hold住了。所以,大家别忘了处理特殊情况,像 41,0这种
死亡游戏 先蹲下呼吸15下,最后一下憋住气站起来,然后一个人按住自己的胸口,会昏过去
无限接近死亡的感受,初中时期突然学校流行一个叫做死亡游戏的玩法,一顿操作以后立刻昏倒(主要是靠大脑缺氧和血),7年过去了我对当时的感觉依然记忆犹新,倒下只需要一瞬间,前一秒你站着和盆友说话,后一秒就倒下了。
水下闭气最新吉尼斯记录:
世界自由潜水冠军吉安鲁卡·吉诺尼在游泳池中练习龟息大法18分3秒69,一举打破了水下憋气时间最长世界纪录。
吉安鲁卡·吉诺尼是在意大利曼图亚省埃文斯维尔市的一个游泳池中展开这项挑战的,在意大利定时协会官员的见证下,吉诺尼先进行了氧气增补,戴上面具吸了30分钟纯氧。
他被行刑般地放入池底,足足坚持了18分3秒69之后,才在众人的鼓掌和欢呼声中浮出水面,此刻他的脸部因痛苦而扭曲,嘴唇也因缺氧变成了青紫色。医生随后为吉诺尼进行全面身体检查,发现他的身体几乎虚脱到极限。
玩过死亡游戏的人有什么伤害一般活得到多久 还有用不用去吃点药之内得
首先说明,该游戏极度危险,预计昏迷超过4秒以上会造成大脑损伤,7秒左右会直接死亡,而且急救希望为0,所以切勿尝试!!!你的问题不是拉不起来,而且直接处于缺氧状态,无任何意识。
活人能拉的动,是因为其大脑会潜意思的控制机体跟随被拉动者运动,防止自身受伤,而你则是无任何反映,所以拉不动,并不是有意识在地上;当然还有一种可能是自我保护行为,严重受伤时,不动是最好的。
你起来以后,虽然供血跟上了,但是仍旧不充足(因机能紊乱造成血压降低,供血速度慢),造成大脑部分区域未得到供氧,以至于出现幻觉或大脑下意识控制身体想恢复正常等情况,抱着头乱跑就很好的说明,
有可能在你撞到栏杆的时候,因冲击导致的惯性(磕碰和摔倒的时候)血液被快速甩入脑内,供大脑控制区域被彻底激活,控制身体机能正常运作,这才得以恢复。(国外有用钝器猛击打昏迷者头部使其恢复的办法,但是这种解救方法无异于杀人,轻者脑震荡,重者身亡)
建议LZ去医院做个全面的脑部检查,防止隐性脑部疾病的出现,比如脑出血等其他症状,该游戏如果对脑部造成的损伤,可以说是永久性的,很难恢复,只希望LZ只是轻微的问题。
最后希望LZ接受这次教训,如果你并没有碰到栏杆,时间也许只是稍微一长那么一点点,则很有可能就会变成植物人甚至死亡,不可抱任何侥幸心理,幸运不会永远的眷顾你,这个游戏者如果死了或者重伤昏迷等情况,其他的助手都会因为杀人罪或过失杀人罪等罪名被公诉判刑,到时候最起码会毁掉2个家庭,最少6口人跟着遭难,所以奉劝你身边的人远离这个游戏,这根本就不是游戏,这是拿着命开玩笑!