头发里长了一个好像是猴子有头发吗,不太确定,谁能帮我确定一下,如果是该怎

约瑟夫问题是个有名的问题:N个囚围成一圈从第一个开始报数,第M个将被杀掉最后剩下一个,其余人都将被杀掉例如N=6,M=5被杀掉的顺序是:5,46,23,1

由于STL中没囿链表的模板,需要自己写一个模板本着“不要重复造轮子”的精神,我找了一个。


 

输入100、10时输出26,结果正确但是链表真的太麻煩了,首先要写链表的定义再把它们链接成环形链表,再一个个报数、删除结点在百度百科中找到了数组的解法。

在链表中死人的節点被删除了,剩下的环形链表继续在数组中可以不删除死人节点,仅将其状态置为1遍历时,遇到状态为1的点就跳过去也相当于死囚未参加游戏。但是实际上还是遍历到了若有1亿人参与游戏,就算到最后一轮游戏仍需要遍历1亿遍而链表此时只需要遍历2遍。
数组方法的优点是代码简洁

发布了27 篇原创文章 · 获赞 16 · 访问量 1万+

Python 的 Decorator在使用上和Java/C#的Annotation很相似就是在方法名前面加一个@XXX注解来为这个方法装饰一些东西。但是Java/C#的Annotation也很让人望而却步,太TMD的复杂了你要玩它,你需要了解一堆Annotation的类库文档讓人感觉就是在学另外一门语言。 而Python使用了一种相对于Decorator Pattern和Annotation来说非常优雅的方法这种方法不需要你去掌握什么复杂的OO模型或是Annotation的各种类库規定,完全就是语言层面的玩法:一种函数式编程的技巧如果你看过本站的《函数式编程》,你一定会为函数式编程的那种“描述你想幹什么而不是描述你要怎么去实现”的编程方式感到畅快。(如果你不了解函数式编程那在读本文之前,还请你移步去看看《函数式編程》)

我要回帖

更多关于 内眼角红血丝 的文章

 

随机推荐