面试题53 - I. 在排序数组中查找数字 I
地址: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的更多相关文章
- [LeetCode]面试题53 - I. 在排序数组中查找数字 I(二分);面试题53 - II. 0~n-1中缺失的数字(二分)
##面试题53 - I. 在排序数组中查找数字 I ###题目 统计一个数字在排序数组中出现的次数. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 ...
- 《剑指offer》面试题53 - I. 在排序数组中查找数字 I
问题描述 统计一个数字在排序数组中出现的次数. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8, ...
- [简单-剑指 Offer 53 - I. 在排序数组中查找数字 I]
[简单-剑指 Offer 53 - I. 在排序数组中查找数字 I] 统计一个数字在排序数组中出现的次数. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出 ...
- 剑指 Offer 53 - I. 在排序数组中查找数字 I + 二分法
剑指 Offer 53 - I. 在排序数组中查找数字 I Offer_53_1 题目描述 方法一:使用HashMap package com.walegarrett.offer; /** * @Au ...
- 力扣 - 剑指 Offer 53 - I. 在排序数组中查找数字 I
题目 剑指 Offer 53 - I. 在排序数组中查找数字 I 思路1 一般来说,首先想到的是使用一个变量,从头开始遍历整个数组,记录target数组出现的次数,但是这样的时间复杂度是O(n),还是 ...
- 剑指offer——面试题4:二维数组中的查找
// 面试题4:二维数组中的查找 // 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按 // 照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个 // 整数 ...
- 剑指Offer面试题:2.二维数组中的查找
一.题目:二维数组中的查找 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...
- 每日一题 - 剑指 Offer 53 - I. 在排序数组中查找数字 I
题目信息 时间: 2019-07-04 题目链接:Leetcode tag:二分查找 哈希表 难易程度:简单 题目描述: 统计一个数字在排序数组中出现的次数. 示例1: 输入: nums = [5,7 ...
- 剑指 Offer 53 - I. 在排序数组中查找数字 I
题目描述 统计一个数字在排序数组中出现的次数. 示例1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例2: 输入: nums = [5,7,7,8,8, ...
- 剑指offer 面试题4:二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
随机推荐
- Qt/C++开发经验小技巧291-295
国内站点:https://gitee.com/feiyangqingyun 国际站点:https://github.com/feiyangqingyun 关于在pro中区分linux系统,在Qt4套件 ...
- Qt数据库应用15-通用数据库同步
一.前言 数据库同步的主要功能是将本地的数据库记录同步到远程的数据库,其中数据库类型不限,比如本地是sqlite数据库,远程可以是mysql数据库,本地是mysql数据库,远程也可以是postgres ...
- Python设计模式(第2版)中文的pdf电子书
Python设计模式(第2版)中文的pdf电子书下载地址:百度云盘,提取码:dmem
- Redis实战-Redisson-分布式锁
1. 简介 随着技术的快速发展,业务系统规模的不断扩大,分布式系统越来越普及.一个应用往往会部署到多台机器上,在一些业务场景中,为了保证数据的一致性,要求在同一时刻,同一任务只在一个节点上运行,保证同 ...
- 零基础Windows Server搭建部署Word Press 博客系列教程(2):从菜鸡到高手之Windows Server 环境配置
上一篇:零基础Windows Server搭建部署Word Press 博客系列教程(1):从萌新到菜鸡之云主机配置与备案 本篇教程主要介绍在云主机上安装好相关组件并配置好环境,直至网站上线. 1.之 ...
- Robot Framework 自动化测试部署常见问题及处理方法(三)
书接上文 8.关于IE浏览器 IE浏览器必须是原生版,即Windows系统原版,非手动升级后的版本 9.用例执行过程中,遇到元素定位不到的情况 原因: ⑴xpath动态变化 ⑵有frame/ifram ...
- 一款基于 .NET8 + Vue 开源、免费、跨平台的企业级在线考试系统
前言 今天大姚给大家分享一款基于 .NET8 + Vue 开源.免费(AGPL-3.0开源协议).跨平台的企业级在线考试系统:XBLMS. 项目介绍 XBLMS是一款基于 .NET8 + Vue 开源 ...
- 02如何直接使用uni-app中提供的模板之公告滚动
用hBuibler将提供的模板下载下载,通过url上的路径找到你需要的模板对应的位置. 然后将这个文件夹中的diamante全部赋值过来就ok了. <view class="uni-p ...
- 一个简单的大转盘抽奖程序(附.NetCore Demo源码)
最近闲下来在做一些demo,现在讲一下做的一个简单的大转盘抽奖demo,前端lottery,layui,后端.net core,sqlsugar,数据库用的mysql 1.前端实现: 前端用的是基于开 ...
- TiDB体系架构
本文分享自天翼云开发者社区<TiDB体系架构>,作者:x****n 如图所示,TiDB体系中三大组成部分:PD.TiDB Server.TiKV 1.PD:负责产生全局的TSO时间.控制R ...