算法99---丰收(网易笔试)--二分查找

算法99---丰收(网易笔试)--二分查找

思路:

加和+二分查找

 

 代码:

n = int(input())
ns = list(map(int, input().split()))
m = int(input())
q = list(map(int, input().split()))
 
for i in range(1, n):
    ns[i] += ns[i-1]
for i in q:
    l, r =0, n-1
    while l < r:
        mid = (l +r) >> 1
        if ns[mid] < i:
            l = mid + 1
        else:
            r = mid
    print(r + 1)

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-13
  • 2022-12-23
  • 2021-05-19
猜你喜欢
  • 2022-01-28
  • 2022-12-23
  • 2021-12-10
  • 2021-05-17
  • 2022-12-23
  • 2021-12-11
  • 2022-12-23
相关资源
相似解决方案