力扣41~45题

news2024/10/21 16:45:54

题41(困难):

分析:

这题我开始没什么思路,记录第一个逼我看评论的,后面看评论的方法,真解,借助一个数组,将nums对应数字放对应位置,然后如果下标和数字不同就返回

python代码(基础版):

class Solution:
    def firstMissingPositive(self, nums: List[int]) -> int:
        n_list=[-1 for i in range(len(nums))]

        #根据提示O(2n)==O(n),我们知道了一定要循环两次,于是就有放回位置上去
        for i in range(len(nums)):
            if nums[i]>0 and nums[i]<=len(nums):
                n_list[nums[i]-1]=nums[i]
        for i in range(len(n_list)):
            if n_list[i]==-1:
                return i+1
        return len(nums)+1

python代码(进阶):

class Solution:
    def firstMissingPositive(self, nums: List[int]) -> int:
        n_len=len(nums)
        #不能用额外空间,那就改变它的值,且时间复杂度为O(n),
        #首先使用双指针法,将等于len和小于0的值去了或者放到另一边
        left=0
        right=len(nums)-1
        flag=1
        while left<=right:
            while left<=right:
                if nums[left]>n_len or nums[left]<=0:
                    break
                left+=1
            while left<=right:
                if nums[right]<=n_len and nums[right]>0:
                    break
                right-=1
            if left>right:
                break
            else:
                nums[left],nums[right]=nums[right],-1

        #另一边的空间就随便我们使用了,通过left来知道有多少个,将数字根据下标排好
        n=0
        while n<left:
            if nums[n]>n_len or nums[n]<=0:
                n+=1
                continue
            if nums[n]!=n+1:
                #如果不相同,则放到相同的地方
                if nums[n]!=nums[nums[n]-1]:
                    #保证换回来的数字不重复,不然就卡住了,顺便排除相同的
                    tmp=nums[n]
                    nums[n]=nums[nums[n]-1]
                    nums[tmp-1]=tmp
                    n-=1
            n+=1

        #遍历找相同的
        for i in range(n_len):
            if nums[i]!=i+1:
                return i+1
        return n_len+1

题42(困难):

分析:

我一开始是数格子,从最后一行数,但是超时了,只能寻找其他方法,然后想到双指针法,我们可以移动更小的一遍,因为这样对整体才有影响嘛,之前求最大盛水量也是这样,

#双指针,先找左右局部极大值
#移动更小的指针,
#如果移动遇到小于其高度的点,面积加上h_left_max-h_left
#如果大于,则h_left_max=h_left,a再和右比较,

python代码:

class Solution:
    def trap(self, height: List[int]) -> int:
        #双指针,先找左右局部极大值
        w_res=0
        left=0
        right=len(height)-1
        #左右找峰值
        n=0
        while left<right:
            if height[left]<height[left+1]:
                left+=1
            else:
                break
        while left<right:
            if height[right]<height[right-1]:
                right-=1
            else:
                break

        h_left_max=height[left]
        h_right_max=height[right]
        #移动更小的指针,
        #如果移动遇到小于其高度的点,面积加上h_left_max-h_left
        #如果大于,则h_left_max=h_left,a再和右比较,
        while left<right:
            if height[left]<height[right]:
                while left<right:
                    left+=1
                    if h_left_max<height[left]:
                        h_left_max=height[left]
                        break
                    w_res+=(h_left_max-height[left])
            else:
                while left<right:
                    right-=1
                    if h_right_max<height[right]:
                        h_right_max=height[right]
                        break
                    w_res+=(h_right_max-height[right])
        return w_res

题43(中等):

明天

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

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

相关文章

支撑每秒数百万订单无压力,SpringBoot + Disruptor 太猛了!

文章目录 一、支撑每秒数百万订单无压力&#xff0c;SpringBoot Disruptor 太猛了&#xff01;二、项目环境配置1.Maven 配置 (pom.xml)2.Yaml 配置 (application.yml)3.Disruptor 的核心实现4.定义事件工厂&#xff08;OrderEventFactory&#xff09;5.定义事件处理器&#x…

概率 随机变量以及分布

一、基础定义及分类 1、随机变量 随机变量是一个从样本空间&#xff08;所有可能结果的集合&#xff09;到实数集的函数。&#xff08;随机变量的值可以是离散的&#xff0c;也可以是连续的。 &#xff09; 事件可以定义为随机变量取特定值的集合。 2、离散型随机变量 随机变…

怎么才能算AI智能体?

科技界对 AI 智能体的痴迷愈演愈烈。销售从智能体到自动化系统&#xff0c;比如像 Salesforce 和 Hubspot 这样的公司声称可以提供具有颠覆性的 AI 智能体。但是&#xff0c;我还没有看到一个真正令人信服、完全自主的基于 LLM 的智能体。市场上充斥着各种 “废物机器人”&…

OIDS与ERP:物料管理的高效协同

添加HanTop-MKT&#xff0c;咨询物料管理协同解决方案 客户案例 背景&#xff1a; 在当前快速发展的3C自动化行业&#xff0c;企业面临着前所未有的挑战。产品生命周期的缩短、个性化需求的增长以及市场变化的加速&#xff0c;都要求企业必须具备快速响应的能力。在这样的环…

一个月学会Java 第15天 枚举与Debug

