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

力扣16~20题

题16(中等):

思路:

双指针法,和15题差不多,就是要排除了,如果total<target则排除了更小的(left右移),如果total>target则排除了更大的(right左移)

python代码:

class Solution:def threeSumClosest(self, nums: List[int], target: int) -> int:nums.sort()sum=nums[0]+nums[1]+nums[2]for i in range(len(nums)):if i>0 and nums[i]==nums[i-1]:continueleft = i + 1right = len(nums) - 1while left < right:total=nums[i]+nums[left]+nums[right]if abs(target-total)<abs(target-sum):sum=totalif total<target:left+=1elif total>target:right-=1else:return targetreturn sum

题17(中等):

思路:

枚举列出来就好了,能过就行,虽然时间复杂度有点

python代码:

class Solution:

    def letterCombinations(self, digits: str) -> List[str]:

        if digits=='':

            return []

        btn_json={

            '1':'',

            '2':'abc',

            '3':'def',

            '4':'ghi',

            '5':'jkl',

            '6':'mno',

            '7':'pqrs',

            '8':'tuv',

            '9':'wxyz',

        }

        res_list=['']

        for i in digits:

            res=btn_json[i]

            tmp_list=res_list

            res_list=[n+j for n in tmp_list for j in res]

        return res_list

题18(中等):

思路:

两数和,三数和,三数接近,这几题好玩吧,没尽兴就又来了一个4数和,一样的

python代码

class Solution:

    def fourSum(self, nums: List[int], target: int) -> List[List[int]]:

        nums.sort()

        res_list=[]

        for i in range(len(nums)):

            if i>0 and nums[i]==nums[i-1]:

                continue

            tmp_target=target-nums[i]

            for j in range(i+1,len(nums)):

                if j>i+1 and nums[j]==nums[j-1]:

                    continue

                left=j+1

                right=len(nums)-1

                while left<right:

                    total=nums[left]+nums[right]+nums[j]

                    if total==tmp_target:

                        res_list.append([nums[i],nums[j],nums[left],nums[right]])

                        while left<right and nums[left]==nums[left+1]:

                            left+=1

                        while left<right and nums[right]==nums[right-1]:

                            right-=1

                        left+=1

                        right-=1

                    elif total<tmp_target:

                        left+=1

                    else:

                        right-=1

        return res_list

题19(中等):

思路:

这个用c应该比较容易理解

python代码:

# Definition for singly-linked list.

# class ListNode:

#     def __init__(self, val=0, next=None):

#         self.val = val

#         self.next = next

class Solution:

    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:

        n_len=1

        p=head

        while 1:

            if p.next!=None:

                n_len+=1

                p=p.next

            else:

                break

        pos=n_len-n

        p=head

        if pos==0:

            head=head.next

            return head

        for i in range(pos-1):

            p=p.next

        p.next=p.next.next

        return head

           

题20(简单):

思路:

这个就是金典的栈的运用啊,我之前还有一个文章是表达式的转换来着

python代码:

class Solution:

    def isValid(self, s: str) -> bool:

        s_stack=[]

        for i in s:

            if i=='(' or i=='{' or i=='[':

                s_stack.append(i)

            elif i==')':

                if len(s_stack)!=0 and s_stack[-1]=='(':

                    s_stack.pop()

                else:

                    return False

            elif i == '}':

                if len(s_stack)!=0 and s_stack[-1] == '{':

                    s_stack.pop()

                else:

                    return False

            elif i == ']':

                if len(s_stack)!=0 and s_stack[-1] == '[':

                    s_stack.pop()

                else:

                    return False

        if len(s_stack)==0:

            return True

        else:

            return False

相关文章:

力扣16~20题

题16&#xff08;中等&#xff09;&#xff1a; 思路&#xff1a; 双指针法&#xff0c;和15题差不多&#xff0c;就是要排除了&#xff0c;如果total<target则排除了更小的&#xff08;left右移&#xff09;&#xff0c;如果total>target则排除了更大的&#xff08;rig…...

