python技巧:逆序循环

Python可以很简单实现C语言中for(i = len; i>=0; –i)的逆序循环,而且有不止一种写法:

第一种,for i in range(len, -1, -1) ,简单易懂

第二种,for i in range(0, len+1)[::-1],利用list的[start:end:step]排序功能,当然在大数组下性能堪忧

阿里笔试题战士传信问题

Q: 战报交流:战场上不同的位置有N个战士(n>4),每个战士知道当前的一些战况,现在需要这n个战士通过通话交流,互相传达自己知道的战况信息,每次通话,可以让通话的双方知道对方的所有情报,设计算法,使用最少的通话次数,使得战场上的n个士兵知道所有的战况信息,不需要写程序代码,得出最少的通话次数。 A: 分成两组:1) 2个node,2) n-2个node ; 2个node需要连接1次,使得2 …

阅读全文

为何线程互斥锁优于读写锁

尽管确实是在读多写少的情况下使用,但系统在测试中确实出现线程互斥锁优于读写锁的情况, muduo库中给出了多种互斥锁优于读写锁的原因: 1. 读锁加锁的开销不会比mutex小,因为它需要更新当前reader的数目,如果临界区很小,那么mutex往往更快。 实际上mutex是由整形变量及等待队列构成 2. 读锁可能提升为写锁,增大调试难度 实际上系统调试过程中的确出现过这样的问题,甚至导致死锁,当时 …

阅读全文