二分查找避免溢出

  • Post author:
  • Post category:其他




二分查找



代码模板

/**
* 二分查找模板
*/
 public int firstBadVersion(int n) {
        int left = 1;
        int right = n;
        int mid;
        while (left < right) {
           mid = left + (right - left) / 2; // 防止计算时溢出
            if(条件){
                right = mid-1;
            }
            else{
                left = mid + 1;
            }
        }
        return left;
    }



注意事项

在这里插入图片描述

二分查找使用:

  • mid = left + (right – left) / 2
  • mid = ((right – left) >> 1) + left


    避免(left+right)出现溢出



版权声明:本文为qq_45077173原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。