Pikachu-Sql-Inject -基于boolian的盲注

基于boolean的盲注: 1、没有报错信息显示&#xff1b; 2、不管是正确的输入&#xff0c;还是错误的输入&#xff0c;都只显示两种情况&#xff0c;true or false&#xff1b; 3、在正确的输入下&#xff0c;输入and 1 1/and 1 2发现可以判断&#xff1b; 布尔盲注常用函数&…...

最后30天,你的系统集成项目管理工程师备考进度到哪儿了?

十一长假归来好&#xff01; 此次归来之后&#xff0c;2024年下半年软考倒计时就从4字头切换到了3字头&#xff0c;今天距离考试还有32天&#xff01; 那么问题来了&#xff0c;临近考试还有30天左右的时候&#xff0c;你的备考进度到哪里了呢&#xff1f; 其实无论目前你的实际…...

网络安全事件的发生,主要原因是什么

网络安全事件的发生&#xff0c;主要原因涉及多个方面&#xff0c;包括技术漏洞、人为因素、经济利益驱动、恶意软件和病毒威胁、社会工程学攻击、内部人员恶意行为、供应链安全问题以及法律法规的不完善等。以下是对这些原因的详细分析&#xff1a; 技术漏洞&#xff1a; 软件…...

【leetcode】274.H指数

为了方便&#xff0c;将 citations 记为 cs。 所谓的 h 指数是指一个具体的数值&#xff0c;该数值为“最大”的满足「至少发表了 x 篇论文&#xff0c;且每篇论文至少被引用 x 次」定义的合法数&#xff0c;重点是“最大”。 用题面的实例 1 来举个 &#x1f330;&#xff0…...

1.Python 引入(字面量、注释、变量、数据类型、数据类型转换、标识符、运算符、字符串扩展)

一、字面量 1、基本介绍 在代码中&#xff0c;被写直接下来的、不需要通过变量存储的值&#xff0c;称之为字面量 2、常用值类型 类型说明数字&#xff08;Number&#xff09;整数&#xff08;int&#xff09;&#xff0c;例如&#xff1a;10、-10浮点数&#xff08;float&…...

【AI知识点】梯度消失(Vanishing Gradient)和梯度爆炸(Exploding Gradient)

梯度消失&#xff08;Vanishing Gradient&#xff09; 和梯度爆炸&#xff08;Exploding Gradient&#xff09; 是神经网络训练中的常见问题&#xff0c;特别是在深层神经网络&#xff08;DNN&#xff09;或递归神经网络&#xff08;RNN&#xff09;中。这两者主要与反向传播算…...

在 ArkTS 网络请求中,重新封装一下 http 模块

在ArkTS中&#xff0c;重新封装http模块可以提供一个更简洁、更易于使用的API&#xff0c;同时隐藏底层细节&#xff0c;使开发者能够更专注于业务逻辑。以下是一个简单的示例&#xff0c;展示了如何重新封装鸿蒙系统的kit.NetworkKit中的http模块&#xff1a; // 创建一个新的…...

Microsoft 更新 Copilot AI,未來將能使用語音並看到你瀏覽的網頁

不過受到 Recall 事件的影響&#xff0c;更新的推出將更緩慢謹慎。 Microsoft 也同步對其網頁版及行動版的 Copilot AI 進行大改版。這主要是為網頁版換上了一個較為簡單乾淨的介面&#xff0c;並增加了一些新的功能&#xff0c;像是 Copilot Voice 能讓你與 AI 助手進行對話式…...

系统架构设计师-论文题(2021年下半年)

1.试题一 论面向方面的编程技术及其应用针对应用开发所面临的规模不断扩大、复杂度不断提升的问题&#xff0c;面向方面的编程Aspect Oriented Programming,AOP技术提供了一种有效的程序开发方法。为了理解和完成一个复杂的程序&#xff0c;通常要把程序进行功能划分和封装。一…...

selenium的webdriver常用方法和属性介绍(2)