Day15 枚举与Debug 这节课我们来看看枚举&#xff0c;和Debug&#xff0c;当我们学完并会用debug之后呢&#xff0c;编码会非常的舒服&#xff0c;而且debug就是调试嘛&#xff0c;所以我们会了debug之后&#xff0c;在程序哪里出问题也可以进行锁定。 第一章 枚举 枚举并不是非…

Spring Boot知识管理:提升团队协作效率

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常适…

探索巅峰性能 |迅为 RK3588开发板深度剖析

RK3588作为瑞芯微公司旗下一款高端处理器的杰出代表&#xff0c;凭借卓越的性能与多样化的外设接口成为了众多开发和爱好者的首选。随着RK3588在市场上的广泛应用&#xff0c;大家不禁要提出疑问&#xff1a;RK3588究竟强在何处&#xff1f;在2022年&#xff0c;北京迅为电子推…

【Linux网络编程】--- Linux基本指令(上)

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; Linux网络编程 &#x1f3e0; ls命令 语法 : ls -[选项] [目录或文件] 功能 : 对于目录,该命令列出该目录下的所有子目录与文件;对于文件,将列出文件名…

STL.string(上)

string string类string类构造string类对象的容量操作size和lengthmax_sizeappend小总结下size、capacity、append、operatorresizereserve 初识迭代器附录1. vs下string结构的说明&#xff08;解释前文为什么capacity是16而不是别的&#xff09; 由于string创始初期没有参照导致…

1.centos 镜像

centos 它有官网的下载地址&#xff1a;https://vault.centos.org/ 选择想要的版本&#xff0c;我选择 centos7.8 进入到镜像目录 isos 选择 x86_64 选择想要的版本&#xff0c;我选择 CentOS-7-x86_64-DVD-2003.iso 安装就正常安装就行。我选择虚拟机安装。这个参考&…

一区鱼鹰优化算法+深度学习+注意力机制!OOA-TCN-LSTM-Attention多变量时间序列预测

一区鱼鹰优化算法深度学习注意力机制&#xff01;OOA-TCN-LSTM-Attention多变量时间序列预测 目录 一区鱼鹰优化算法深度学习注意力机制&#xff01;OOA-TCN-LSTM-Attention多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.基于OOA-TCN-LSTM-Attenti…

Java 入门基础篇11 - java基础语法

一 流程控制 1.1 流程控制语句介绍 一个java程序有很多条语句组成&#xff0c;流程控制语句是用来控制程序中的各语句执行的顺序&#xff0c;通过流程语句控制让程序执行顺序达到我们想要实现的功能。 其流程控制方式采用结构化程序设计中规定的三种基本流程结构&#xff1a;…

金融信用评分卡建模项目:AI辅助

最近我一直忙着开发一个信用评分卡建模工具&#xff0c;所以没有时间更新示例或动态。今天&#xff0c;我很高兴地跟大家分享&#xff0c;这个工具的基本框架已经完成了&#xff0c;并且探索性的将大语言模型&#xff08;AI&#xff09;整合了进去。目前ai在工具中扮演智能助手…

探索人工智能:深度解析未来科技的核心驱动力

目录 &#x1f354; 人工智能的应用方向 &#x1f354; 人工智能的发展历史 &#x1f354; 人工智能、机器学习、深度学习关系 &#x1f354; 为什么学习机器学习&#xff1f; &#x1f354; 小节 学习目标 &#x1f340; 了解人工智能的应用方向 &#x1f340; 了解人工智…

CICD持续集成交付与持续交付

一 CICD是什么 CI/CD 是指持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;或持续交付&#xff08;Continuous Delivery&#xff09; 1.1 持续集成&#xff08;Continuous Integration&#xff09; 持续集成…

javascript object

用const去define一个constant 用let (如果要reassign的话) 一个变量。

每天3分钟,彻底弄懂神经网络的优化器(十一)AdamW

1. AdamW算法的提出 AdamW算法是由Ilya Loshchilov和Frank Hutter提出的。这一算法的详细描述和原理可以在论文《Decoupled Weight Decay Regularization》1中找到&#xff0c;该论文发表于2017年。在论文中&#xff0c;作者指出了传统Adam算法在权重衰减&#xff08;weight d…

初等数学几百年重大错误:将根本不是无穷集的真子集误为其真子集

黄小宁 【摘要】长为1的直线段形橡皮筋A拉长为长为2的橡皮筋B&#xff08;可二等分&#xff09;&#xff0c;去掉拉力使B缩短成原来的A&#xff0c;A不是B的一半。同样可证直线段L均匀压缩变短为直线段D&#xff5e;L不能成为L的一部分。数学一直误以为D是L的一部分使康脱推出…

C/C++栈和队列

一.队列 结构定义 FIFO:队列是一个先进先出的数据结构; 只允许从队首出元素,从队尾入元素; head和tail所包含的区间是左闭开的; 入队操作 没用真实将一号元素删除,而是将head指针向后移动一位,进行逻辑上的删除; 出队操作 将新元素储存在队尾指针所在的位置,并将队尾指针…

二校区图书馆一楼《中华再造善本》很多

上两幅为同一本书的&#xff0c;有“太平之时嫌官小&#xff0c;离乱之时怕出征”这句 上两幅为同一本书的&#xff0c;为《水浒传》节选 二校区图书馆一楼满眼都是线装的古书《中华再造善本》 图书馆五楼 图书馆四楼&#xff0c;一个人躺在长沙发上 图书馆一楼的透明电梯