xiangjianshinan
发表于 2020-4-19 15:49:19
风魔孤行者 发表于 2020-4-19 13:59
每轮反转,用递归的方式,没有想到!!!
学习啦。谢谢前辈!
findland
发表于 2020-4-19 15:49:59
本帖最后由 findland 于 2020-4-19 16:00 编辑
def f379(num):
while len(num)>1:
num = num
num.reverse()
return num
def f379_2(num):
if len(num)==1:
print(num)
else:
num = num
num.reverse()
f379_2(num)
f379 常规方法 f379_2递归方法
xiangjianshinan
发表于 2020-4-19 15:52:17
听风夜雨 发表于 2020-4-19 10:17
哇,你的这个办法好!!!学习啦,压根没想到用简单的切片也可以实现~~~~
{:5_101:}
findland
发表于 2020-4-19 15:59:31
本帖最后由 findland 于 2020-4-19 16:02 编辑
发错了
风魔孤行者
发表于 2020-4-19 17:13:42
xiangjianshinan 发表于 2020-4-19 15:49
每轮反转,用递归的方式,没有想到!!!
学习啦。谢谢前辈!
做个几天的题就会这个套路了,坚持{:10_256:}
zltzlt
发表于 2020-4-19 17:28:12
March2615 发表于 2020-4-18 19:47
秒出结果{:10_256:}
zltzlt
发表于 2020-4-19 17:29:58
斐波纳税 发表于 2020-4-18 19:49
输入 1000000000 超时
zltzlt
发表于 2020-4-19 17:31:59
ouyunfu 发表于 2020-4-18 22:08
输入大数据超时
zltzlt
发表于 2020-4-19 17:32:34
旅途Z 发表于 2020-4-19 01:26
传进的是一个整数啊……
zltzlt
发表于 2020-4-19 17:33:33
Python3005 发表于 2020-4-19 03:32
输入 3835 超时
zltzlt
发表于 2020-4-19 17:36:56
kkk999de 发表于 2020-4-19 09:21
输入 1 出错
zltzlt
发表于 2020-4-19 17:37:38
听风夜雨 发表于 2020-4-19 10:17
输入 100000000 超时
zltzlt
发表于 2020-4-19 17:38:25
风魔孤行者 发表于 2020-4-19 13:59
会超时
zltzlt
发表于 2020-4-19 17:39:55
xiangjianshinan 发表于 2020-4-19 15:46
终于能做出一个题目啦,好开心!!!
先上代码,再来学习其他前辈的。
自己做过后,再看别人的,并融会贯 ...
输入 6 结果有错
zltzlt
发表于 2020-4-19 17:40:50
findland 发表于 2020-4-19 15:49
f379 常规方法 f379_2递归方法
输入的是一个整数{:10_262:}
小十九
发表于 2020-4-19 18:23:16
永恒的蓝色梦想 发表于 2020-4-18 19:13
Python 牛逼!
请问->int 是什么意思呀,刚开始学python,小白一个,请指教!
小十九
发表于 2020-4-19 18:24:15
本帖最后由 zltzlt 于 2020-4-20 13:19 编辑
def d379(n):
first_list = []
result_list = []
for i in range(n):
first_list.append(i+1)
while n > 1:
i = 1
while i < n:
result_list.append(first_list)
i = i + 2
result_list.reverse()
first_list = result_list
result_list = []
n = len(first_list)
return first_list
永恒的蓝色梦想
发表于 2020-4-19 18:51:10
小十九 发表于 2020-4-19 18:23
请问->int 是什么意思呀,刚开始学python,小白一个,请指教!
这个是注释,说明它的返回值
TJBEST
发表于 2020-4-19 19:43:29
本帖最后由 TJBEST 于 2020-4-19 23:14 编辑
def fun379(n):
def inner(start,end,step):
number = 1 + abs(start-end)//step
if number > 3:
if number % 2 == 0:
return inner(end,start-step*(start-end)//abs(start-end),step*2)
else:
return inner(end + step*(start-end)//abs(start-end),start-step*(start-end)//abs(start-end),step*2)
elif number == 3:
return (start+end)//2
elif number == 2:
return end
else:
return start
return inner(1,n,1)
渺渺予怀
发表于 2020-4-19 20:43:18
n = input("请输入有序数组最大值:")
li = []
for i in range(1, int(n)+1):
li.append(i)
while True:
le = len(li)
les = int(le/2)
if le != 1:
for j in range(0, le-les):
li.remove(li)
li.reverse()
else:
break
print(li)