大周家的MSH 发表于 2020-4-14 14:47
应该可以吧。。。
输入 出错
ouyunfu 发表于 2020-4-14 15:54
输入 出错
Fallenight 发表于 2020-4-14 16:16
def new_sort(list):
a = len(list)
for each in list:
解答错误
输入:
输出:2
预期结果:0
zltzlt 发表于 2020-4-15 13:26
第一段代码的 nums 是……?
弄错了,已经改正
def func375(arr):
left = 0
right = 0
for i in range(len(arr)):
if arr >= arr:
left = i
break
for j in range(len(arr)-1, 0, -1):
if arr <= arr:
right = j
break
if right > left:
print(right-left+1)
else:
print(0)
zltzlt 发表于 2020-4-15 13:33
输入 出错
谢谢,没想到这种情况,正在改正{:5_109:}
def fun375(nums):
num_sort=nums[:]
num_sort.sort()
n = len(nums)
i,j = 0,n - 1
while i < n and nums == num_sort:
i += 1
while j > i + 1 and nums == num_sort:
j -= 1
return j - i + 1
zltzlt 发表于 2020-4-15 13:33
输入 出错
谢谢指正def f375(arr):
a=sorted(arr)
b = !=a]
if b == []:
return 0
return b[-1]-b+1
难度评级:简单
要素分析:对比
代码:def solve(lst:'list of int',how:bool=False)->int:
if not lst:
raise ValueError('empty lst')
le = len(lst)
b,s = ]*2
l,r = 0,0
for i in range(le-1):
if lst>lst:
b,s = ]*2
l,r = i,i
break
for i in range(l,le):
n = lst
if n > b:b = n
elif n < b:r = i
if n < s:
s = n
for j in range(l,0,-1):
if lst < n:
l = j+1
break
else:l = 0
if how:print(lst)
return r-l
if __name__ == '__main__':
print('示例1 输出:',solve(,1))
当输入列表已经是完全升序的时候没有任何一个子数组需要排列,最短为空组,没问题吧?
思路解说:
需要排序的连续子组有着特性:
1. 左右两端外一定是升序
2. 子组的最小值大于左边的最大值,子组的最大值小于右边的最小值
按照特性寻找即可
asianz 发表于 2020-4-15 14:14
这个你来来,应该是 6,可你的结果是 5。
whosyourdaddy 发表于 2020-4-14 17:24
def func375(arr):
temp = sorted(arr)
length = len(arr)
解答错误
输入:
输出:1
预期结果:0
旅途Z 发表于 2020-4-14 22:58
总觉得写的有多余的部分
解答错误
输入:
输出:1
预期结果:0
fan1993423 发表于 2020-4-15 00:47
44 ms
岚冰1234 发表于 2020-4-15 10:54
只有我一个人没看懂什么意思吗,什么是连续的子数组,给的例子是输入:
输出:5, ...
建议先去学学算法
776667 发表于 2020-4-15 09:12
40 ms
本帖最后由 风魔孤行者 于 2020-4-15 17:47 编辑
def f(list1):
list2 = sorted(list1)
if list1 == list2:
return 0
else:
for m in range(len(list1)):
if list1 != list2:
mi = m
break
for n in range(len(list1)-1,-1,-1):
if list1 != list2:
ma = n
break
return ma-mi+1
def func375(arr):
temp = sorted(arr)
length = len(arr)
maxs = 0
mins = 0
for i in range(length):
if temp != arr:
mins = i
break
for i in range(length-1,mins,-1):
if temp !=arr:
maxs = i
break
if maxs == mins:
return 0
return maxs-mins+1
kinkon 发表于 2020-4-14 13:35
不知道理解对不对
第一个 41 ms,第二个 47 ms
asianz 发表于 2020-4-15 14:14
输入 出错
蒋博文 发表于 2020-4-15 15:03
49 ms