11月编程

11月编程

方法1:我的做法

 1 def f(num,t):
 2     count=0
 3     flag=True
 4     #判断是否在列表中,在的话,很简单
 5     for i in range(len(num)):
 6         if num[i]==t:
 7             return i
 8             flag=False
 9             break
10     #结束一轮判断,开始找位置排序了
11     if flag:
12         for i in range(len(num)):
13             if num[i]>t:
14                 num.insert(i,t)
15                 return i
16             else:
17                 return len(num)+1
18                 num.append(t)
19 
20 num=[1,3,5,5,5,6]
21 target=7
22 print(f(num,target))
23 
24 num=[1]
25 target=0
26 print(f(num,target))

方法2:用了序列(字符串、元组、列表)in \ not in 操作符;用了index 方法;用了append;用了sort。

1 def f(num,t):
2     if t not in num: # 如果t不在列表中,把它加入列表重新排序,返回索引值
3         num.append(t)
4         num.sort()
5     return num.index(t) #返回目标值的索引

方法3:二分查找法

def (num,t):
    L , R = 0 , len(num)-1 #边界[L,R]
    while L <= R:
        M=(L+R)//2
        if t <=num[M]: #右边界更新
            R = M -1 
        else:
            L = M =1   #左边界更新
    return L

 

 

 

上一篇:字符串拼接 StringBuilder


下一篇:foreach 循环里进行元素的 remove/add 操作