题目链接 示例 1: 示例 2: 限制: 0 <= 数组长度 <= 50000 二分查找缩减范围
题目
统计一个数字在排序数组中出现的次数。输入: nums = [5,7,7,8,8,10], target = 8 输出: 2
输入: nums = [5,7,7,8,8,10], target = 6 输出: 0
解题思路
利用二分的思想,排除数组中左侧不包含给定数字的部分,再另一部分中遍历查找输出出现次数代码
class Solution { public int search(int[] nums, int target) { if(nums.length==0){ return 0; } int sum = 0; int left = 0; int right = nums.length - 1; while (left != right) { int mid = left + (right - left) / 2; //排除左部分不包含给定数字的无用部分 if (nums[mid] >= target) { right = mid; } else if (nums[mid] < target) { left = mid + 1; } } //查找出现次数 排除了没有给定数字的左部分 while (left < nums.length && nums[left++] == target) { sum++; } return sum; } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算