医院网站建设ppt,腾讯云主机永久免费,和拓者设计吧类似的网站,ps做ppt模板怎么下载网站二分法 零.二分查找1.思路一#xff1a;朴素二分 一.在排序数组中第一个和最后一个数#xff1a;1.思路一#xff1a;GIF题目解析 二.算法X的平方根#xff1a;1.思路一#xff1a;暴力哈希2.思路二#xff1a;二分区间GIF题目解析 三.搜索插入位置#xff1a;1.思路一朴素二分 一.在排序数组中第一个和最后一个数1.思路一GIF题目解析 二.算法X的平方根1.思路一暴力哈希2.思路二二分区间GIF题目解析 三.搜索插入位置1.思路一GIF题目解析 四山脉数组的峰顶索引1.思路一GIF题目解析 五寻找峰值1.思路一GIF题目解析 六寻找旋转排序数组中的最小值1.思路一GIF题目解析 七0~~n-1中缺少的数字(点名)1.思路一GIF题目解析 零.二分查找 二分查找
1.思路一朴素二分 class Solution {
public:int search(vectorint nums, int target) {int left0;int right nums.size()-1;while(leftright){int mid (leftright)/2;//1.nums[mid] targetif(nums[mid]target)right mid-1;//2.nums[mid] targetelse if(nums[mid]target)left mid1;//3.nums[mid] targetelsereturn mid;}return -1;}
};一.在排序数组中第一个和最后一个数
1.思路一 特殊情况 class Solution {
public:vectorint searchRange(vectorint nums, int target) {int left 0;int right nums.size()-1;//处理边界情况if(nums.size() 0)return {-1,-1};//1.确定左端点while(leftright){int mid left (right-left)/2;if(nums[mid] target) left mid1;else if(nums[mid] target) right mid;}if(nums[left]!target) return {-1,-1};int begin left;//2.确定右端点left0,rightnums.size()-1;while(leftright){int mid left(right-mid1)/2;if(nums[mid] target) left mid;else if(nums[mid] target) right mid-1;}int end left;return {begin,end};}
};GIF题目解析 找左端点 找右端点 二.算法X的平方根 X的平方根
1.思路一暴力哈希 2.思路二二分区间 class Solution {
public:int mySqrt(int x) {if(x0)return 0;long long left 1;long long right x;while(leftright){long long mid left (right - left 1)/2;if((mid*mid) x) left mid;else right mid -1;}return left;}
};GIF题目解析 三.搜索插入位置 搜索插入位置
1.思路一 class Solution {
public:int searchInsert(vectorint nums, int target) {int left 0;int right nums.size()-1;if(nums.size() 1){if(target nums[0])return 1;if(target nums[0])return 0;}while(left right){int mid left (right - left)/2;if(nums[mid] target) left mid1;else right mid;}if(nums[right] target) return right 1;return right;}
};GIF题目解析 四山脉数组的峰顶索引 山脉数组的峰顶索引
1.思路一 class Solution {
public:int peakIndexInMountainArray(vectorint arr) {int left0,rightarr.size()-1;while(leftright){int mid left (right-left 1)/2;if(arr[mid-1] arr[mid]) leftmid;else right mid -1;}return left;}
};GIF题目解析 五寻找峰值 寻找峰值
1.思路一 class Solution {
public:int findPeakElement(vectorint nums) {int left0,rightnums.size()-1;while(leftright){int mid left (right - left 1)/2;if(nums[mid-1] nums[mid]) left mid;else right mid-1;}return left;}
};GIF题目解析 六寻找旋转排序数组中的最小值 寻找旋转排序数组中的最小值
1.思路一 class Solution {
public:int findMin(vectorint nums) {int left 0, right nums.size() - 1;int n nums[right];while (left right){int mid left (right - left) / 2;if (nums[mid] n) left mid 1;else right mid;}return nums[right];}
};GIF题目解析 七0~~n-1中缺少的数字(点名) 点名
1.思路一 class Solution {
public:int takeAttendance(vectorint records) {int left 0 , right records.size()-1;while(left right){int mid left (right - left)/2;if(mid records[mid]) left mid 1;else right mid;}if(records[left] left)return left1;return left;}
};GIF题目解析