Python 2查找子数组

时间:2017-04-17 18:49:18

标签: python algorithm

我是编程新手,刚开始学习算法。我试图解决的问题来自Khan Academy算法课程(它是用JavaScript编写的,但我在Python中经历过它)并且它要求我在子数组中找到最小值的索引。

具体来说,任务如下: 完成写入函数indexOfMinimum,它接受一个数组和一个数字startIndex,并返回索引startIndex或更大值时出现的最小值的索引。如果此最小值在此范围内出现多次,则返回此范围内最左侧出现的索引。

我一直在网上搜索这个问题的答案大约一个星期了,并且没有设法找到任何在Python 2中解决它的资源。如果有人可以帮我解决这个问题,我将不胜感激。 编辑:在阅读了一些回复之后,我有以下内容:(它对我有用,但如果有人看到它有问题,请在下面评论)

def indexOfMinimum(lst,index):      
    sublist = lst[index:]  
    for minValue in lst:  
        minIndex = sublist.index(min(sublist))  
        return minIndex  
print indexOfMinimum([2,4,6,8,1,3,5,0,7,9], 4)

3 个答案:

答案 0 :(得分:0)

这将需要三个Python工具:列表切片,方法 min index 。使用起始索引,将 sub_list 设置为给定列表的必需片段。将 min 应用于子列表,获取列表的最小值。最后,在该最小值上使用 sublist.index 以获取最左侧外观的索引。

这足以让你感动吗?

答案 1 :(得分:0)

因此,您希望将变量(此处为"结果")设置为数组的第一个元素(也可以从右向左开始)并与每个元素进行比较。如果要比较的元素结果是较小的,则将结果设置为等于它。

为了帮助您入门,这是一种简单(天真)的解决方法:



array = [1, 2, 3, 4]
result = array[0]
for i in array:
  if result > i:
    result = i
    i += 1;
print(result)




希望有所帮助!

答案 2 :(得分:0)

有很多方法,这里有一个:

def indexOfMinimum(lst,index):
smallest=lst[index] #assuming index is within range
smallestIndex=index
while index<len(lst):
    if lst[index]<smallest:
        smallest=lst[index]
        smallestIndex=index
    index+=1
return smallestIndex