剑指 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

解题

方法一:暴力

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int res=0;
        for(int num:nums){
            if(num==target) res++;
        }
        return res;
    }
};

方法二:二分查找

参考链接

对于left=mid+1,right=mid-1, if(nums[mid]<=target)这样子的写法

比如 nums = [5,7,7,8,8,10],要查找target=8

left会到10,right会到最右边那个8,然后中止循环。

因此比如 nums = [5,7,7,8,8,10],要查找target=8,利用helper(nums,target)-helper(nums,target-1),

第一个返回值为5,第二个返回值为3

class Solution {
public:
    int helper(vector<int>& nums,int target){
        int left=0,right=nums.size()-1;
        while(left<=right){
            int mid=(left+right)/2;
            if(nums[mid]<=target) left=mid+1;
            else right=mid-1;
        }
        return left;
    }
    int search(vector<int>& nums, int target) {
        return helper(nums,target)-helper(nums,target-1);
    }
};
相关文章
|
开发者 iOS开发
【Markdown小技巧】 整理小图标和表情符号
让博客变得更加优美,你需要这些萌萌的、好看的表情符号。以下是我收集的一些表情符号和小图标,分享给大家。
【Markdown小技巧】 整理小图标和表情符号
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
598 1
excel 百分位函数 学习
excel 百分位函数 学习
922 1
|
XML Java API
视觉智能开放平台操作报错合集之遇到报错:Specified parameter Version is not valid,该怎么解决
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
660 2
|
JSON 网络协议 Unix
docker权限问题
docker权限问题
|
Java
gradlew与jdk版本不匹配,可以通过配置指定jdk 版本
gradlew与jdk版本不匹配,可以通过配置指定jdk 版本
2533 0
简单粗暴实现el-input只允许输入数字
简单粗暴实现el-input只允许输入数字
简单粗暴实现el-input只允许输入数字
|
前端开发 JavaScript Java
JavaFX学习笔记(三) 架构与图形系统
JavaFX学习笔记(三) 架构与图形系统
|
Java
Future:异步任务结果获取
Future:异步任务结果获取
221 0
|
人工智能
2023年8款好用免费可商用字体|标小智龙珠体
为了庆祝新的一年的开始,我筛选整理了一份8款实用且免费商用的中文字体清单。这些字体不仅易于使用,而且风格多样,可以用于logo设计、平面设计、标题设计等等,希望能够帮助到你。
2023年8款好用免费可商用字体|标小智龙珠体