当前位置: 首页 > news >正文

LeetCode-热题100-笔记-day32

二分查找

今日刷到二分查找,以前做过的题忘的一干二净;庆幸自己用新的方法做了出来两道“中等”题;(我都能做出来我认为应该标“简单”)由于之前题的难度基本在抄答案,所以停更几天。今天没抄答案就更新一下。

34. 在排序数组中查找元素的第一个和最后一个位置 

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值 target,返回 [-1, -1]

你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。

示例 1:

输入:nums = [5,7,7,8,8,10], target = 8
输出:[3,4]

算法思路

“ 间复杂度为 O(log n) ,按照非递减顺序排列的整数数组 nums”两个提示说明要用到二分查找才能满足题目要求,直接写出二分查找基本函数biSearch(int[] nums, int target),并在主函数调用;若在nums中找到target,则返回target的索引mid,否则返回-1;若返回-1就表示没找到,则返回[-1,-1];由于是非递数组,若有多个target值应该是连续存在,故从mid向两侧开始寻找,返回[indexl,indexr]即可;+1,-1是因为while跳出循环前多+/-一次;

class Solution {public int[] searchRange(int[] nums, int target) {int left=0,right=nums.length-1;int temp=biSearch(nums,target);if(temp>=0){int indexr=temp, indexl=temp;while(indexr<=right&&nums[indexr]==nums[temp]){indexr++;}while(indexl>=0&&nums[indexl]==nums[temp]){indexl--;}return new int[]{indexl+1,indexr-1};}return new int[]{-1,-1};}public int biSearch(int[] nums, int target) {int left=0,right=nums.length-1;while(left<=right){int mid=(right-left)/2+left;if(nums[mid]==target){return mid;}if(nums[mid]>target){right=mid-1;}else{left=mid+1;}}return -1;}
}

结果

74.搜索二维矩阵 

给你一个满足下述两条属性的 m x n 整数矩阵:

  • 每行中的整数从左到右按非递减顺序排列。
  • 每行的第一个整数大于前一行的最后一个整数。

给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。

示例 1:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true

算法思路

“非递减”直接使用效率最高的二分查找;每行循环一次进行一次二分查找找到为止;

class Solution {public boolean searchMatrix(int[][] matrix, int target) {for(int[] num:matrix){if(biSearch(num,target)==true){return true;}}return false;}public boolean biSearch(int[] nums, int target){int left=0, right=nums.length-1;while(left<=right){int mid=(right-left)/2+left;if(nums[mid]==target){return true;}if(nums[mid]>target){right=mid-1;}else{left=mid+1;}}return false;}
}

 结果


 

相关文章:

LeetCode-热题100-笔记-day32

二分查找 今日刷到二分查找&#xff0c;以前做过的题忘的一干二净&#xff1b;庆幸自己用新的方法做了出来两道“中等”题&#xff1b;&#xff08;我都能做出来我认为应该标“简单”&#xff09;由于之前题的难度基本在抄答案&#xff0c;所以停更几天。今天没抄答案就更新一…...

STP生成树协议基本配置示例---STP逻辑树产生和修改

STP是用来避免数据链路层出现逻辑环路的协议&#xff0c;运行STP协议的设备通过交互信息发现环路&#xff0c;并通过阻塞特定端口&#xff0c;最终将网络结构修剪成无环路的树形结构。在网络出现故障的时候&#xff0c;STP能快速发现链路故障&#xff0c;并尽快找出另外一条路径…...

Java版企业电子招标采购系统源码—企业战略布局下的采购寻源

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及审…...

华纳云:SQLserver配置远程连接的方法是什么

在 SQL Server 中配置远程连接涉及一些步骤&#xff0c;包括启用远程连接、配置网络协议、设置防火墙规则和授权远程访问。以下是一些配置远程连接的主要步骤&#xff1a; 启用远程连接&#xff1a; 打开 SQL Server Management Studio&#xff08;SSMS&#xff09;并连接到你的…...

CryptoCTF easy

文章目录 2023suctionBlue Office 2022Baphomet 2023 suction 题目描述&#xff1a; from Crypto.Util.number import * from flag import flagdef keygen(nbit, r):while True:p, q [getPrime(nbit) for _ in __]e, n getPrime(16), p * qphi (p - 1) * (q - 1)if GCD(e…...

计算机视觉技术的革新:医疗领域的应用

近年来&#xff0c;计算机视觉技术在医疗领域引起了广泛的关注和应用。通过将计算机视觉与医疗技术相结合&#xff0c;我们可以实现更准确、高效的医疗诊断和治疗&#xff0c;为患者提供更好的医疗服务。 首先&#xff0c;计算机视觉在医疗图像分析中的应用是其中的一个重要方…...

python找出文件夹里文件名以特定字符结尾的文件并移动到另一个目录

python找出文件夹里文件名以特定字符结尾的文件并移动到另一个目录 代码 import os import shutil# 源文件夹路径 source_folder "./data/deep/test"# 目标文件夹路径 target_folder "./data/deep/A"# 确保目标文件夹存在&#xff0c;如果不存在则创建…...

