注册网站免费网站开发方向

news/2025/9/22 19:45:08/文章来源:
注册网站免费,网站开发方向,安装Wordpress的免费空间,做网站用哪个服务器好导语 leetcode刷题笔记记录#xff0c;本篇博客记录数组基础1部分的题目#xff0c;主要题目包括#xff1a; Leetcode 704 二分查找Leetcode 27 移除元素 知识点 二分查找 原理 二分查找的适用对象为有序数组且数组中无重复元素#xff0c;其主要原理是每次都从有序…导语 leetcode刷题笔记记录本篇博客记录数组基础1部分的题目主要题目包括 Leetcode 704 二分查找Leetcode 27 移除元素 知识点 二分查找 原理 二分查找的适用对象为有序数组且数组中无重复元素其主要原理是每次都从有序的区间中点开始对比数据因此其时间复杂度为 O ( l o g N ) O(logN) O(logN). 易错点 二分查找的易错点主要在边界条件的选取上比如while中到底使用还是中点位置索引mid更新时right middle呢还是要right middle - 1。为此可以使用区间的思想来理解。 一般我们在初始化左右边界时left0但right一般有两种常见的写法 right len(nums) - 1此时nums[right]是可以取到的是有意义的所以mid的取值为左闭右闭区间[left, right]。right len(nums)此时nums[right]无法取到是没有意义的所以mid的取值为左闭右开区间[left, right)。 对于第一种闭区间的情况由于左右都可以取到所以while中的判断条件应该是 left right而在更新right和left时则分别使用mid1mid-1即可。 对于第二种右侧为开区间的情况由于右边取不到边界值所以一定有left right所以在更新right时必须使用right mid。 双指针 原理 双指针Two Pointers指的是在遍历元素的过程中不是使用单个指针进行访问而是使用两个指针进行访问从而达到相应的目的。如果两个指针方向相反则称为「对撞指针」。如果两个指针方向相同则称为「快慢指针」。如果两个指针分别属于不同的数组 / 链表则称为「分离双指针」。 在数组的区间问题上暴力算法的时间复杂度往往是 O ( n 2 ) O(n^2) O(n2)。而双指针利用了区间「单调性」的性质可以将时间复杂度降到 O ( n ) O(n) O(n)。 Leetcode 704 二分查找 题目描述 给定一个 n 个元素有序的升序整型数组 nums 和一个目标值 target  写一个函数搜索 nums 中的 target如果目标值存在返回下标否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4示例 2: 输入: nums [-1,0,3,5,9,12], target 2 输出: -1 解释: 2 不存在 nums 中因此返回 -1提示 你可以假设 nums 中的所有元素是不重复的。n 将在 [1, 10000]之间。nums 的每个元素都将在 [-9999, 9999]之间。 解法 主要的解题思路参考原理部分这里分别写出两种边界值取法下的代码。 左闭右闭解法 class Solution(object):def search(self, nums, target)::type nums: List[int]:type target: int:rtype: int# 首先定义左右索引值left, right 0, len(nums)-1while left right:# mid ( left right ) // 2mid ( right - left ) // 2 left # 避免溢出 if nums[mid] target:left mid 1elif nums[mid] target:right mid -1 else:return midreturn -1左闭右开解法 class Solution(object):def search(self, nums, target)::type nums: List[int]:type target: int:rtype: intleft, right 0, len(nums)while left right:mid ( right - left ) // 2 leftif nums[mid] target:return midelif nums[mid] target:left mid 1else:right mid return -1Leetcode 27 移除元素 题目描述 给你一个数组 nums **和一个值 val你需要 原地 移除所有数值等于 val **的元素并返回移除后数组的新长度。 不要使用额外的数组空间你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1 输入 nums [3,2,2,3], val 3 输出 2, nums [2,2] 解释 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如函数返回的新长度为 2 而 nums [2,2,3,3] 或 nums [2,2,0,0]也会被视作正确答案。示例 2 输入 nums [0,1,2,2,3,0,4,2], val 2 输出 5, nums [0,1,4,0,3] 解释 函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。提示 0 nums.length 1000 nums[i] 500 val 100 解法 这道题目由于规模不是很大首先可以使用暴力解法相关图示参考示意图 其中使用了两层循环复杂度为 O ( N 2 ) O(N^2) O(N2)。代码如下 class Solution(object):def removeElement(self, nums, val)::type nums: List[int]:type val: int:rtype: inti, cnt 0, 0size len(nums)while i size - cnt:if nums[i] val:for j in range(i, size-1):nums[j] nums[j1]cnt 1else:i 1return size - cnt之前讲到使用双指针可以将一些数组区间上的问题转化为 O ( N ) O(N) O(N)复杂度这里其实也可以使用快慢双指针来解决。我们定义两个指针一个快指针fast一个慢指针slow。一开始令两个指针都为0然后先移动fast如果nums[fast]不是要删除的值val那么移动slow然后将fast位置的值赋给slow位置。而如果nums[fast]是要删除的值val那么我们不管这个值继续移动fast。重复上述过程fast将遍历整个数组然后只将不是val的值移动到了前面而slow则记录了这些值的数目。所以返回值直接返回slow即可。 相关代码如下 class Solution(object):def removeElement(self, nums, val)::type nums: List[int]:type val: int:rtype: intslow, fast 0, 0size len(nums)while fast size:if nums[fast] ! val:nums[slow] nums[fast]slow 1fast 1return slow参考 代码随想录二分法双指针Two Pointers用法精讲及解题案例题解

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

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

