2017-03-09 80 views
0

我怎样写代码Python的RotationCount使用二进制搜索

def rotationcount(L): 
    pass 

由于

 
Input: L = [15, 18, 2, 3, 6, 12] 
Output: 2 

说明:初始数组必须是[2, 3, 6, 12, 15, 18]。 我们在初始数组旋转两次之后得到给定的数组。

 
Input: L = [7, 9, 11, 12, 5] 
Output: 4 
 
Input: L = [7, 9, 11, 12, 15]; 
Output: 0 
+0

是升序初始阵列的条件? – Saran

+0

这里“旋转”是什么意思? –

回答

0

您只需在列表中循环,直到你找到一个大的元素,然后一个小元素:

def rotationcount(L): 
    for i in range(len(L)): 
     if L[i]<L[i-1]: 
      return i 
+0

DEF test_rotation_count_scale(个体): N = 200 DEF FOO(ⅰ): 峰= 150 返回1 +峰如果I <峰别的I - 峰 F = IntFunction(FOO中,n) self.assertEqual(rotationcount (F),150)它不适用于这个def。那么我该如何改进呢? –

+0

@ WentaoHu我不知道'IntFunction'有什么用,所以我不能告诉你如何改进它。你应该更新你的问题更多的细节或输入/输出的例子。 –