zltzlt
发表于 2020-4-14 17:54:50
l0stparadise 发表于 2020-4-13 20:53
解答错误
输入:
输出:3
预期结果:2
zltzlt
发表于 2020-4-14 17:55:33
NAMELESSONE 发表于 2020-4-14 09:26
117 ms
zltzlt
发表于 2020-4-14 17:56:02
lucky邪神 发表于 2020-4-14 11:17
不知道,我理解的对不对,分块,排序,重新组合后与原数组一样
解答错误
输入:
输出:2
预期结果:1
zltzlt
发表于 2020-4-14 17:57:22
sunrise085 发表于 2020-4-14 13:57
修改好了,其实也就是把0在最开始的情况给漏掉了。求大佬看看运行效率
解答错误
输入:
输出:0
预期结果:1
zltzlt
发表于 2020-4-14 17:59:53
旅途Z 发表于 2020-4-14 14:31
解答错误
输入:
输出:2
预期结果:1
zltzlt
发表于 2020-4-14 18:01:30
sunrise085 发表于 2020-4-14 13:57
修改好了,其实也就是把0在最开始的情况给漏掉了。求大佬看看运行效率
不可能分成 0 份
zltzlt
发表于 2020-4-14 18:02:41
阴阳神万物主 发表于 2020-4-14 14:39
这个修好了。
输入以下数据超时:
sunrise085
发表于 2020-4-14 20:18:04
zltzlt 发表于 2020-4-14 18:01
不可能分成 0 份
呃,之前对题目理解有偏差。。。。以为会有无法分的情况,就让函数返回0了。
这次可能就没问题了吧。
有问题也不再改了,有问题说明我对这道题的理解还是有偏差。
另外你发的那个txt中的列表,结果是1吗?
我用我的程序试了一下,结果是1
def fun374(list1):
l=len(list1)-1
result=1
t=list1.index(0)
while t<l:
if t!=0:
while max(list1[:t])>t:
t=max(list1[:t])
if t==l:
break
result+=1
t=list1.index(t+1)
return result
阴阳神万物主
发表于 2020-4-14 20:20:03
zltzlt 发表于 2020-4-14 18:02
输入以下数据超时:
时间节约,完成!!!
def solve(arr:list,which:bool=False)->int:
how = []
l = len(arr)
m = 0
for i in range(l):
m = max(m,arr)
if m == i:how.append(i+1)
res = len(how)
if which:
how.insert(0,0)
for i in range(1,res):print(arr:how],end=',')
else:print(arr:])
return res
if __name__ == '__main__':
print('示例1 输出:',solve())
print('示例2 输出:',solve(,1))
print('之前错的:',solve(,1))
这个测试数据结果是 1
用时尺度是我感知不到的。我的感知是一瞬间就出结果了。
岚冰1234
发表于 2020-4-15 10:46:02
本帖最后由 岚冰1234 于 2020-4-15 10:48 编辑
import math
import copy
def splice_lst(lst,num):
#列表里包含列表时,将其展开,
def deep(lst):
result = []
for each in lst:
if type(each) == list:
#如果元素是列表,将其排序
each.sort()
result.extend(deep(each))
else:
result.append(each)
return result
#分块
def chunk(lst,num):
num = int(num)
size = math.ceil(len(lst)/num)
L = list(range(0,size))
def ch(x):
lst1 = lst
return lst1
lst2 =list(map(ch, L))
#深拷贝,实现讲分片的方式展示出来
lst3 = copy.deepcopy(lst2)
result = deep(lst2)
print('数组分成',num,'元素一组:',lst3,',其输出结果是:',result)
for each in range(1,num+1):
chunk(lst,each)
a=
print(splice_lst(a,4))
输出结果
数组分成 1 元素一组: [, , , , ] ,其输出结果是:
数组分成 2 元素一组: [, , ] ,其输出结果是:
数组分成 3 元素一组: [, ] ,其输出结果是:
数组分成 4 元素一组: [, ] ,其输出结果是:
zltzlt
发表于 2020-4-15 13:20:14
sunrise085 发表于 2020-4-14 20:18
呃,之前对题目理解有偏差。。。。以为会有无法分的情况,就让函数返回0了。
这次可能就没问题了吧。
...
是的,结果是 1
zltzlt
发表于 2020-4-15 13:20:52
sunrise085 发表于 2020-4-14 20:18
呃,之前对题目理解有偏差。。。。以为会有无法分的情况,就让函数返回0了。
这次可能就没问题了吧。
...
解答错误
输入:
输出:2
预期结果:1
zltzlt
发表于 2020-4-15 13:21:30
阴阳神万物主 发表于 2020-4-14 20:20
时间节约,完成!!!
这个测试数据结果是 1
88 ms
zltzlt
发表于 2020-4-15 13:21:43
岚冰1234 发表于 2020-4-15 10:46
输出结果
数组分成 1 元素一组: [, , , , ] ,其输出结果是:
数 ...
貌似来晚了呢
zltzlt
发表于 2020-4-15 13:23:08
旅途Z 发表于 2020-4-14 14:31
已修改 Orz
83 ms
sunrise085
发表于 2020-4-15 14:55:26
zltzlt 发表于 2020-4-15 13:20
解答错误
输入:
呃,好吧。序列是从0开始的,max那里应该是t+1而不应该是t
zltzlt
发表于 2020-4-15 17:24:55
sunrise085 发表于 2020-4-15 14:55
呃,好吧。序列是从0开始的,max那里应该是t+1而不应该是t
输入 有错……
sunrise085
发表于 2020-4-15 17:29:55
zltzlt 发表于 2020-4-15 17:24
输入 有错……
没错呀?
def fun374(list1):
l=len(list1)-1
result=1
t=list1.index(0)
while t<l:
if t!=0:
while max(list1[:t+1])>t:
t=max(list1[:t+1])
if t==l:
break
result+=1
t=list1.index(t+1)
return result
print(fun374())
zltzlt
发表于 2020-4-15 17:36:26
sunrise085 发表于 2020-4-15 17:29
没错呀?
噢,搞错了,88 ms
lucky邪神
发表于 2020-4-18 21:50:23
zltzlt 发表于 2020-4-14 17:56
解答错误
输入:
将这个数组分割成几个 “块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同
请问对题目重新理解是否正确:
1、按升序排序后的原数组相同指的是
2、分成的块进行排序,这个是指可以将块根据需要排序
3、块中的元素也进行排序(升序)