目标出现总和

描述

给一个升序的数组,以及一个 target,找到它在数组中出现的次数。

样例

给出 [1, 3, 3, 4, 5] target = 3, 返回 2.
给出 [2, 2, 3, 4, 6] target = 4, 返回 1.
给出 [1, 2, 3, 4, 5] target = 6, 返回 0.

标签

二分法

相关题目

搜索区间

代码实现

public class Solution {
    /**
     * @param A an integer array sorted in ascending order
     * @param target an integer
     * @return an integer
     */
    public int totalOccurrence(int[] A, int target) {
        if (A == null || A.length == 0) {
            return 0;
        }
        int start = 0;
        int end = A.length - 1;
        while (start + 1 < end) {
            int mid = start + (end - start) / 2;
            if (A[mid] < target) {
                start = mid;
            } else {
                end = mid;
            }
        }
        int count = 0;
        if (A[start] == target) {
            for (int i = start; i < A.length; i++) {
                if (A[i] == target) {
                    count++;
                }
            }
            return count;
        }
        if (A[end] == target) {
            for (int i = end; i < A.length; i++) {
                if (A[i] == target) {
                    count++;
                }
            }
            return count;
        }
        return 0;
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 描述 给一个升序的数组,以及一个target,找到它在数组中出现的次数。 样例 给出 [1, 3, 3, 4, 5...
    6默默Welsh阅读 198评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,768评论 0 33
  • 题目前的数字是对应的lintcode的题目序号 14.二分查找 给定一个排序的整数数组(升序)和一个要查找的整数t...
    mytac阅读 703评论 1 2
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 17,909评论 2 36
  • 总是听到有人说:女孩子,当个公务员好,稳定。 又或者:女孩子,读什么硕士博士,有个稳定的工作,找个好男人嫁了...
    天与海的爱恋阅读 775评论 0 1