Leetcode 每个小孩最多能分到多少糖果

Leetcode 每个小孩最多能分到多少糖果_第1张图片
本题用二分查找的方式来找糖果数量。
查找的区间:[0, 糖果总和]
判断当前数量是否满足条件:在糖果数组中计算能够分配的孩子数量,如果大于 k 说明这个数量是可行的,遍历一遍数组,时间复杂度为O(N)
二分查找的复杂度为O(logN),所以总时间复杂度为O(N*logN)
—————————————————————————————————————
二分查找的模板:

  • 循环条件:l < r(当l == r 时终止)
  • 中间值计算:mid = (l+r)/2 或者 mid = ceil( (l+r)/2 )
  • 边界更新:按照题目需要,两种情况:
  • l = midr = mid-1】或【l = mid+1r = mid
  • 【注:mid始终被分配到其中一边,如果左移不包括,

你可能感兴趣的:(二分,leetcode,c++)