阴阳神万物主
发表于 2020-4-13 17:29:28
March2615 发表于 2020-4-13 15:43
我认为是分成两块
->
因为第一块排序后是,加上后面的 ...
幽幽地说:这种输入超纲了呦~
whosyourdaddy
发表于 2020-4-13 18:30:23
def func374(arr):
count = 0
key = arr
len1 = len(arr)
for i in range(len1):
if key>arr:
continue
else:
key = arr
count += 1
return count
March2615
发表于 2020-4-13 20:04:44
阴阳神万物主 发表于 2020-4-13 17:29
幽幽地说:这种输入超纲了呦~
没事
今天看着最简单就给自己找了点事做
有重复的也想了一下
zltzlt
发表于 2020-4-13 20:15:38
TJBEST 发表于 2020-4-13 14:02
先来个简单的,后面看看有没有好办法
90 ms
zltzlt
发表于 2020-4-13 20:16:19
TJBEST 发表于 2020-4-13 14:08
第二个方法,用的求和公式。但是不知道速度如何?超时我想应该不会 O(n)的复杂度
80 ms
阴阳神万物主
发表于 2020-4-13 20:36:08
冰河星云 发表于 2020-4-13 14:16
为什么不能用其他语言答题啊
因为这是在python区啊。
l0stparadise
发表于 2020-4-13 20:53:27
本帖最后由 l0stparadise 于 2020-4-13 20:54 编辑
def f374(arr):
dp = *len(arr)
dp = 1
for i in range(1,len(arr)):
if arr < arr:
dp = dp
else:
if arr > max(arr[:i]):
dp = dp + 1
else:
dp = dp
return dp[-1]
NAMELESSONE
发表于 2020-4-14 09:26:28
def solve(arr):
count, mx = 0, 0
for i in range(len(arr)):
if arr > mx:
mx = arr
if i == mx:
count += 1
return count
lucky邪神
发表于 2020-4-14 11:17:46
不知道,我理解的对不对,分块,排序,重新组合后与原数组一样def func(arr):
length=len(arr)
num=1
index=0
while index<length-1:
if arr<arr:
num +=1
index +=1
return num
zltzlt
发表于 2020-4-14 13:17:25
kinkon 发表于 2020-4-13 14:16
第一个超时,第二个 117 ms
zltzlt
发表于 2020-4-14 13:18:10
March2615 发表于 2020-4-13 14:56
写完啦 感觉是这几天最不费脑子的了
110 ms
zltzlt
发表于 2020-4-14 13:25:28
sunrise085 发表于 2020-4-13 15:22
不带有分块的
带有分块的
输入 出错
zltzlt
发表于 2020-4-14 13:26:07
风魔孤行者 发表于 2020-4-13 16:34
输入以下数据超时:
zltzlt
发表于 2020-4-14 13:26:58
ouyunfu 发表于 2020-4-13 16:44
挑战一行代码:
输入以下数据超时:
zltzlt
发表于 2020-4-14 13:27:38
阴阳神万物主 发表于 2020-4-13 17:25
难度评级:简单
要素分析:比较
代码:
解答错误
输入:
输出:1
预期结果:2
zltzlt
发表于 2020-4-14 13:28:24
whosyourdaddy 发表于 2020-4-13 18:30
def func374(arr):
count = 0
key = arr
解答错误
输入:
输出:3
预期结果:2
kinkon
发表于 2020-4-14 13:34:45
zltzlt 发表于 2020-4-14 13:17
第一个超时,第二个 117 ms
第一个超时了?不应该啊,貌似速度应该差不多才对
sunrise085
发表于 2020-4-14 13:57:35
本帖最后由 sunrise085 于 2020-4-14 14:24 编辑
zltzlt 发表于 2020-4-14 13:25
输入 出错
修改好了,其实也就是把0在最开始的情况给漏掉了。求大佬看看运行效率
旅途Z
发表于 2020-4-14 14:31:29
本帖最后由 旅途Z 于 2020-4-14 19:07 编辑
已修改 Orzdef arr_split(array):
length = len(array)
index = 0
max_num = 0
block_num = 0
while index < length:
for i in range(index, length):
if array > max_num:
max_num = array
if max_num <= index:
block_num += 1
index += 1
break
else:
index += 1
return block_num
阴阳神万物主
发表于 2020-4-14 14:39:02
zltzlt 发表于 2020-4-14 13:27
解答错误
输入:
这个修好了。def solve(arr:list,which:bool=False)->int:
how = []
l = len(arr)
for i in range(1,l):
if max(arr[(how[-1]-1 if how else 0):i])<min(arr):
how.append(i)
else:
how.append(l)
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))