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

leetcode 32最长有效括号 34在排序数组中查找元素的第一个和最后一个位置

32. 最长有效括号
给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。
示例 1:
输入:s = "(()"
输出:2
解释:最长有效括号子串是 "()"
示例 2:
输入:s = ")()())"
输出:4
解释:最长有效括号子串是 "()()"
示例 3:
输入:s = ""
输出:0

题解:通过栈实现

 enumerate函数用于将一个可迭代的对象组合为一个索引序列,
 同时列出数据和数据下标。在这个例子中,i是索引,j是s中的元素。

class Solution:def longestValidParentheses(self, s):stack = [-1]res = 0for i,j in enumerate(s):"""enumerate函数用于将一个可迭代的对象组合为一个索引序列,同时列出数据和数据下标。在这个例子中,i是索引,j是s中的元素。"""if j == "(":stack.append(i)else:stack.pop()if not stack:stack.append(i)else:res = max(res,i - stack[-1])return res
34. 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。
请你找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target,返回 [-1, -1]。
你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。
示例 1:
输入:nums = [5,7,7,8,8,10], target = 8
输出:[3,4]
示例 2:
输入:nums = [5,7,7,8,8,10], target = 6
输出:[-1,-1]
示例 3:
输入:nums = [], target = 0
输出:[-1,-1]

题解:可以直接使用二分查找函数 bisect_left, bisect_right 很快解出,这俩个函数具体使用,

参见博客http://t.csdnimg.cn/0H7jg

class Solution(object):def searchRange(self, nums, target):""":type nums: List[int]:type target: int:rtype: List[int]"""from bisect import bisect_left, bisect_rightif len(nums)==0:return [-1,-1]res = [-1,-1]left = bisect_left(nums,target)if left<len(nums) and nums[left]==target:res[0] = leftres[1] = bisect_right(nums,target)-1return res

补充 二分查找手搓代码,与之前总结的双指针解法十分类似,望读者进行区分掌握

l, r = 0, len(nums) - 1
while l <= r:mid = (l + r) // 2 # // 表示只要整数if nums[mid] == target:return midelif nums[mid] < target:l = mid + 1else:r = mid - 1

相关文章:

leetcode 32最长有效括号 34在排序数组中查找元素的第一个和最后一个位置

32. 最长有效括号 给你一个只包含 ( 和 ) 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 示例 1&#xff1a; 输入&#xff1a;s "(()" 输出&#xff1a;2 解释&#xff1a;最长有效括号子串是 "()" 示例 2&a…...

【附代码】判断线段是否相交算法(Python,C++)

【附代码】判断线段是否相交算法&#xff08;Python&#xff0c;C&#xff09; 文章目录 【附代码】判断线段是否相交算法&#xff08;Python&#xff0c;C&#xff09;相关文献测试电脑配置基础向量旋转向量缩放向量投影推导 点乘定义推导几何意义 叉乘定义推导几何意义 判断线…...

PDF控件Spire.PDF for .NET【转换】演示:将 PDF 转换为 word、HTML、SVG、XPS

本文我们将演示如何通过调用 Spire.PDF 提供的方法 PdfDocument.SaveToStream() 将 PDF 页面转换为 HTML、Word、SVG、XPS、PDF 并将它们保存到流中。并且从Spire.PDF版本4.3开始&#xff0c;它新支持转换定义范围的PDF页面并将其保存到流中。 Spire.Doc 是一款专门对 Word 文…...

【FLink】水位线(Watermark)

目录 1、关于时间语义 1.1事件时间 1.2处理时间​编辑 2、什么是水位线 2.1 顺序流和乱序流 2.2乱序数据的处理 2.3 水位线的特性 3 、水位线的生成 3.1 生成水位线的总体原则 3.2 水位线生成策略 3.3 Flink内置水位线 3.3.1 有序流中内置水位线设置 3.4.2 断点式…...

github访问不了问题

git clone github上的项目的时候&#xff0c;不是访问不了&#xff0c;就是克隆过程被中断了 最近找到一个代理&#xff0c;从代理那里clone而不是github上 GitHub代理 – 初果编程...

【Java】认识String类

文章目录 一、String类的重要性二、String类中的常用方法1.字符串构造2.String对象的比较3.字符串查找4.转换5.字符串替换6.字符串拆分7.字符串截取8.其他操作方法9.字符串的不可变性10.字符串修改 三、StringBuilder和StringBuffer 一、String类的重要性 在C语言中已经涉及到…...

算法——滑动窗口(Sliding Window)

