剑指 Offer 53 – I. 在排序数组中查找数字 I 其实就是一个向左边界的二分查找,然后在往后遍历累加target在数组中个数的过程
1.题目描述
统计一个数字在排序数组中出现的次数。
示例 1:
输入: nums = [5,7,7,8,8,10], target = 8
输出: 2
示例 2:
输入: nums = [5,7,7,8,8,10], target = 6
输出: 0
限制:
0 <= 数组长度 <= 500002.问题分析
3.代码实现
3.1C++代码
class Solution { public: int search(vector<int>& nums, int target) { if(nums.empty()) return 0; int left=0; int right=nums.size()-1; int mid; while(left<=right) { mid=left+(right-left)/2; if(nums[mid]<target) left=mid+1; else right=mid-1; } if(left>=nums.size()||nums[left]!=target) return 0; else { int cnt=1; while(1) { left++; if(left<nums.size()&&target==nums[left]) cnt++; else break; } return cnt; } } };
3.2Java代码
class Solution { public int search(int[] nums, int target) { if(nums.length==0) return 0; int left=0; int right=nums.length-1; int mid; while(left<=right) { mid=left+(right-left)/2; if(nums[mid]<target) left=mid+1; else right=mid-1; } if(left>=nums.length||nums[left]!=target) return 0; else { int cnt=1; while(true) { left++; if(left<nums.length&&target==nums[left]) cnt++; else break; } return cnt; } } };
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算