算法——二分查找(day10)
创始人
2024-11-21 04:04:03
0次

目录

69. x 的平方根

题目解析:

算法解析:

代码:

35. 搜索插入位置

题目解析:

算法解析:

代码:


69. x 的平方根

69. x 的平方根 - 力扣(LeetCode)

题目解析:

老规矩,先用暴力算法思考~

我们对从1到x的平方挨个遍历去寻找,如果发现遇到其平方和刚好相等那就返回原位置,如果x刚好卡在两数平方和之间,那就取其前面的。

算法解析:

我们通过暴力可以发现能将所有情况划分为两个区间,一个是平方和小于等于x,代表能得到结果的区间。另一个是平方和大于x的区间,代表无法得到结果的区间。

  • 当mid*mid落入有结果区间时,left紧紧跟住mid即可。
  • 当mid*mid落入无结果区间时,right跳出区间即可。

代码:

class Solution { public:     int mySqrt(int x) {         //特殊情况,特殊处理         if (x < 1) return 0;         int left = 1;         int right = x;         while (left < right)         {             //防止数值溢出             long long mid = left + (right - left + 1) / 2;             if (mid * mid > x)             {                 right = mid - 1;             }             else             {                 left = mid;             }         }         return left;     } };

 

35. 搜索插入位置

35. 搜索插入位置 - 力扣(LeetCode)

题目解析:

这道题一看复杂度就知道要用二分查找了,而关键就在于我们需要找到其二段性。需要划分出有结果的区间与无结果的区间。

算法解析:

何为有结果区间呢?就比如我们找到与target相等的值就会返回其结果,找到比target大的值就意味要插入数组中并返回下标。这两个都是有结果的所以以它们为边界划分区间。

  • 当mid落入有结果区间,left跟紧mid即可。
  • 当mid落入无结果区间,right跳出区间即可。

代码:

class Solution { public:     int searchInsert(vector& nums, int target) {         int left = 0;         int right = nums.size() - 1;          while (left < right)         {             int mid = left + (right - left) / 2;              if (nums[mid] < target)             {                 left = mid + 1;             }             else             {                 right = mid;             }         }         if (nums[right] >= target)         {             return right;         }         //边界情况         else         {             return right + 1;         }     } };

相关内容

热门资讯

实测交流透视挂!宝玛大厅ai智... 实测交流透视挂!宝玛大厅ai智能透视挂教程,宝玛大厅破解软件经验(本来有挂辅助)1、每一步都需要思考...
总算了解辅助器!朱雀吴江三缺一... 总算了解辅助器!朱雀吴江三缺一ai智能透视辅助挂技巧,朱雀吴江三缺一好像是有挂(有辅助挂细节)朱雀吴...
今日公布透视!九五至尊大厅ai... 今日公布透视!九五至尊大厅ai智能透视插件,九五至尊大厅有没有透视挂窍门(切实有挂技术)1、在九五至...
玩家必看科普开挂!聚闲麻将ai... 玩家必看科普开挂!聚闲麻将ai智能透视辅助挂软件,聚闲麻将总是真的有挂(有辅助挂方式)聚闲麻将能透视...
据报道开挂!旅游娱乐ai智能开... 据报道开挂!旅游娱乐ai智能开挂工具,旅游娱乐辅助工具演示(一直有挂教学)1、全新机制【旅游娱乐ai...
一分钟揭秘开挂!决胜朋来麻将a... 一分钟揭秘开挂!决胜朋来麻将ai智能透视辅助挂教程,决胜朋来麻将真是真的是有挂(有辅助挂总结)1、首...
如何分辨真伪透视!红牛ai智能... 如何分辨真伪透视!红牛ai智能透视攻略,红牛是不是有挂经验(真是有挂技术)1、操作简单,无需红牛手机...
2分钟细说辅助器!江湖大庆麻将... 2分钟细说辅助器!江湖大庆麻将ai智能透视辅助挂攻略,江湖大庆麻将竟然是真的有挂(有辅助挂头条)1、...
总算清楚透视挂!老夫子厅ai智... 总算清楚透视挂!老夫子厅ai智能透视挂技巧,老夫子厅怎么开挂课程(好像发现有挂)老夫子厅破解侠是真的...
解密关于辅助!菜鸟麻将ai智能... 解密关于辅助!菜鸟麻将ai智能透视辅助挂脚本,菜鸟麻将总是存在有挂(有辅助挂存在)1、用户打开应用后...