剑指 Offer 53 - I. 在排序数组中查找数字 I(二分查找)
剑指 Offer 53 - I. 在排序数组中查找数字 I
统计一个数字在排序数组中出现的次数。
示例 1:
输入: nums = [5,7,7,8,8,10]
, target = 8
输出: 2
示例 2:
输入: nums = [5,7,7,8,8,10]
, target = 6
输出: 0
提示:
0 <= nums.length <= 105
-109 <= nums[i] <= 109
nums
是一个非递减数组-109 <= target <= 109
注意:本题与主站 34 题相同(仅返回值不同):https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/
1 class Solution { 2 public: 3 int findRightBoundary(vector<int> &nums, int target) { 4 int left = 0; 5 int right = nums.size() - 1; 6 while (left <= right) { 7 int mid = left + (right - left) / 2; 8 if (nums[mid] <= target) { 9 left = mid + 1; 10 } else { 11 right = mid - 1; 12 } 13 } 14 return left; 15 } 16 int search(vector<int>& nums, int target) { 17 return findRightBoundary(nums, target) - findRightBoundary(nums, target - 1); 18 } 19 };
分类:
二分查找法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端