一、背景知识 滑动窗口算法&#xff08;Sliding Window&#xff09;&#xff1a; 在给定数组 / 字符串上维护一个固定长度或不定长度的窗口。可以对窗口进行滑动操作、缩放操作&#xff0c;以及维护最优解操作。题型一&#xff1a;固定长度题型二&#xff1a;不固定长度 二、例…...

Android异步之旅:探索AsyncTask

前言&#xff1a; 在Android应用程序开发中&#xff0c;异步操作是非常常见的需求。比如&#xff0c;我们可能需要在后台线程中执行网络请求、数据库操作或者其他耗时的任务&#xff0c;而不阻塞UI线程。为了实现这些异步操作&#xff0c;Android提供了多种方式&#xff0c;其…...

kibana 7安装

手动安装 下载 wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.15-linux-x86_64.tar.gz 解压 mv kibana-7.17.15-linux-x86_64.tar.gz /usr/local tar -zxvf kibana-7.17.15-linux-x86_64.tar.gz chown -R es:es kibana-7.17.15-linux-x86_64修改配置 s…...

为何内存不够用?微服务改造启动多个Spring Boot的陷阱与解决方案

在生产环境中我们会遇到一些问题&#xff0c;此文主要记录并复盘一下当时项目中的实际问题及解决过程。 背景简述 最初系统上线后都比较正常风平浪静的。在系统运行了一段时间后&#xff0c;业务量上升后&#xff0c;生产上发现java应用内存占用过高&#xff0c;服务器总共64…...

大模型变身双面人:虚假新闻制造机VS假新闻鉴别大师!

大家是怎样看待大型语言模型生成信息的可靠性呢&#xff1f; 尽管大语言模型生成的内容“像模像样”&#xff0c;但这些模型偶尔的失误揭示了一个关键问题&#xff1a;它们生成的内容并不总是真实可靠的。 那么&#xff0c;这种“不保真”特性能否被用来制造虚假信息呢&#x…...

WordPress网站如何修复数千个帖子的SEO错误

在本教程中&#xff0c;我们将向您展示如何解决您经常犯的SEO错误。 最好的是您不必花费太多时间&#xff0c;因为您不需要打开并编辑每个帖子。 相反&#xff0c;我们将向您展示如何使用 WordPress 内的电子表格来修复 WordPress 帖子的 SEO。 在这里&#xff0c;我们为您提…...

Mac如何搭建Vue项目

目录 一、安装node 二、安装NPM 1、本地安装和全局安装 2、通过Node.js官方安装程序安装 3、通过Homebrew安装 三、NPM常用命令 1、查看模块的版本号 2、安装指定版本 3、卸载模块 4、更新模块 5、查看模块信息 6、查看模块地址 7、更新命令 8、卸载NPM 四、安装…...

深入 Django 的 URL 分发器

概要 在 Django 的 MVC 架构中&#xff0c;URL 分发器扮演着至关重要的角色&#xff0c;它负责将用户的请求路由到相应的视图函数或类。这一机制不仅保证了 Django 应用的高度可扩展性&#xff0c;还为开发者提供了灵活的 URL 设计能力。本文将详细介绍 Django 中的 URL 分发器…...

基于单片机设计的气压与海拔高度检测计(采用MPL3115A2芯片实现)

一、前言 随着科技的不断发展&#xff0c;在许多领域中&#xff0c;对气压与海拔高度的测量变得越来越重要。例如&#xff0c;对于航空和航天工业、气象预报、气候研究等领域&#xff0c;都需要高精度、可靠的气压与海拔高度检测装置。针对这一需求&#xff0c;基于单片机设计…...

云原生入门系列(背景和驱动力)

做任何一件事&#xff0c;或者学习、应用一个领域的技术&#xff0c;莫过于先要想好阶段的目标和理解、学习它的意义是什么&#xff1f;解决了什么问题&#xff1f; 这部分&#xff0c;就尝试来探讨下这个阶段需要理解并达成的目标以及践行云原生的意义在哪里。 1.历程 任何阶…...

Django中间件

目录 一.介绍 1.什么是Django中间件 2.作用&#xff1a; 3.示例 二.Django请求生命周期流程图 三.Django中间件是Django的门户 四.中间件方法 1.必须掌握的中间件方法 &#xff08;1&#xff09;process_request: 示例&#xff1a; 2.需要了解的中间件方法 &#x…...

redis运维(十九)redis 的扩展应用 lua(一)