相关文章

php做网站的源码东坑做网站

贴个群号 WebGIS学习交流群461555818,欢迎大家 心路历程 当vue2由mapbox2升级为mapbox3的时候,您可能会遇到以下的问题 所有的代码都没有改变,升级为mapbox3就会出现部分矢量底图样式丢失,表现为图层已经成功加上,但…

建设银行的网站为什么这么卡91号卡分销平台

1. Sqoop 1.1 Sqoop介绍 Sqoop 是一个在结构化数据和 Hadoop 之间进行批量数据迁移的工具 结构化数据可以是MySQL、Oracle等关系型数据库 把关系型数据库的数据导入到 Hadoop 与其相关的系统 把数据从 Hadoop 系统里抽取并导出到关系型数据库里 底层用 MapReduce 实现数据 …

上海营销网站推广多有什么做ppt的网站吗

目录 一、4大特性(ACID)二、隔离级别三、传播机制 一、4大特性(ACID) 原子性(A):在一个事务中,要么全部成功,要么全部失败。一致性(C)&#xff1…

# Xilnx FPGA 资源结构

Xilnx FPGA 资源结构内容来自b站uo: https://space.bilibili.com/477924102?spm_id_from=333.788.upinfo.head.clickfpga 主要资源CLB 的结构图中展示的是一个数字电路设计的部分,通常用于FPGA(现场可编程门阵列)设…

网站宣传文案范例亚马逊网站链接

当用客户端工具连接数据库 以root 用户登录后 无法给相关用户授权数据库等操作: 原因: root%表示 root用户 通过任意其他端访问操作 被拒绝! 授权即可: 登录server端: mysql -uroot -pxxxxx(使用账号密码登录linux mysql服务内部) 然后输入如下sql命令…

广州市建设工程安监站网站网站建设项目描述

为什么说重载是编译时的多态? 重载(Overloading)被称为编译时的多态,是因为它涉及到在编译阶段(而非运行时)根据方法签名的不同来选择正确的方法实现。重载发生在同一个类中,其中有多个方法具有…

dedecms 视频网站模板WordPress去掉文章摘要

ArkUI即方舟开发框架是HarmonyOS应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。 开发文档地址 &…

软文网站模板网站建设陆金手指下拉壹玖

提示: 所有体系课见专栏:Go 项目开发极速入门实战课;欢迎加入我的训练营:云原生AI实战营,一个助力 Go 开发者在 AI 时代建立技术竞争力的实战营;本节课最终源码位于 fastgo 项目的 feature/s14 分支&#x…

各大网站免费观看优化大师软件大全

Java异常详解 异常分类1.Throwable2. Error(错误)3. Exception(异常)3.1 运行时异常 RuntimeException3.2 编译时异常(受检查异常)ClassNotFoundException + IOException4.常见的运行时异常5.异常如何处理Java 的异常处理是通过 5 个关键词来实现的:try、catch、throw、…

昆明做网站建设价位wordpress 做分销

一、platform总线、设备与驱动 在Linux 2.6 的设备驱动模型中,关心总线、设备和驱动3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,…

论坛备案 和网站备案最佳品牌营销策划公司

猫脸码客作为一个专注于开源数据集分享的公众号,致力于为广大用户提供丰富、优质的数据资源。我们精心筛选和整理各类开源数据集,涵盖机器学习、深度学习、自然语言处理等多个领域,以满足不同用户的需求。 (https://img-blog.csdnimg.cn/d98…

app网站建设济宁下面哪一项不属于网络营销方式

// 去掉数组中的空数据 for (let i 0; i < arr.length; i) {if (arr[i] null || arr[i] undefined || arr[i] "") {arr.splice(i, 1);i--;} }

有哪些好的做问卷调查的网站电商设计师常用的网站

引言 最近在学习Mybatis Plus的使用&#xff0c;希望通过spring boot快速将mybatis plus整合进来。 对于springboot项目&#xff0c;mybatis plus团队也有自己的启动器 &#xff1a;mybatis-plus-boot-starter。这个依赖内部已经整合了mybatis-spring&#xff0c;也包括非快速…

2025年录音转文字技术解析与实用工具评测 - 指南

2025年录音转文字技术解析与实用工具评测 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …

CF2147H Maxflow GCD Coloring 题解

Description 给定一个无向图 \(G\),它有 \(n\) 个顶点,每条边上有一个正整数容量。我们记 \(\textsf{maxflow}(u,v)\) 为图中从源点 \(u\) 到汇点 \(v\) 的最大流值。 我们称图 \(G\) 是 好图,如果存在一个整数 \(d…

详细介绍:深入理解 JVM 字节码文件:从组成结构到 Arthas 工具实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

免费做网站优化网站建设需要费用

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 人脸检测 4.2 局部区域选择 4.3 特征提取 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .........................................…

借助S参数测量评估电容器阻抗第 2 部分

借助S参数测量评估电容器阻抗第 2 部分2025-09-22 19:37 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !…

诸城建设局网站郑州seo优化

为什么80%的码农都做不了架构师&#xff1f;>>> find / -name httpd.conf find / -name access_log 2>/dev/null find /etc -name *srm* find / -amin -10 # 查找在系统中最后10分钟访问的文件 find / -atime -2 # 查找在系统中最后48小时访问的文件 find / -mm…

网站管理设置湖州网站开发公司

解决办法&#xff1a; What solved was to go to Navigate > Reveal in Project Navigator . After this, the structure appeared again.