Python习题:给定一个排序的整数列表(升序)和一个要查找的整数target,查找到target第一次出现的下标(从0开始),如果target不存在于列表中,返回-1

方法一:使用内置函数index()可直接查找到下标

1 context = input("请输入列表和整数:").strip()
2 int_list =[int(n) for n in (context.replace("[",'').replace("]",'').split(',')[:-1])]
3 target = int(context.split(',')[-1])
4 
5 if target in int_list:
6     flag = int_list.index(target)
7 else:
8     flag = -1
9 print(flag)

方法二:使用二分法

 1 context = input("请输入列表和整数:").strip()
 2 int_list =[int(n) for n in (context.replace("[",'').replace("]",'').split(',')[:-1])]
 3 target = int(context.split(',')[-1])
 4 
 5 min = 0
 6 max = len(int_list) - 1
 7 
 8 if target in int_list:
 9     while min < max:
10         minddle = (min + max) // 2
11         if target > int_list[minddle]:
12             min = minddle + 1
13         elif target < int_list[minddle]:
14             max = minddle - 1
15         else:
16             while target == int_list[minddle]:
17                 minddle -= 1
18                 flag = minddle + 1
19             break
20 else:
21     flag = -1
22 print(flag)

猜你喜欢

转载自www.cnblogs.com/felixqiang/p/10312038.html