一 redis 的扩展应用 lua redis如何保证原子操作 说明&#xff1a;引入lua脚本,核心解决原子性问题 ① redis为什么引入lua? lua脚本本身体积小,启动速度快 ② redis引入lua的优势 小结&#xff1a; 类似自定义redis命令 ③ redis中如何使用lua ④ EVAL 说明&#…...

SpringBoot——MVC原理

优质博文&#xff1a;IT-BLOG-CN 一、SpringMVC自动配置 SpringMVC auto-configuration&#xff1a;SpringBoot自动配置好了SpringMVC。以下是SpringBoot对SpringMVC的默认配置&#xff1a;[WebMvcAutoConfiguration] 【1】包括ContentNegotiatingViewResolver和BeanNameView…...

[Linux] shell条件语句和if语句

一、条件语句 1.1 测试 test 测试文件的表达式是否成立 格式&#xff1a;test 条件表达式 [ 条件表达式 ] 选项作用-d测试是否为目录-e测试目录或文件是否存在-a测试目录或文件是否存在-f测试是否为文件-r测试当前用户是否有权限读取-w测试当前用户是否有权限写入-x测试当前…...

C++27原子操作性能瓶颈诊断指南(含perf + llvm-mca深度追踪模板):从虚假共享到内存重排序的5层根因定位法

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;C27原子操作性能调优的演进逻辑与边界认知 C27 将引入原子操作的“延迟可见性语义”&#xff08;Deferred Visibility Semantics&#xff09;与硬件级内存序感知调度器&#xff08;HMOS&#xff09;&am…...

TEK Launcher:ARK: Survival Evolved玩家的终极免费启动器解决方案

TEK Launcher&#xff1a;ARK: Survival Evolved玩家的终极免费启动器解决方案 【免费下载链接】TEKLauncher Launcher for ARK: Survival Evolved 项目地址: https://gitcode.com/gh_mirrors/te/TEKLauncher TEK Launcher是一款专为ARK: Survival Evolved设计的现代化启…...

终极内存诊断指南:Memtest86+ 完整使用教程

终极内存诊断指南&#xff1a;Memtest86 完整使用教程 【免费下载链接】memtest86plus Official repo for Memtest86 项目地址: https://gitcode.com/gh_mirrors/me/memtest86plus 你是否经历过电脑频繁蓝屏、系统无故重启&#xff0c;或者重要数据莫名其妙损坏&#xf…...

饰品为什么需要检测,检测标准是什么

为什么需要做饰品检测饰品做检测的核心目的的是守护健康、保障权益、合规经营、保护品牌&#xff0c;是饰品流通与使用中不可或缺的环节&#xff0c;具体原因如下&#xff1a;一、守护贴身健康&#xff0c;规避安全风险饰品多长期贴身佩戴&#xff0c;不合格产品易带来多重健康…...

完整指南:如何用ImageToSTL将任何图片转换为3D打印模型

完整指南&#xff1a;如何用ImageToSTL将任何图片转换为3D打印模型 【免费下载链接】ImageToSTL This tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left side.…...

终极Mod管理革命:如何用Reloaded-II在3分钟内告别传统Mod安装的烦恼?

终极Mod管理革命&#xff1a;如何用Reloaded-II在3分钟内告别传统Mod安装的烦恼&#xff1f; 【免费下载链接】Reloaded-II Universal .NET Core Powered Modding Framework for any Native Game X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II Re…...

告别版本冲突!用NVM在Windows上丝滑管理多个Node.js项目(附镜像加速)

告别版本冲突&#xff01;用NVM在Windows上丝滑管理多个Node.js项目&#xff08;附镜像加速&#xff09; 你是否曾在Windows上同时维护多个Node.js项目时&#xff0c;因为版本不兼容而焦头烂额&#xff1f;老项目需要Node.js 12&#xff0c;新项目却要求Node.js 18&#xff0c…...

抖音无水印下载工具:从单视频到批量下载的完整解决方案

抖音无水印下载工具&#xff1a;从单视频到批量下载的完整解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...

AI自动生成代码文档:从LLM原理到工程实践

1. 项目概述&#xff1a;当AI遇见文档生成如果你是一名开发者&#xff0c;或者经常需要和代码、API、配置文件打交道&#xff0c;那么“写文档”这件事&#xff0c;大概率是你的痛点之一。代码写完了&#xff0c;功能跑通了&#xff0c;但面对空白的README.md或者API文档页面&a…...

ComfyUI-Impact-Pack:AI图像精细化处理的模块化革命

ComfyUI-Impact-Pack&#xff1a;AI图像精细化处理的模块化革命 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地址: https://gi…...