剑指Offer LeetCode 面试题53 - I. 在排序数组中查找数字 I

简介: 剑指Offer LeetCode 面试题53 - I. 在排序数组中查找数字 I

面试题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(int[] nums, int target) {
        int sum=0;
        for(int i=0;i<nums.length;i++){
            if(nums[i]==target){
                sum++;
            }
        }
        return sum;
    }
}

二分查找

因为数组是已经排序好的数组,所以可以先找出左右边界,找到数组中的左右边界,然后相减就可以拿到这个数字了.

/**
 * @Auther: truedei
 * @Date: 2020 /20-5-20 08:45
 * @Description:
 */
public class Test1 {
    static  public int search(int[] nums, int target) {
        int i=0;
        int j=nums.length-1;
        int left=0,right=0;
        //搜索左边界
        while (i<=j){
            int mid =  (i + j) /2;
            if(nums[mid] <= target)
                i = i + 1;
            else
                j = j - 1;
        }
        right = i;
        i = 0;
        j=nums.length-1;
        //搜索右边界
        while (i<=j){
            int mid =  (i + j) /2;
            if(nums[mid] < target)
                i = i + 1;
            else
                j = j - 1;
        }
        left=j;
        return right - left - 1;
    }
    public static void main(String[] args) {
        int nums[] = new int[]{5,7,7,8,8,10},target = 8;
        System.out.println(search(nums,target));
    }
}
目录
打赏
0
0
0
0
4
分享
相关文章
|
7月前
|
【Amazon 面试题1】一个数组,里面得数出现的次数是偶数次,只有一个数出现的次数是奇数次,找出那个出现奇数次的数
本文介绍了解决Amazon面试题的一种方法,即在一个所有数字出现次数都是偶数,除了一个数字出现奇数次的数组中,利用异或运算的性质找出出现奇数次的数字,并提供了C语言实现的代码示例。
101 1
|
7月前
|
Java 基础语法-面试题(54-63道)(数组+类+包)
Java 基础语法-面试题(54-63道)(数组+类+包)
60 16
这些年背过的面试题——LeetCode
本文是技术人面试系列LeetCode篇,一文带你详细了解,欢迎收藏!
【剑指offer】2.2编程语言(p22-p25)——面试题1:string赋值运算函数
【剑指offer】2.2编程语言(p22-p25)——面试题1:string赋值运算函数
|
8月前
|
面试题ES问题之Elasticsearch的排序分页和高亮功能如何解决
面试题ES问题之Elasticsearch的排序分页和高亮功能如何解决
65 0
|
8月前
|
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
技术好文共享:面试题:找出数组中只出现一次的2个数(异或的巧妙应用)(出现3次)
技术好文共享:面试题:找出数组中只出现一次的2个数(异或的巧妙应用)(出现3次)
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行

热门文章

最新文章