需要帮助 Python 解决 hackerrank 问题
Need help in Python hackerrank problem solving
所以,我被一个问题困住了,我不确定我的代码做错了什么。
问题是-给定一个整数数组,找到任意两个元素的绝对差小于或等于的最长子数组。
示例 a = [1,1,2,2,4,4,5,5,5]
有两个子数组满足条件:和.
最大长度子数组有元素。
[1,1,2,2]
和 [4,4,5,5,5]
Returns
int: 满足条件的最长子数组的长度
或访问 link Hackerrank Problem
def pickingNumbers(a):
a.sort()
answer = 0
flag = False
for i in range(len(a)-1,1,-1):
count = 0
temp = [list(l) for l in list(itertools.combinations(a,i))]
for j in temp:
for k in range(len(j)-1):
if abs( j[k+1] - j[k] ) <= 1:
count +=1
if count == len(j):
answer = len(j)
break
请注意,该语句要求您查找子数组,而不是子序列。子数组是来自父数组的连续元素链。在这里,只要给你的数组升序,你就可以通过对数组进行排序来破坏父数组的顺序。因此你的程序会给出错误的输出
所以,我被一个问题困住了,我不确定我的代码做错了什么。
问题是-给定一个整数数组,找到任意两个元素的绝对差小于或等于的最长子数组。
示例 a = [1,1,2,2,4,4,5,5,5]
有两个子数组满足条件:和.
最大长度子数组有元素。
[1,1,2,2]
和 [4,4,5,5,5]
Returns int: 满足条件的最长子数组的长度
或访问 link Hackerrank Problem
def pickingNumbers(a):
a.sort()
answer = 0
flag = False
for i in range(len(a)-1,1,-1):
count = 0
temp = [list(l) for l in list(itertools.combinations(a,i))]
for j in temp:
for k in range(len(j)-1):
if abs( j[k+1] - j[k] ) <= 1:
count +=1
if count == len(j):
answer = len(j)
break
请注意,该语句要求您查找子数组,而不是子序列。子数组是来自父数组的连续元素链。在这里,只要给你的数组升序,你就可以通过对数组进行排序来破坏父数组的顺序。因此你的程序会给出错误的输出