代码编织梦想

题目

统计一个数字在排序数组中出现的次数。

示例 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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof
 

思路:查找到元素第一次出现的位置,并向后遍历,直到遍历的元素不等于target或者遍历到数据末尾。

java代码:

class Solution {
    public int search(int[] nums, int target) {
                if(nums.length==0) {
            return 0;
        }
 int left = 0;
        int right = nums.length;

        while (left < right) {
            int mid = left + (right - left)/2;
            if(nums[mid] < target) {
                left = mid + 1;
            } else {
                right = mid;
            }
        }

        int leftIndex = right;
        int rightIndex = right;

        while (rightIndex<nums.length&&nums[rightIndex] == target) {
            rightIndex++;
        }

        return rightIndex - leftIndex;
    }
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_33775774/article/details/124062939

《剑指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 <= 数组长度 <= 50000 暴力 简单的循环遍历数组 cla

剑指 Offer 53 - I. 在排序数组中查找数字java题解-爱代码爱编程

啥也写不对真烦****************** 思路 因为是有序数组,所以这个数字的出现是连续的。找到左右边界left和right,出现次数就是right-left-1 使用二分查找, nums[mid]>target时,right–;nums[mid]<target时,left++; nums[mid]==target时,找右边界le

LeetCode刷题日记 剑指 Offer 53 - I. 在排序数组中查找数字 I-爱代码爱编程

题目给出一个有序数组,要求统计目标数字在数组中出现的次数。最开始尝试使用暴力解法会超时,故使用二分法,代码如下: class Solution { public: int search(vector<int>& nums, int target) { if(nums.empty())return 0; //判断

剑指 Offer 53 - I. 在排序数组中查找数字 I的hashmap解法(JavaScript)-爱代码爱编程

一、题目描述 统计一个数字在排序数组中出现的次数。 直达链接是https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof/ 二、示例 三、解题思路 其实看到是排好序的数组的话第一个思路是二分法,但是自己对于hash比较熟悉就用了这个方法 四、代码

每日一题:剑指 Offer 53 - I. 在排序数组中查找数字 I-爱代码爱编程

每日一题:剑指 Offer 53 - I. 在排序数组中查找数字 I 1、题目 统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 限制: 0 <

剑指 Offer 53 - I. 在排序数组中查找数字 I(C++) 二分法-爱代码爱编程

统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 限制: 0 <= 数组长度 <= 50000 注意:本题与主站 34 题相同(仅返回值不同

统计 n 以内的素数个数-爱代码爱编程

统计 n 以内的素数个数。比如,n = 100 时,素数个数有 25  个。 思路:利用 埃筛法。从第一个质数 2 开始,找到倍数是 2 的倍数的合数。再从下一个质数 3 找起来,所有 3 的 倍数的合数。直到 n 的平方根为止。   public Main{ public void findNumOfPrime(int n){

LeetCode剑指 Offer 53 - I. 在排序数组中查找数字 I-爱代码爱编程

题目:思路1: 第一想到的应该就是暴力求解了,设置计数器,遍历数组,如果遇到与target相同的数字,就让计数器+1,最后return 计数器即可。 代码如下: # 最简单的 直接遍历 时间复杂度为O(n) class Solution: def search(self, nums: List[int], target: int) ->

LeetCode 刷题系列 28. 实现 strStr()-爱代码爱编程

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回  -1 。 说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。 对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与

剑指 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 思路一:可以直接遍历数组,记录目标值的个数即可

剑指 Offer 53 - I. 在排序数组中查找数字 I--二分法-爱代码爱编程

一道典型的二分法题目。 class Solution { public int search(int[] nums, int target) { int left =0,right = nums.length-1; int count = 0; while(left<right){

【LeetCode刷题记录】剑指 Offer 53 - I. 在排序数组中查找数字 I(二分法)-爱代码爱编程

统计一个数字在排序数组中出现的次数。 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 class Solution(object): def search(self, nums, target): """ :type nums: List[int]

【leetcode】剑指 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.len

剑指 Offer 53 - I. 在排序数组中查找数字 I(JavaScript语言)-爱代码爱编程

思路一(菜鸡版:直接遍历) 直接遍历一遍,遇到等于target的计数。 代码 /** * @param {number[]} nums * @param {number} target * @return {number} */ var search = function(nums, target) { var sum = 0; fo

【LeetCode】剑指 Offer 53 - I. 在排序数组中查找数字 I - Go 语言题解-爱代码爱编程

文章目录 一、题目描述二、我的题解 - 非全部遍历三、二分法 一、题目描述 统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 提示: 0 &