剑指 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 <= numsi <= 109

nums 是一个非递减数组

-109 <= target <= 109

解题思路

双指针

1.双指针i,j分别指向开始和结尾,从两边往中间遍历.

2.当i和j对应的值相等并且等于target时,返回差值+1就为个数.

代码:

cpp 复制代码
class Solution {
public:
    int search(vector<int>& nums, int target) {
        int i=0,j = nums.size()-1;
        while(i<=j){
            if(nums[i]==nums[j]&&nums[i]==target){
               return j-i+1; 
            }
            if(nums[i]<target){
                i++;
            }
            if(nums[j]>target){
                j--;
            }
        }
        return 0;
    }
};
相关推荐
科技苑2 小时前
C++ CAS与ABA问题详解,无锁编程的经典陷阱怎么解决?
c++·人工智能
GoAI2 小时前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试
Pniubi3 小时前
力扣54.螺旋矩阵
算法·leetcode·矩阵
choumou_M5 小时前
算法_1:由浅入深学习快速排序QuickSort
学习·算法·排序算法
Coder_Shenshen6 小时前
罗克韦尔ACD工程归档离线变量树解析
算法·c#
BaiPeter6 小时前
ZPL文件预览
开发语言·c++
心仪久了会沦陷8 小时前
C语言数据结构入门——树与二叉树详解:概念、堆实现与链式遍历
c语言·数据结构·算法
小此方8 小时前
[算法实战论:动态规划]背包问题概念,01不满背包问题,01满背包问题,背包问题的滚动数组空间优化
算法·动态规划
悠仁さん9 小时前
【C++】哈希表
c++·算法·散列表