面试官问:大量的 TIME_WAIT 状态 TCP 连接,对业务有什么影响?怎么处理?

几个方面&#xff1a; 问题描述&#xff1a;什么现象&#xff1f;什么影响&#xff1f; 问题分析 解决方案 底层原理 1.问题描述 模拟高并发的场景&#xff0c;会出现批量的 TIME_WAIT 的 TCP 连接&#xff1a; 短时间后&#xff0c;所有的 TIME_WAIT 全都消失&#xff0…...

前端就业宝典---目录

工作时候扭螺丝,面试时候造火箭,现状就是如此。不管是背八股文,还是掌握了知识的精华,对答如流才是硬道理。本专栏就是要集具前端精华,规范、算法、架构、封装、原理等一并汇集,让前端的小伙伴有个思路。 大剑师的微信 gis-dajianshi, 欢迎一起交流,并非常期望您能够提…...

Uniboot 系列光纤跳线简介

飞速&#xff08;FS&#xff09;Uniboot 系列光纤跳线产品质量可靠&#xff0c;性能优良&#xff0c;可满足数据中心的各种需求。其中&#xff0c;包括LC、CS™、MDC 和 SN 在内的不同类型的连接器能够满足不同应用的特定需求。下面将进一步介绍飞速&#xff08;FS&#xff09;…...

【面试题】Promise只会概念远远不够,还需这17道题目巩固!

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 表妹一键制作自己的五星红旗国庆头像&#xff0c;超好看 在学习Promise相关题目之前&#xff0c;我们先做一些知识的回顾&#xff1a;JavaScript 是一门单…...

互联网医院牌照|互联网医院牌照审批流程和材料

随着科技的不断进步和社会的发展&#xff0c;互联网医院已经成为了当前的热点。而互联网医院的准入门槛自然也就越来越高。如果您计划成立一个互联网医院&#xff0c;您需要了解申请互联网医院牌照所需要注意的方面以及申请的流程。 一、资质申请前的准备 1、立项阶段准备 在立…...

第五章:C语言的数组

文章目录 1、数组的理解2、各类数组的定义3、变长数组4、字符数组 1、数组的理解 一维数组&#xff1a;比如定义一个int a[3];,那么可以将其看成两部分&#xff0c;a【3】为①&#xff0c;int为②。意思就是有一个数组名字为a&#xff0c;里面包含3个&#xff08;池&#xff0…...

Spring面试题3:说一说MVC框架的底层实现

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说MVC框架的底层实现 MVC(Model-View-Controller)是一种软件设计模式,常被用于构建用户界面和应用程序的架构。MVC框架的底层实现可以分为…...

云原生周刊:K8s 的 13 个最佳开源监控工具

开源项目推荐 Silver Surfer 该项目旨在检查 Kubernetes 对象的 API 版本兼容性&#xff0c;并为其提供迁移路径&#xff0c;以便为集群升级做好准备。 Actions Runner Controller Actions Runner Controller (ARC) 是一个 Kubernetes 操作器&#xff0c;可为 GitHub Actio…...

怎么克服一篇论文写作前的恐惧感?

作者 代陈锐 中国科学技术大学生命科学与医学部在读博士生,主要探究生理和病理过程中组蛋白翻译后修饰的调控机制。 1. 引言 在我们开始一篇文章的撰写时,往往不知如何下笔或是不停否认自己撰写的内容,最终的结果自然是撰写效率低而且陷入自我纠结。在这里我通过结合平时…...

Linux 安全 - Credentials

文章目录 一、简介1.1 Objects1.2 Object ownership1.3 The objective context1.4 Subjects1.5 The subjective context1.6 Actions1.7 Rules, access control lists and security calculations 二、Types of Credentials2.1 Traditional UNIX credentials2.2 Capabilities2.3 …...

网站服务器怎么部署

网站服务器怎么部署 1. 选择合适的服务器&#xff1a;根据网站的需求和流量&#xff0c;选择合适的服务器&#xff0c;包括硬件配置、操作系统和网络环境等。 2. 安装操作系统&#xff1a;根据服务器硬件配置选择合适的操作系统&#xff0c;并进行安装和配置&#xff0c;包括安…...

密码学【第一节:密码学概述】

前言 在区块链的整个体系中大量使用了密码学算法&#xff0c;比如用于 PoW 的哈希算法&#xff0c;用于完整性验证的 Merkle Tree&#xff0c;用于交易签名与验证的数字签名算法&#xff0c;用于隐私保护的零知识证明等等。 可以说密码学是保证区块链安全的基石&#xff0c;而区…...

Leetcode 95. 不同的二叉搜索树 II

文章目录 题目代码&#xff08;9.21 首刷看解析&#xff09; 题目 Leetcode 95. 不同的二叉搜索树 II 代码&#xff08;9.21 首刷看解析&#xff09; class Solution { public:vector<TreeNode*> generateTrees(int n) {return build(1,n);}vector<TreeNode*> bu…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...