Total Occurrence of Target

Total Occurrence of Target.png

===================== 解題思路 =====================

分開兩次找出最先出現跟最後出現的 target 之 index 然後相減再 + 1 得到答案 過程可參考 First Position of Target (找最先出現 反過來做可得到最後出現)
===================== C++ code ====================

<pre><code>
class Solution {

public:

/**
 * @param A an integer array sorted in ascending order
 * @param target an integer
 * @return an integer
 */

int totalOccurrence(vector<int>& A, int target) {
    // Write your code here
    int n = A.size();
    if(n == 0) return 0;
    int small = 0, large = n - 1;
    int left = 0, right = n - 1;
    if(A[left] > target || A[right] < target) return 0;
    while(left + 1 < right)
    {
        int mid = left + (right - left) / 2;
        if(A[mid] >= target) right = mid;
        else left = mid;
    }
    if(A[left] != target && A[right] != target) return 0;
    if(A[left] == target) small = left;
    else if(A[right] == target) small = right;
   
    left = 0; 
    right = n - 1;
    while(left + 1 < right)
    {
        int mid = left + (right - left) / 2;
        if(A[mid] > target) right = mid;
        else left = mid;
    }
    
    if(A[right] == target) large = right;
    else if(A[left] == target) large = left;
    return large - small + 1;
}

};
<code><pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 提問的智慧 How To Ask Questions The Smart Way Copyright © 2001...
    Albert陈凯阅读 7,552评论 0 8
  • 为何叫做 shell ? shell prompt(PS1) 与 Carriage Return(CR) 的关系?...
    Zero___阅读 8,417评论 3 49
  • 原来我非不快乐 始2016.6.27 聽說,能到達金字塔頂端的只有兩種動物,一是雄鷹,靠著自己的...
    _行走中的蝸牛_阅读 5,424评论 1 8
  • 在大城市里每个人都很忙碌,谁也不会管你你的脚上一只穿了红色一只穿了绿色。
    冻死在夏天阅读 1,067评论 0 0
  • 一 捣香阁,一个只有善良的人才能靠近的地方。 香,不但可以沁人心脾,也可以令人沉睡,永不苏醒。 “喂!”悦耳的声音...
    拾忆的朵朵阅读 3,698评论 0 2

友情链接更多精彩内容