【三数之和】python,排序+双指针

暴力搜索3次方的时间复杂度,大抵超时
遇到不会先排序
排序+双指针
上题解

照做
class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:res=[]n=len(nums)#排序降低复杂度nums.sort()k=0#留两个位置给双指针i,jfor k in range(n-2):if nums[k]>0:break#比较其和前一个元素是否相等,相等则跳过(防止重复)if k>0 and nums[k]==nums[k-1]:continuei=k+1j=n-1while i<j:sum=nums[k]+nums[i]+nums[j]if sum<0:i+=1#同样的结果了while i<j and nums[i]==nums[i-1]:i+=1elif sum>0:j-=1#一样while i<j and nums[j]==nums[j+1]:j-=1else:res.append([nums[k],nums[i],nums[j]])i+=1j-=1#samewhile i<j and nums[i]==nums[i-1]:i+=1while i<j and nums[j]==nums[j+1]:j-=1return res
过
总结:
- 数组排序
- 固定一个数,开始双指针,第一个指针紧随其后,第二个指针逆序
- 剪枝包括与前面的元素相比有没有相同,相同则跳过
- 每次移动i/j都可以考虑刚刚那步的剪枝
相关文章:
【三数之和】python,排序+双指针
暴力搜索3次方的时间复杂度,大抵超时 遇到不会先排序 排序双指针 上题解 照做 class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:res[]nlen(nums)#排序降低复杂度nums.sort()k0#留两个位置给双指针i,jfor k in range(n-2):if nums[k]…...
TCP通信实现(服务端与客户端)
TCP通信实现(服务器端) 案例 // TCP 通信的服务器端#include <stdio.h> #include <arpa/inet.h> #include <unistd.h> #include <string.h> #include <stdlib.h>int main() {// 1.创建socket(用于监听的套接字)int lfd socket(AF_…...
安装appium自动化测试环境,我自己的版本信息
教程来自:Appium原理与安装 - 白月黑羽 我的软件的版本: 安装是选择为自己安装而不是选all user pip install appium-python-client命令在项目根目录下安装appium-python-client sdk的话最简单的安装方式就是去Android官网下一个android studio然后在…...
【讲解下Web前端三大主流的框架】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
视频监控平台AS-V1000产品介绍:账户或用户数据的导入和导出功能介绍
目录 一、功能描述 (一)导入功能定义 (二)导出功能定义 二、用户数据的导入导出的作用 三、AS-V1000新版本的导出和导入功能介绍 (一)功能主界面 (二)导出功能 1、导出操作 …...
markdown画时序图的时候,如何自动显示每一条时序的序号
1: 现象描述 今天画时序图的时候,发现时序上面没有显示序号,看起来不够清晰,只有单纯的说明; 如下图所示 刚测试CSDN的时序图,默认是带序号的,看起来和实际使用的markdown工具有关系; 2:解决办…...
朴素贝叶斯
经典三门问题 问题 一种说法(直觉派) 另一种说法(贝叶斯派) 注意P(B)1, 已经知道路人抽中的就是绿豆 三门问题在网上争端比较大,分为直觉派和贝叶斯派,最后一个程序员出来写程序跑了一遍,发现就是贝叶斯派 朴素贝叶斯的直观理解 在X的条件下分别等于0~9的概率 注意之前我们讲的…...
【软件设计师】——10.面向对象技术
目录 10.1 基本概念 10.2设计原则 10.3 设计模式的概念与分类 10.4 创建型模式 10.4.1 Singleton 单例模式 10.4.2 Builder 构建器模式 10.4.3 Abstract Factory 抽象工厂模式 10.4.4 Prototype原型模式 10.4.5 Factory Method工厂方法模式 10.5 结构型模式 10.5.1 A…...
唐山无人机航拍,唐山无人机建模,唐山数据孪生
随着数字经济发展,各地逐渐兴起了无人机低空经济;尤其是无人机航拍,无人机建模;目前技术很成熟;比如水利部提出的数字孪生,四预的实现,都要通过无人机采集底层数据; 目前无人机建模…...
vue中分页查询的实现
在 Vue 中实现分页查询可以提升大型数据集的加载和显示效率。本文将逐步介绍如何使用 Vuex 状态管理和 axios HTTP 请求库来实现 Vue 分页查询。 1. 在 Vuex 中创建分页状态 首先,在 Vuex 状态管理中创建分页状态,该状态将存储每页的记录数、当前页码和…...
类 和 对象(二)
构造方法 接上篇,若每次都想下面的setDate方法给对象初始化,未免比较麻烦,那有什么方法可以让初始化更加简便呢? public void setDate(int year, int month, int day){this.year year;this.month month;this.day day;}答&#…...
buu[HCTF 2018]WarmUp(代码审计)
buu[HCTF 2018]WarmUp(代码审计) 题目 访问source.php <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist ["source">"source.php","hint">"hint.php…...
力扣爆刷第145天之图论五连刷(dfs和bfs)
力扣爆刷第145天之图论五连刷(dfs和bfs) 文章目录 力扣爆刷第145天之图论五连刷(dfs和bfs)总结一、797. 所有可能的路径二、200. 岛屿数量三、695. 岛屿的最大面积四、1020. 飞地的数量五、130. 被围绕的区域 总结 dfs是一条路走…...
Host头攻击-使用加密和身份验证机制
使用加密和身份验证机制,即安装合适的安全工具和软件,是确保Web服务器安全性的重要步骤。这种方法涉及使用各种安全工具来检测、预防、监控和响应潜在的安全威胁。以下是对第6种方法的详细讲解,包括一些常见的安全工具和软件的示例。 1. 防火…...
衍生品赛道的 UniSwap:SynFutures 或将成为行业领军者
经过一个周期的发展,DeFi 已经成为基于区块链构建的最成功的去中心化应用,并彻底改变了加密市场的格局。加密货币交易开始逐步从链下转移到链上,并从最初简单的 Swap 到涵盖借贷、Staking、衍生品交易等广泛的生态系统。 在 DeFi 领域&#x…...
TypeScript中的`let`、`const`、`var`区别:变量声明的规范与实践
TypeScript中的let、const、var区别:变量声明的规范与实践 引言 在TypeScript中,变量声明是代码编写的基础部分。let、const、var 是三种用于变量声明的关键字,它们各自有不同的作用域规则和可变性特点。 基础知识 作用域:变量…...
【python】python商家会员数据分析可视化(源码+数据集+课程报告论文)
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…...
Python限制输入的数范围
在Python中,我们可以使用多种方法来限制用户输入的数值范围。 1.使用while循环和try-except语句的方法 以下是一个使用while循环和try-except语句的示例,该示例将要求用户输入一个在指定范围内的整数。 假设我们要限制用户输入的数在1到100之间&#…...
postman都有哪些功能?
接口测试 可以方便地发送 HTTP 请求,包括各种方法(GET、POST、PUT、DELETE 等),并查看响应结果。 参数设置 能够灵活设置请求的参数,如查询参数、请求头、请求体等。 环境管理 支持创建不同的环境,方便…...
华为ensp中USG6000V防火墙双机热备VRRP+HRP原理及配置
作者主页:点击! ENSP专栏:点击! 创作时间:2024年5月6日20点26分 💯趣站推荐💯 前些天发现了一个巨牛的🤖人工智能学习网站,通俗易懂,风趣幽默,忍…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
负载均衡器》》LVS、Nginx、HAproxy 区别
虚拟主机 先4,后7...
Win系统权限提升篇UAC绕过DLL劫持未引号路径可控服务全检项目
应用场景: 1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。 2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。 #Win10&11-BypassUAC自动提权-MSF&UACME 为了远程执行目标的exe或者b…...
P10909 [蓝桥杯 2024 国 B] 立定跳远
# P10909 [蓝桥杯 2024 国 B] 立定跳远 ## 题目描述 在运动会上,小明从数轴的原点开始向正方向立定跳远。项目设置了 $n$ 个检查点 $a_1, a_2, \cdots , a_n$ 且 $a_i \ge a_{i−1} > 0$。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时࿰…...
