校招 刷题

Posted meikon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了校招 刷题相关的知识,希望对你有一定的参考价值。

1.约瑟夫环问题

思路:python列表,处理时有一定优势,因为可以随意拼接。

以前用c++ 写过一个。用循环链表。只需要构建一个循环列表就好。构建循环链表需要麻烦一些,但循环列表就是处理起来很方便。链表的删除很方便。

python程序的思路;

利用列表的可拼接性。

第一个while:

如果人数大于报的数,则直接可以去除,然后把去除的两边在拼接起来。

第二个while:(重点)

人数小于报的数,需要把列表直接拼接,拼接的列表,一定要大于报的数长度,为了避免特殊情况,长度大于列表现有长度+报数值,有时间复杂度要求,也可以用注释的替代。

然后去除值,截取现有长度-1(这个也要注意),直到列表只剩一个元素。


lis = [ i for i in range(1,101)] print(lis) m = 5 while len(lis) >= m: lis.remove(lis[m-1]) lis = lis[m-1:]+lis[0:m-1]
while len(lis) > 1:
n = len(lis)
print(n)
print(lis)
# if n < m:
# ind = m // n + 1
# # print(lis)
# lis = lis*ind + lis
# print(lis)
while len(lis) < m+n:
lis += lis
# print(len(lis))
# print(m-1)
lis.remove(lis[m-1])
lis = lis[m-1:m+n-2]
print(lis)

 

以上是关于校招 刷题的主要内容,如果未能解决你的问题,请参考以下文章

我也曾刷题刷到自闭

i学刷题刷时长自动刷课软件插件分享

雨课堂刷课件刷题刷视频插件分享

法宣在线刷积分刷题刷考试软件分享

力扣-面试题刷题第一天

人卫慕课自动刷课刷题刷视频软件分享