Leetcode刷题第三天-二分查找

news/2025/1/3 20:35:46/文章来源:https://www.cnblogs.com/xiaoruru/p/18646454

162. 寻找峰值 - 力扣(LeetCode)

没二分,数组头尾分别插入最小值和最大值,比较num[i-1]<num[i]>num[i+1]

class Solution:def findPeakElement(self, nums: List[int]) -> int:if not nums:return Nonemax_num,min_num=min(nums)-1,min(nums)-1new_nums=[min_num]+nums+[max_num]left,right=1,len(nums)for i in range(left,right+1):if new_nums[i-1]<new_nums[i] and new_nums[i]>new_nums[i+1]:return i-1
findPeakElement

167. 两数之和 II - 输入有序数组 - 力扣(LeetCode)

头+尾大于目标尾减,小于目标头加

class Solution:def twoSum(self, numbers: List[int], target: int) -> List[int]:if not numbers:return Noneleft,right=0,len(numbers)-1while left<right:if numbers[left]+numbers[right]>target:right-=1elif numbers[left]+numbers[right]<target:left+=1else:return [left+1,right+1]
twoSum

209. 长度最小的子数组 - 力扣(LeetCode)

快慢指针

慢指针指向窗口头,快指针向前走,计算快慢指针之间数据和

  • 和小于目标值,快指针向前走
  • 和大于等于目标值,快指针不动,记录窗口长度,和减去当前慢指针数据,慢向前走
class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:if not nums:    return 0slow,fast,sums=0,0,0re=len(nums)+1while slow<=fast:if sums<target:if fast<len(nums):sums+=nums[fast]fast+=1else:breakelse:re=min(re,fast-slow)sums-=nums[slow]slow+=1if re==len(nums)+1:return 0return re
minSubArrayLen

240. 搜索二维矩阵 II - 力扣(LeetCode)

按行进行二分,应该还有简单的方法,容我思考思考

class Solution:def help(self,nums,target):if not nums:return Falseleft,right=0,len(nums)while left<right:middle=int((left+right)/2)if nums[middle]==target:return Trueelif nums[middle]>target:right=middleelse:left=middle+1return Falsedef searchMatrix(self, matrix: List[List[int]], target: int) -> bool:if not matrix:return Falseleft,right=0,len(matrix)for i in range(right):if self.help(matrix[i],target):return Truereturn False
searchMatrix

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/862495.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux系统变量配置与脚本

一、为什么要配置linux的环境变量 添加环境变量之后可以直接在 termianl 中运行 shell 脚本、 可以在 运行 界面直接运行 shell 脚本 可以为命令添加别名等操作,方便输入指令 可以添加函数,方便将常用组合写成一条命令,比如git的提交操作,经典的三条指令二、如何配置linux环…

linux系统变量配置

一、为什么要配置linux的环境变量 添加环境变量之后可以直接在 termianl 中运行 shell 脚本、 可以在 运行 界面直接运行 shell 脚本 可以为命令添加别名等操作,方便输入指令 可以添加函数,方便将常用组合写成一条命令,比如git的提交操作,经典的三条指令二、如何配置linux环…

BUUCTF Misc刷题37

37、[BJDCTF2020]你猜我是个啥 随波逐流梭了

Vue 使用脚手架

一、安装脚手架npm install -g @vue/cli注意:安装过程有警告,安装完后,关闭窗口,重新打开cmd,输入vue,没有报错 二、切换到创建文件的目录,然后使用命令创建vue create vue_test耐心等待 三、启动项目npm run serve

DL00237-基于YOLOv8深度学习的磁瓦缺陷检测含完整数据集实验结果

https://item.taobao.com/item.htm?ft=t&id=787390961923&spm=a21dvs.23580594.0.0.621e2c1bY0k4d9

中考英语优秀范文-005 What will you do for Mum? 你将为妈妈做些什么?

1 写作要求 天下最伟大的爱就是母爱。假设你是李静,母亲节就要到了,你们班将举办以What will you do for Mum? 为题的英语演讲比赛。请你准备一篇80词左右的演讲稿参加比赛。 2 优秀范文 What will you do for Mum? Hello, class. I’m Li Jing. Mother’s Day is coming. …

Notes.js的安装和配置

一、安装 1、下载 https://nodejs.org/en/download/ 2、安装 3、测试 打开cmd 查看node 和npm 版本node -vnpm -v 二、环境配置 1、找到安装目录,新建 node_cache 和 node_global文件夹 2、以管理员权限打开cmd 输入npm config set prefix "D:\nodejs\node_global"…

本地大模型初体验

前言 近几年这个话题很火,但是我一直没得去尝试一下,今天突然来兴趣想试试,然后就出来了这一篇文档。 环境准备docker安装管理工具 Ollama是一款开源的大模型管理工具,它允许用户在本地便捷地运行多种大型开源模型,包括清华大学的ChatGLM、阿里的千问以及Meta的llama等。目…

Linux装逼玩法之wttr.in天气

什么是 wttr.in? wttr.in 是一个基于 Web 的命令行天气服务,由 Igor Chubin 开发。它通过调用OpenWeatherMap 等天气服务的 API,提供了简洁、直观的天气信息展示。 Linux使用Curl命令可快速获取天气信息查询指定城市的天气[Wed Jan 01 20:38:53 root@localhost ~ ]# curl wt…

vmware下载安装配置

vmware下载安装配置 下载 https://www.vmware.com/ # 官网 https://www.broadcom.com/ # Broadcom官网 https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion # VMware官网虚拟机下载页 https://www.filehorse.com/download-v…

软件安全测试

一、网络协议基础 1、网络模型 我们把一些过程封装到一起,称为“模型”,如下:把北京中的4个步骤封装到一起,就是1个模型了。 (1)网络模型-OSI OSl(Open System Interconnection 开放系统互联)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体…