博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LintCode] 462 Total Occurrence of Target
阅读量:5206 次
发布时间:2019-06-14

本文共 1757 字,大约阅读时间需要 5 分钟。

Description

Given a target number and an integer array sorted in ascending order. Find the total number of occurrences of target in the array.
Example
Given [1, 3, 3, 4, 5] and target = 3, return 2.
Given [2, 2, 3, 4, 6] and target = 4, return 1.
Given [1, 2, 3, 4, 5] and target = 6, return 0.
Challenge
Time complexity in O(logn)

4/26/2017

算法班

找左右边界,第一个边界找不出来时候返回0

1 public class Solution { 2     /** 3      * @param A an integer array sorted in ascending order 4      * @param target an integer 5      * @return an integer 6      */ 7     public int totalOccurrence(int[] A, int target) { 8         if (A == null || A.length == 0) return 0; 9         int left, right;10 11         int start = 0, end = A.length - 1;12         while (start + 1 < end) {13             int mid = start + (end - start) / 2;14             if (A[mid] >= target) {15                 end = mid;16             } else {17                 start = mid;18             }19         }20         if (A[start] == target) {21             left = start;22         } else if (A[end] == target) {23             left = end;24         } else {25             return 0;26         }27 28         start = left;29         end = A.length - 1;30         while (start + 1 < end) {31             int mid = start + (end - start) / 2;32             if (A[mid] <= target) {33                 start = mid;34             } else {35                 end = mid;36             }37         }38 39         if (A[end] == target) {40             right = end;41         } else if (A[start] == target) {42             right = start;43         } else {    // shouldn't come to this branch44             return 0;45         }46         return right - left + 1;47     }48 }

 

转载于:https://www.cnblogs.com/panini/p/6770509.html

你可能感兴趣的文章
21天打造分布式爬虫-豆瓣电影和电影天堂实战(三)
查看>>
BZOJ 3884: 上帝与集合的正确用法 扩展欧拉定理 + 快速幂
查看>>
[POI2002][HAOI2007]反素数 数论 搜索 好题
查看>>
Ubuntu-server 下Apache2 配置.htaccess 隐藏thinkPHP项目index.php
查看>>
Microsoft 嵌套虚拟化技术(Nested Virtualization)
查看>>
目标检测标注工具labelImg安装及使用
查看>>
HDU1421:搬寝室(线性dp)
查看>>
Selenium-webdriver+八种元素定位
查看>>
Android开发: 关于性能需要考虑的
查看>>
Ubuntu下的UNITY和GNOME界面
查看>>
ALLEGRO同时旋转多元件
查看>>
数据库与表的创建及增删改查
查看>>
webpack.config.js 参数详解
查看>>
HTML中的a标签实现点击下载
查看>>
tftp、vsftp
查看>>
Eclipse新建纯java工程及使用JUnit5测试
查看>>
memcache cas
查看>>
SVN备份及其还原 — dump/load方法
查看>>
WCF、Net remoting、Web service概念及区别
查看>>
mochiweb 源码阅读(三)
查看>>