地址:https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof/

<?php
/**
面试题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 { /**
* @param Integer[] $nums
* @param Integer $target
* @return Integer
*/
function search1($nums, $target) {
$count = 0;
foreach($nums as $num){
if ($num == $target){
$count++;
}
}
return $count;
} function search($nums, $target) {
//二分查找找左边界 - 右边界
if (empty($nums)) return 0; $len = count($nums); $l = 0; $r = $len - 1; //找左边界
while ($l <= $r) {
$mid = $l + floor(($r - $l) / 2); if ($nums[$mid] < $target) {
$l = $mid + 1;
} else {
$r = $mid - 1;
}
} $left = $r; $lt = 0;
$rt = $len - 1; while ($lt <= $rt) {
$mid = $lt + floor(($rt - $lt) / 2); if ($nums[$mid] <= $target) {
$lt = $mid + 1;
} else {
$rt = $mid - 1;
}
} $right = $lt; return $right - $left - 1;
}
} $nums = [5,7,7,8,8,10];
$target = 8; $solution = new Solution();
var_dump($solution->search($nums,$target));

面试题53 - I. 在排序数组中查找数字 I的更多相关文章

  1. [LeetCode]面试题53 - I. 在排序数组中查找数字 I(二分);面试题53 - II. 0~n-1中缺失的数字(二分)

    ##面试题53 - I. 在排序数组中查找数字 I ###题目 统计一个数字在排序数组中出现的次数. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 ...

  2. 《剑指offer》面试题53 - I. 在排序数组中查找数字 I

    问题描述 统计一个数字在排序数组中出现的次数. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8, ...

  3. [简单-剑指 Offer 53 - I. 在排序数组中查找数字 I]

    [简单-剑指 Offer 53 - I. 在排序数组中查找数字 I] 统计一个数字在排序数组中出现的次数. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出 ...

  4. 剑指 Offer 53 - I. 在排序数组中查找数字 I + 二分法

    剑指 Offer 53 - I. 在排序数组中查找数字 I Offer_53_1 题目描述 方法一:使用HashMap package com.walegarrett.offer; /** * @Au ...

  5. 力扣 - 剑指 Offer 53 - I. 在排序数组中查找数字 I

    题目 剑指 Offer 53 - I. 在排序数组中查找数字 I 思路1 一般来说,首先想到的是使用一个变量,从头开始遍历整个数组,记录target数组出现的次数,但是这样的时间复杂度是O(n),还是 ...

  6. 剑指offer——面试题4:二维数组中的查找

    // 面试题4:二维数组中的查找 // 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按 // 照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个 // 整数 ...

  7. 剑指Offer面试题:2.二维数组中的查找

    一.题目:二维数组中的查找 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...

  8. 每日一题 - 剑指 Offer 53 - I. 在排序数组中查找数字 I

    题目信息 时间: 2019-07-04 题目链接:Leetcode tag:二分查找 哈希表 难易程度:简单 题目描述: 统计一个数字在排序数组中出现的次数. 示例1: 输入: nums = [5,7 ...

  9. 剑指 Offer 53 - I. 在排序数组中查找数字 I

    题目描述 统计一个数字在排序数组中出现的次数. 示例1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例2: 输入: nums = [5,7,7,8,8, ...

  10. 剑指offer 面试题4:二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

随机推荐

  1. archlinux 显卡驱动

    https://arch.icekylin.online/guide/rookie/graphic-driver.html archlinux 显卡驱动# 接天莲叶无穷碧,映日荷花别样红# 近年来,a ...

  2. Web浏览器播放rtsp视频流详细解决方案

    1.背景 在当前项目中,需要实现Web端直接播放RTSP视频流.该功能的核心目标是使得用户能够通过浏览器观看来自不同品牌的IPC(Internet Protocol Camera)设备的实时视频流.主 ...

  3. Qt开发经验小技巧111-120

    在不同的平台上文件路径的斜杠也是不一样的,比如linux系统一般都是 / 斜杠,而在windows上都是 \ 两个反斜杠,Qt本身程序内部无论在win还是linux都支持 / 斜杠的路径,但是一些第三 ...

  4. FormData接口调用

    JAVA调用方式 JAVA原生实现 package com.hisense.demo.utils; import java.io.*; import java.net.HttpURLConnectio ...

  5. 电信机顶盒(烽火HG680-KA)安装第三方APP

    一.前言 最近我回家休息了几天,正好赶上了暑期电视剧的更新.于是,我就在客厅里舒舒服服地坐下来,准备大饱眼福.然而,当我打开电视机准备观赏时,却发现几乎所有的电视剧都要VIP会员才能观看.于是有了以下 ...

  6. 使用R语言可视化地图数据

    在科研工作中,经常会遇到需要在地图上展示数据的情况,今天分享一下如何使用R语言可视化地图数据 # 先安装和导入R包,这里使用了本地地图数据,所以只导入maps包即可 # install.package ...

  7. Linux安全加固(一)

    1.Linux关键用户文件/etc/password文件 Root:x:0:0:root:/bin/bash ●用户名:代表用户账号的字符串.通常长度不超过8个字符,并且由大小写字母和/或数字组成.登 ...

  8. React源码解析(1): JSX语法与react项目渲染过程

    好家伙   0.前言 由于工作的需要,我不得不入手了react的全家桶,曾经我的主要技术栈是vue. 从vue转到react,一开始我感到非常不适应,jsx的语法的不了解,react hooks的使用 ...

  9. MySQL-扩展

    1.行转列 源数据: 目标数据: 数据准备 -- 建表插入数据 drop table if exists time_temp; create table if not exists time_temp ...

  10. token、jwt、oauth2、session对比总结

    什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明"你是你自己"(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就 ...