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

手把手学计科--web网页设计 网页的组成:文字、图像和超链接等元素。还可以包括哦音频、视频和动画。分类:静态(固定信息)和动态(与服务器数据库进行实时的数据交换。HTML和CSS 是一种静态网页搭建技术。 阅读详情

自己写了个超级繁琐版本,好不容易通过了,记录一下大佬版本,毕竟拿笔画了半天还写了那么多注释呢(狗头)

自己写的方法,有个问题是range()函数是左闭右开区间,而且当左右区间节点一样的时候,压根不进入循环,直接跳过,这里耽误了很久才发现问题。

然后大佬的,第一种方法是分别找出左右边界然后相减。其中判断数组内是否有target还有判断nums[m]与target关系的时候等号给谁的时候犯了迷糊,写写画画才明白。

class Solution(object):
    #找出左右边界然后-1
    def search(self, nums, target):
        i,j=0,len(nums)-1
        #先找右边界
        while i<=j:
            m=(i+j)//2
            if nums[m]<=target: 
                #找右边界的时候等号给右边(nums[m]==target就继续右移右边界,直到达到边界(不相等))
                i=m+1
            else:
                j=m-1
        right=i
        #如果数组中不存在target,则提前返回
        if j>=0 and nums[j]!=target: 
            return 0
        #如果存在target,则nums[j]必然等于target,哪怕当时的区间很长。
        #因为i是右边界,只有j在i左边的时候才会跳出循环,否则一直j=m-1,直到nums[j]==target
        i=0
        #寻找左边界
        while i<=j:
            m=(i+j)//2
            if nums[m]<target:
                #找左边界的时候等号给左边(nums[m]==target就继续左移左边界,直到达到边界(不相等))
                i=m+1
            else:
                j=m-1
        left=j

        return right-left-1

第二种,封装了一个函数

class Solution:
    def search(self, nums, target):
        def helper(tar):
            i, j = 0, len(nums) - 1
            while i <= j:
                m = (i + j) // 2
                if nums[m] <= tar: i = m + 1
                else: j = m - 1
            return i
        return helper(target) - helper(target - 1)

无论target-1是不是存在于数组当中,代码都可以正确给出结果。因为helper(target)返回的是target的下一个位置,helper(target - 1)返回的是第一个target的位置。

例如,给定数组为[5,7,8,8,8,9], target = 8,helper(target)返回的是“9”的位置,也就是5,helper(target - 1)返回的是第一个8的位置。

因为两次调用返回的都是右边界,target的右边界是最后一个8的下一位,target-1的右边界是第一个target,这样就确定了需要的区间。与target-1是谁、在不在数组里没啥关系。

基于STM32设计的便携式心电信号监测系统_146 基于STM32 设计的便携式心电信号监测系统,采用 PulseSensor 心率传感器进行数据采集,通过 LCD 显示屏显示心电数字数据和采集状态。同时,该系统还采用 HC05 蓝牙模块将实时心电信号数据传输到手机 APP,用户可以在手机 APP 上实时查看采集的数据并绘制心率曲线。此外,STM32 上的按键可以控制心率采集状态,用户登录手机 APP 还可以查看实时心电信号折线图。 阅读详情

相关推荐

TPAMI 2025新作LRFormer复现笔记:我的Windows 11 + RTX 4090配置全流程

本文详细记录了在Windows 11系统下使用RTX 4090显卡复现TPAMI 2025顶会论文LRTransformer的完整流程,包括硬件配置、系统优化、Python环境搭建及模型训练中的常见问题解决方案。特别针对Windows平台特有的路径管理、CUDA版本冲突和显存优化等关键技术细节提供了实用指南,帮助开发者高效完成环境搭建和模型训练。

weixin_29094301的博客 413

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

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

Onwaier的博客 481

字符串相似度比较算法:Jaro–Winkler similarity的原理及实现

前言 在前面的文章中,笔者有对编辑距离以及Levenshtein距离进行详细的说明,其实levenshtein距离是编辑距离的其中一种定义,本文所说的Jaro距离是编辑距离的另外一种定义,它也是对两个字符串的相似度进行衡量,以得出两字符串的相似程度。下面我们一起来学习这个算法的原理以及实现吧。 标题算法定义 下面先说说Jaro distance(又称Jaro similarity),这是由Matt...

蓝天白云梦的csdn博客 1万+

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

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

2022年毕业的萌新程序猿,输出一下自己的学习内容~ 411

千兆网口电路设计中的EMC防护与TVS选型实战

本文深入探讨了千兆网口电路设计中面临的EMC挑战,并提供了TVS二极管选型的实战指南。文章分析了ESD、浪涌和EFT等主要威胁,重点阐述了如何根据工作电压、钳位电压和关键的低结电容等参数为PHY芯片选择匹配的TVS器件,以确保在严苛电磁环境下实现可靠的信号完整性与防护。

m3n5b7v8c9x的博客 531

MTK metadata中AF模块的移除与配置调整

本文详细介绍了在MTK平台Camera开发中如何移除metadata中的AF(自动对焦)模块。通过系统清理MTK_CONTROL_AF_REGIONS、MTK_CONTROL_MAX_REGIONS等关键配置项,并调整对焦模式及硬件特性声明,确保定制化设备在禁用自动对焦功能后的稳定运行。

q1w3e5r7t9y的博客 570

【LeetCode】剑指 Offer(27)

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

Locky136的博客 1492

一文搞懂电流、电压的有效值 RMS

交流电有正半周、负半周,直接平均可能抵消成 0,但负半周一样会发热。这个交流电如果换成直流电,能产生同样发热功率时,对应的直流电压或电流”,电容耐压通常不能按 220V 选,常见会选 400V 或更高余量。所以做硬件时,220VAC 整流滤波后电容上会接近。电压/电流的有效值,也叫。如果它加在电阻上,发热按。

qq_52293640的博客 452

[Golang]力扣Leetcode—剑指Offer—数组—53 - I. 在排序数组中查找数字 I(哈希表、遍历)

[Golang]力扣Leetcode—剑指Offer—数组—53 - I. 在排序数组中查找数字 I(哈希表、遍历)

皮埃尔的博客 284

基于STM32L4XX、HAL库的MCP4561数字电位器驱动程序设计

/ HAL库需要左移一位。* @param address: 设备地址(0x2C-0x2F)* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hi2c: I2C句柄。

zhusl6688的博客 341

YOLO11涨点优化:SPPF原创自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1870

LeetCode——剑指 Offer 53 - I【 在排序数组中查找数字 I】

目录 题目 解题思路 代码详解 题目 剑指 Offer 53 - I. 在排序数组中查找数字 I 题目概述 统计一个数字在排序数组中出现的次数。 示例 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 基础框架 class Solution { public int search(int[] nums, int target) {

龍弟-idea的博客 5203

基于STM32XX的LCD液晶显示屏(HS19264G06A、驱动芯片:ST7525)驱动C程序设计

define USE_HW_SPI 1 // 1:使用硬件SPI, 0:使用软件模拟SPI。

myron6688的博客 236

#力扣 LeetCode 剑指 Offer 53 - I. 在排序数组中查找数字 I #Java超100%@FDDLC

题目描述: https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof/ Java代码: class Solution { //0 <= 数组长度 <= 50000 public int search(int[] nums, int target) { int low=0,high=nums.length-1,mid=-1,answer=0; wh.

LiuXingchang的博客 305

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

剑指 Offer 53 - I. 在排序数组中查找数字 I - leetcode 剑指offer系列

题目难度: 简单 原题链接 今天继续更新剑指 offer 系列, 老样子晚上 6 点 45 分准时更新公众号 每日精选算法题, 大家记得关注哦~ 另外在公众号里回复 offer 就能看到剑指 offer 系列当前连载的所有文章了 题目描述 统计一个数字在排序数组中出现的次数。 0 <= 数组长度 <= 50000 题目样例 示例 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 输入: nums = [5,7,7,8,8,10],.

随便发挥的博客 280

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

剑指Offer LeetCode 面试题53 - I. 在排序数组中查找数字 I

剑指Offer LeetCode 面试题53 - I. 在排序数组中查找数字 I

TrueDei 1410

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

剑指 Offer 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 限制: 0 <= 数组长度 <= 50000 思路一: 先...

Lucky小黄人的博客 194

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

目录目录 1.题目 2.题解 1.题目 统计一个数字在排序数组中出现的次数。 示例: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 限制: 0 <= 数组长度 <= 50000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zha

HarvestWu的博客 260

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

剑指 Offer 53 - I. 在排序数组中查找数字 I 题目说明 统计一个数字在排序数组中出现的次数。 示例 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 题解思路   两种做法 1、使用哈希表:   遍历数组,如果存在于表中,值加一;如果不存在,设置键值对,键为该元素,值为1 2、二分法   使用i和j指向头和尾,如果m=(i+j)//2 (向下取整)位置的元素大于

LQZme的博客 257

JavaScript——leetcode剑指offer 53 - I. 在排序数组中查找数字 I

JavaScript——leetcode剑指offer 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 代码片 /** * @param {number[]} nums * @param {number} target * @return {number} */

Teresa的前端海底乐园 883

LeetCode:剑指 Offer 53 - I. 在排序数组中查找数字 I————简单

目录题目解题思路1Code运行结果解题思路2Code运行结果 题目 剑指 Offer 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 限制: 0 <= 数组长度 <= 50000 解题思路1 直接用Python自带的count函数。 Code class

Kinght_123的博客 448

【LeetCode刷题】剑指 Offer 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 限制: 0 <= 数组长度 <= 50000 注意:本题与主站 34 题相同(仅返回值不同):https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in..

StudyWinter的博客 289

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

题目链接:剑指 Offer 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 提示: 0 <= nums.length <= 105 -109 <= nums[i] <= 109 nums 是一个非递减数组 -109 <= tar

qq_46111138的博客 214

【leetcode C++】【剑指 Offer】 53 - I. 在排序数组中查找数字 I

剑指 Offer 53 - I. 在排序数组中查找数字 I class Solution { public: int search(vector<int>& nums, int target) { int ans = 0; for(auto num : nums) if(num == target) ans++; return ans; } };

izhxxx的博客 281

(二分查找) 剑指 Offer 53 - I. 在排序数组中查找数字 I ——【Leetcode每日一题】

剑指 Offer 53 - I. 在排序数组中查找数字 I 统计一个数字在排序数组中出现的次数。

weixin_43412762的博客 418

LeetCode——剑指 Offer 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 提示: 0 <= nums.length <= 105 -109 <= nums[i] <= 109 nums 是一个非递减数组 -109 <= target <= 109 来源:力扣(LeetCode) 链接:https://

FuckerGod的博客 309
上一篇: 【leetcode】剑指 Offer 03. 数组中重复的数字
下一篇: 【leetcode】剑指 Offer 53 - II. 0~n-1中缺失的数字
荔枝炖梨
博客等级 码龄10年 26粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值