二分法
二分法相关的面试题
Lc_summer
这个作者很懒,什么都没留下…
展开
-
二分法寻找旋转数组中的target
在旋转数组中找target题目描述给出一个转动过的有序数组,你事先不知道该数组转动了多少(例如,0 1 2 4 5 6 7可能变为4 5 6 7 0 1 2).在数组中搜索给出的目标值,如果能在数组中找到,返回它的索引,否则返回-1。假设数组中不存在重复项。思路数组有序首选二分,但是题目中数组并非完全有序,而是因为旋转的原因导致数组被分割成了两个有序数组,当我们二分查找的时候,总能找到一边的数组时有序的,那么此时我们就根据这个个有序的数组来判断是否target在其中,如果不在那么target然原创 2021-03-05 09:35:30 · 471 阅读 · 2 评论 -
二分法求自定义幂函数
快速求幂函数自定义pow(x,n);二分法思想:每次累乘,当前的i为偶数时,x自身累乘将累乘的x数减半,当前i为奇数时,将当前结果res乘以x,剩下的x累乘的个数为偶数,x再累乘将其累乘数减半,直到为0,返回结果res,时间复杂度可以从遍历累乘的O(n)降低到O(logn)double MyPow(double x,int n){ double res = 1; for(int i = n;i!=0;i/=2) { //如果当前i为奇数,就乘以x本身,乘过之后,剩余还需乘的x个数为偶数原创 2020-11-20 13:27:38 · 335 阅读 · 0 评论 -
在有序数组中搜索target的插入位置
搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。int searchInsert(vector<int>& nums,int target){ int left = 0; int right = nums.size()-1; if(target<nums[left]) //target在数组第一个位置 return 0; if(target>n原创 2021-02-25 17:27:28 · 344 阅读 · 0 评论