selenium的webdriver介绍 从selenium导入webdriver模块&#xff0c;在pycharm中跳转webdriver模块的__init__.py文件&#xff0c;内容如图所示&#xff1a;从selenium包的子目录中导入了很多模块并做了重命名&#xff0c;用于支持如下 Chrome/Edge/Ie/Firefox/Safari浏览器。 使…...

73.【C语言】C/C++的内存区域划分

目录 1.内存里的几个区域 2.示意图 3.解释 1.内存里的几个区域 除了耳熟能详的栈区,堆区,静态区,还有内核空间,内存映射段,数据段,代码段 2.示意图 3.解释 栈区(stack area):局部变量,函数参数,返回数据,返回地址 内存映射段:将文件映射到内存 映射的含义: 如果看过李忠…...

k8s 中存储之 hostPath 卷

目录 1 hostPath 卷介绍 2 hostPath 卷实际应用操作 2.1 创建 pod 资源类型 2.2 修改清单文件增加 hostPath 对应的参数配置 2.3 查看是否创建 卷 和 pod 2.4 创建发布文件测试是否正常访问 1 hostPath 卷介绍 EmptyDir中数据不会被持久化&#xff0c;它会随着Pod的结束而销…...

Cherno游戏引擎笔记(73~90)

------- scene viewport ---------- 》》》》做了两件事&#xff1a;设置视口和设置相机比例 》》》》为什么要设置 m_ViewportSize 为 glm::vec2 而不是 ImVec2 ? 因为后面需要进行 ! 运算&#xff0c;而 ImVec2 没有这个运算符的定义&#xff0c;只有 glm::vec2 有这个运算…...

helm 测试卸载或删除(redis)

作者&#xff1a;程序那点事儿 日期&#xff1a;2024/02/07 18:30 查看redis 集群实例 kubectl get all -n redis 卸载集群实例 helm uninstall redis -n redis 删除pvc kubectl get pvc -n redis kubectl delete pvc redis-data-redis-master-0 redis-data-redis-replicas…...

关于Qt音乐播放器进度条拖拽无用的问题解决方案

在使用Qt编写音乐播放器的时候&#xff0c;进度条关联播放音乐基本是必须的。那么在设计的过程中你可能会碰到一个奇怪的问题就是拖拽进度条的时候&#xff0c;可能会报错如下&#xff1a; 然后音乐就卡着不动了。。。 connect(ui->volume_toolButton,&VolumeToolBtn::…...

Redis:初识Redis

Redis&#xff1a;初识Redis Redis 介绍分布式架构Redis特性安装Redis Redis 介绍 在官网中&#xff0c;是如下介绍Redis的&#xff1a; in-memory data store used by millions of developers as a cache, vector database, document database, streaming engine, and messag…...

【React】增量传输与渲染

增量传输 增量传输是一种高效的文件传输方式&#xff0c;其核心原理在于只传输文件中发生变化的部分&#xff0c;而不是整个文件。以下是增量传输的详细解析&#xff1a; 定义与原理&#xff1a; 增量传输通过比对原始文件和目标文件&#xff0c;找出两者之间的差异部分&#…...

【回眸】Tessy 单元测试软件使用指南(四)常见报错及解决方案与批量初始化的经验

前言 分析时Tessy的报错 1.fatal error: Tricore/Compilers/Compilers.h: No such file or directory 2.error: #error "Compiler unsupported" 3.warning: invalid suffix on literal;C11 requires a space between literal and string macro 4.error: unknown…...

2024 - 10 :生物药学: 如何获取对应核心靶点基因的激酶

如何获取对应核心靶点基因的激酶 步骤 1&#xff1a;收集蛋白质信息 获取 UniProt ID&#xff1a; 对于每个基因&#xff0c;使用 UniProt 数据库获取其对应的蛋白质信息&#xff0c;包括 UniProt ID、序列和功能注释。UniProt 网站&#xff1a;https://www.uniprot.org/ 示…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...