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

leecode代码模板

二分算法:

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]class Solution {
public:vector<int> searchRange(vector<int>& nums, int target) {int start = searlower(nums, target);int end = searupper(nums, target);if(start == nums.size() || nums[start] != target || end == -1){return {-1, -1};}return {start, end};}int searlower(vector<int>& nums, int target){int left = 0, right = nums.size()-1;while(left <= right){int mid = left + (right - left) / 2;//循环不变量://未确定区间为[left, right]//nums[left - 1] < target//nums[right + 1] >= targetif(nums[mid] < target){left = mid + 1;}else{right = mid - 1;}}return left;}int searupper(vector<int>& nums, int target){int left = 0, right = nums.size()-1;while(left <= right){int mid = left + (right - left) / 2;//循环不变量://未确定区间为[left, right]//nums[left - 1] <= target//nums[right + 1] > targetif(nums[mid] <= target){left = mid + 1;}else{right = mid - 1;}}return right;}
};

定长滑动窗口:

//假设滑动窗口固定长度为: n ,则代码模板如下:
class Solution {
public:int SlideWindow(vector<int>& nums, int k) {int length = nums.size();//在进入循环之前,必须先初始化好窗口为最左侧位置的情况//并且维护好这种情况下的相关变量//这里要首先判断一下初始化的结果是否满足题意,然后下面的第一次循环就不必//遍历第一种情况了,这么做是也是为了满足循环不变量[i - n, i)//循环不变量:滑动窗口[i - n, i),窗口长度固定为 nfor (int i = n; i < length; i++) {//此时i位置为窗口本次循环的末位置下标,由于是开区间i,所以接下来要维护nums[i]的状态//而i-n位置为上一次循环的首位下标,我们通常也需要关注维护它的状态,使窗口左边界向右移动一位//以上操作进行完毕之后,此时窗口区间就变为闭区间[i - n + 1, i]了,长度还是n//下一次循环之前i++,区间再次变为半开半闭状态-[i - n, i)}return ...;}
};

不定长滑动窗口:

//不定长滑动窗口伪代码
class Solution {
public:int SlideWindow(string s) {// 同方向移动,起始的时候,都位于 0,表示我们定义搜索区间为 [left, right) ,此时区间为空区间int left = 0;int right = 0;while(right < Slen){//每一次循环的开始,都一定不满足条件//(因为上一次循环是从满足条件跳出while的)// 这里对状态做修改,好让程序在后面检测到满足条件while(满足条件){ // 对状态做修改,好让程序在后面检测到不满足条件left++;     //右移left}//记录当前最接近结果的值right++; //右移right}return maxlen;}
};

相关文章:

leecode代码模板

二分算法&#xff1a; 34. 在排序数组中查找元素的第一个和最后一个位置给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。你必须设计…...

可靠性测试及模型计算

双85高温高湿测试 场景描述&#xff1a; 85℃温度 85%湿度 老化测试 目的&#xff1a; 衡量产品使用寿命 反向推导&#xff1a; 如何根据产品寿命及工况计算双85测试时间 模型介绍 本质是化学反应速率&#xff08;老化的本质是&#xff09;随温度的变化 温湿度循环测…...

【Tools】 深入了解Burp Suite:Web应用抓包利器

唱 情 歌 齐齐来一遍 无时无刻都记住掌声 响遍天 来唱 情 歌 由从头再一遍 如情浓有点泪流难避免 音阶起跌拍子改变 每首歌 是每张脸 喜欢我 别遮脸 任由途人发现 &#x1f3b5; 刘德华《十七岁》 在Web应用和移动应用的开发与测试过程中&#xff0c;抓包…...

技术先进、应用广泛、社区活跃的[项目名称]

项目介绍 ----  [项目介绍内容]&#xff0c;此项目在开源社区中备受欢迎&#xff0c;其创新性技术和广泛应用领域吸引了大量开发者关注。  代码解释 ----  [代码解释内容]&#xff0c;该项目采用[编程语言]&#xff0c;通过[技术栈]实现&#xff0c;具有[功能特点]。  …...

Vue中data的属性可以和methods中方法同名吗,为什么?

在Vue中&#xff0c;data的属性不可以和methods中的方法同名&#xff0c;原因如下&#xff1a; 命名规范&#xff1a;从编程规范的角度来看&#xff0c;同名属性或方法可能会导致混淆和难以维护的代码。data通常用于存储组件的状态或数据&#xff0c;而methods则包含组件的行为…...

Esxi上创建windows 11虚拟机

下载windows 11系统镜像 Download Windows 11 (microsoft.com) 虚拟机配置 正常安装部署&#xff0c;需要注意以下几点&#xff1a; 1.cpu开启虚拟化&#xff0c;启用CPU热添加 2.内存开启热插拔 3.磁盘类型最好选择精简置备&#xff08;磁盘只使用最初所需要的数据存储空间…...

法大大亮相国家级期刊,助力数字政务有实“例”!

近日&#xff0c;在最新发布的国家级学术期刊《市场监督管理》中&#xff0c;法大大作为国内领先的电子签厂商亮相&#xff0c;这也是电子签行业的“第一次”。 截自《市场监督管理》2024年第12期 《市场监督管理》杂志于1953年创刊&#xff0c;是中国工商出版社主办的一本学术…...

【管理咨询宝藏131】麦肯锡波士顿贝恩经典战略咨询报告套装

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏131】麦肯锡波士顿贝恩经典战略咨询报告套装 【格式】PDF版本 【关键词】麦肯锡、波士顿咨询、贝恩咨询、战略咨询、战略落地、战略洞察 【强烈…...

Python | Leetcode Python题解之第160题相交链表

题目&#xff1a; 题解&#xff1a; class Solution:def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:A, B headA, headBwhile A ! B:A A.next if A else headBB B.next if B else headAreturn A...

SSRF学习,刷题

[HNCTF 2022 WEEK2]ez_ssrf 给了一个Apache2的界面&#xff0c;翻译一下 就是一个默认的界面,目录扫描 可以看到flag.php,肯定是不能直接访问得到的&#xff0c;还有index.php&#xff0c;访问这个 可以看到三个参数data,host,port 还有fsockopen() 函数是 PHP 中用于打开一个…...

K-Means 算法详解

K-Means 是一种常用的无监督学习算法&#xff0c;广泛应用于数据聚类分析。本文将详细讲解 K-Means 算法的原理、步骤、公式以及 Python 实现&#xff0c;帮助你深入理解这一经典算法。 什么是 K-Means 算法&#xff1f; K-Means 算法是一种基于原型的聚类算法&#xff0c;其…...

【DIY飞控板PX4移植】BARO模块BMP388气压计的PCB硬件设计和PX4驱动配置

BARO模块BMP388气压计的PCB硬件设计和PX4驱动配置 BMP388简介硬件设计封装原理图PCB设计引脚选择问题 PX4驱动配置飞控板的配置文件夹结构default.px4board文件nuttx-config/nsh/defconfig文件nuttx-config/include/board.h文件src/board_config.h文件src/i2c.cpp文件init/rc.b…...

Flutter框架高阶——Window应用程序设置窗体窗口背景完全透明

文章目录 1.修改 main.cpp1&#xff09;C 与 Win32 API2&#xff09;EnableTransparency()3&#xff09;中文注释 2.编写 Flutter 代码1&#xff09;bitsdojo_window2&#xff09;window_manager3&#xff09;区别对比4&#xff09;同时使用&#xff08;1&#xff09;设置初始化…...

HJ39判断两个IP是否属于同一子网

提示&#xff1a;文章 文章目录 前言一、背景二、 2.1 2.2 总结 前言 HJ39判断两个IP是否属于同一子网 一、 代码&#xff1a; 第一版代码没有对掩码网络号进行处理。一开始对非法字段的理解就是value大于255。然后执行示例&#xff0c; 254.255.0.0 85.122.52.249 10.57.…...

opencv学习笔记(2)

设置鼠标回调函数 setMouseCallback(winname, callback, userdata) winname:窗口名字 callback:回调函数 userdata:传回callback中 callback(event, x, y, flags,userdata) event:鼠标事件 x: 鼠标的x坐标 y: 鼠标的y坐标 flags:鼠标键和组合键 userdata:setMouseCallback传回…...

分享vs code十大好用的插件

1.Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code 将 VS Code 界面改成简体中文。 2.PDF Viewer 在VS Code 中打开 PDF文件。 3.TODO Highlight 这个扩展会突出显示您的待办事项注释&#xff0c;并提醒存在未完成的注释或任务。 该扩展附带了内…...

MySQL支持哪些特殊字符

MySQL支持多种特殊字符&#xff0c;这些字符在SQL语句中具有特定的含义&#xff0c;需要在使用时特别注意。以下是一些MySQL中的特殊字符及其相关信息&#xff1a; 引号&#xff1a; 单引号&#xff08;&#xff09;&#xff1a;用于定义字符串。如果字符串中包含单引号本身&…...

c语言中的宏是什么?

宏的定义及用途 C语言中的宏是一种预处理指令&#xff0c;它允许程序员定义一个名称&#xff0c;该名称可以代表一段代码或一个值。宏的主要用途是简化代码的编写&#xff0c;提高代码的可读性和可维护性&#xff0c;以及实现代码的重复利用。 宏的定义使用#define指令&#…...

采购信息记录标准编码范围维护以及如何开发获取编码范围

上图是配置的点&#xff0c;在这里可以获取到对应的编号范围以及对象名称 下面的话是官方就如何取编号的技术文档 SAP Help Portal...

渗透测试基础(四) MS08-067 漏洞攻击

1. 漏洞介绍 漏洞描述 Microsoft Windows Server服务RPC请求缓冲区溢出漏洞Windows的Server服务在处理特质RPC请求时存在缓冲区溢出漏洞&#xff0c;远程攻击者可以通过发送恶意的RPC请求触发这个溢出&#xff0c;导致完全入侵用户系统&#xff0c;以SYSTEM权限执行任意指令。…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...