LeetCode(Hot100)——1:两数之和
方法1:暴力求解
- 利用两次for循环来处理, 外循环确定一个数字, 利用内循环不断求和来判断是否两数之和为target,来进行求解。
public class LeetCode1 {@Test//测试方法public void test() {int [] nums={2,7,11,15};int target=9;//调用方法System.out.println(Arrays.toString(twoSum(nums,target)));}//暴力求解public int[] twoSum(int[] nums, int target) {for(int i=0;i<nums.length;i++){for(int j=i+1;j<nums.length;i++){if(nums[i]+nums[j]==target){//if(i!=j&&nums[i]+nums[j]==target)//返回一个数组,new一个数组。return new int[]{i,j};}}}//定义返回值应该是int类型的数组,所以更合理的解释是返回return new int[0](本身的含义是长度为0的空数组)return new int[0];//假设一个方法返回一个数组,如果它返回null,则调用方法必须先判断是否返回null,才能对返回数组进一步处理,而如果返回空数组,则无须null引用检查//return null;}
}
暴力求解的时间复杂度是O(n2)
方法2:哈希映射
- 哈希的时间复杂度为O(1),利用哈希容器map降低时间复杂度
- 遍历数组 nums,i 为当前下标,每个值都判断map中是否存在 target-nums[i] 的 key 值
- 如果存在则找到了两个值,如果不存在则将当前的 (nums[i],i) 存入 map中,继续遍历直到找到为止
- 如果最终都没有结果则抛出异常
// 哈希表存储检查过的数字
public int[] twoSum(int[] nums, int target) {// 创建一个哈希表用于存储检查过的数字Map<Integer, Integer> map = new HashMap<>();// 遍历数组for(int i = 0; i < nums.length; i++) {// 计算目标值与当前数字的差值int complement = target - nums[i];// 检查哈希表中是否包含差值if(map.containsKey(complement)) {// 如果存在差值,则返回差值的索引和当前数字的索引// 如果HashMap中包含target-nums[i],则返回HashMap中target-nums[i]对应的值和ireturn new int[] {map.get(complement), i};}// 将nums[i]和i放入HashMap中map.put(nums[i], i);}// 如果没有找到,则返回一个长度为0的数组return new int[0];;
}
相关文章:
LeetCode(Hot100)——1:两数之和
方法1:暴力求解 利用两次for循环来处理, 外循环确定一个数字, 利用内循环不断求和来判断是否两数之和为target,来进行求解。 public class LeetCode1 {Test//测试方法public void test() {int [] nums{2,7,11,15};int target9;/…...
【Qt】报错error:undefined reference to `vtable for Consumer‘的解决方法
1. 问题原因 在创建完程序后,点击构建,显示编译错误。 错误问题如下: error: undefined reference to vtable在编译输出中查看显示如下: error:undefined reference to vtable for custom2. 原因分析 这个错误通常是因为 C 的虚函数表&am…...
【linux系统】用户功能与权限详细总结
前言 菜某的笔记总结,有错误还请指正。 linux用户的概念与root用户 这么理解:一台电脑有多个操作者,每个操作者只能无限制操作自己文件夹中的东西,其他地方的操作需要给与相应权限才能操作。 root用户:就是最高级的…...
ELK简单介绍二
学习目标 能够部署kibana并连接elasticsearch集群能够通过kibana查看elasticsearch索引信息知道用filebeat收集日志相对于logstash的优点能够安装filebeat能够使用filebeat收集日志并传输给logstash kibana kibana介绍 Kibana是一个开源的可视化平台,可以为ElasticSearch集群…...
video 标签 各种属性及所有事件监听
网页中的video 属性和事件,用于计算观看视频的时长,其他用法备存。 <!-- video 不支持 IE8及以下版本浏览器,支持三种视频格式:MP4,WebM 和 Ogg --><video src"test.mp4" controls width"400…...
TS中断言、转换的应用
1.TS 类型断言定义 把两种能有重叠关系的数据类型进行相互转换的一种 TS 语法,把其中的一种数据类型转换成另外一种数据类型。类型断言和类型转换产生的效果一样,但语法格式不同。 2.TS 类型断言语法格式 A 数据类型的变量 as B 数据类型 。 A 数据类…...
【代码随想录算法训练营-第四天】【链表】24,19, 面试题 02.07,142
24. 两两交换链表中的节点 第一遍-递归-小看了一下题解 思路: 读了两遍题目才理解…相邻节点的交换,这个操作很容易实现,但需要一个tmpNode因为是链表的题目,没开始思考之前先加了dummyNode,还真管用把dummyNode作为…...
代理设计模式
1. 代理模式 1.1 代理模式的原理分析 代理设计模式(Proxy Design Pattern)是一种结构型设计模式,它为其他对象提供一个代理对象,以控制对这个对象的访问。代理模式可以用于实现懒加载、安全访问控制、日志记录等功能。 代理模式…...
ubuntu安装docker及docker常用命令
docker里有三个部分 daemon 镜像 和 容器 我们需要了解的概念 容器 镜像 数据卷 文章目录 docker命令docker镜像相关命令docker容器相关命令数据卷ubuntu安装docker docker命令 #启动,停止,重启docker systemctl start docker systemctl stop docker s…...
STM32-TIM定时器输出比较
目录 一、输出比较简介 二、PWM简介 三、输出比较通道(通用) 四、输出比较通道(高级) 五、输出比较模式 六、PWM基本结构 七、PWM参数计算 八、外设介绍 8.1 舵机 8.2 直流电机及驱动 九、开发步骤 十、输出比较库函数…...
《Easy3d+Qt+VTK》学习
《Easy3dQtVTK》学习-1、编译与配置 一、编译二、配置注 一、编译 1、 资源下载:easy3d giuhub 2、解压缩 3、用qt打开CMakeLists.txt即可 4、点击项目,选择debug或者release,图中3处可自行选择,因为我的qt版本是6,…...
多平台展示预约的服装小程序效果如何
线下实体服装店非常多,主要以同城生意为主,但随着电商经济增长,传统线下自然流量变少,商家们会选择线上入驻平台开店获得更多线上用户,包括自建私域小程序等。 而除了直接卖货外,线上展示预约在服装行业也…...
Gti GUI添加标签
通过Git Gui打开项目,通过菜单打开分支历史,我这里是名为"develop"的分支 选中需要打标签的commit,右键-Create tag即可 但貌似无法删除标签,只能通过git bash,本地标签通过git tag -d tagname,…...
高云GW1NSR-4C开发板M3硬核应用
1.M3硬核IP下载:Embedded M3 Hard Core in GW1NS-4C - 科技 - 广东高云半导体科技股份有限公司 (gowinsemi.com.cn) 特别说明:IDE必须是1.9.9及以后版本,1.9.8会导致编译失败(1.9.8下1.1.3版本IP核可用) 以下根据官方…...
【RTOS学习】模拟实现任务切换 | 寄存器和栈的变化
🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 目录 🏀认识任务切换🏐切换的实质🏐栈中的内容🏐切…...
1.2 轻量级数据交互格式–JSON
对于接口来说,数据交互大部分都是使用的JSON格式,我们这里说的数据,就是我们上一章里讲解HTTP协议的时候,HTTP协议结构里的实体,也就是放在body里。body里存放需要传输的数据,数据是JSON格式,然后通过HTTP协议来传输给接口,接口再以同样的方式给我们返回。理解了这一层…...
charCodeAt() 方法
charCodeAt() 是 JavaScript 中用于获取字符串指定位置字符的 Unicode 编码的方法 语法如下: str.charCodeAt(index) str:要获取字符的字符串。index:要获取的字符在字符串中的索引。返回值是一个表示给定索引处字符 Unicode 编码的整数。…...
Flask中redis的配置与使用
注意点: 在__init__.py中需要将redis_store设置成全局变量,这样方便其他文件导入 一、config.py import logging import os from datetime import timedeltafrom redis import StrictRedisclass Config:# 调试信息DEBUG TrueSECRET_KEY os.urandom(3…...
生产者与消费者模型
初识linux之线程同步与生产者消费者模型_生产者线程和消费者线程-CSDN博客 Linux线程(三)—— 多线程(生产者消费者模型、信号量、线程池)-CSDN博客...
透析回溯的模板
关卡名 认识回溯思想 我会了✔️ 内容 1.复习递归和N叉树,理解相关代码是如何实现的 ✔️ 2.理解回溯到底怎么回事 ✔️ 3.掌握如何使用回溯来解决二叉树的路径问题 ✔️ 回溯可以视为递归的拓展,很多思想和解法都与递归密切相关,在很多…...
无片外电容的LDO电路设计手册:完整IP现成电路,包含过温与过流保护、带隙与BUFFER,性能...
无片外电容LDO电路设计 完整IP现成电路,具有过温保护和过流保护,带隙,BUFFER都有 性能指标已流片验证 同时有相关文献、各模块电路功能分析简化计算笔记,适合学习入门不适合纵向可以附赠一些自己学习时觉得比较有帮助的资料。 有好…...
Python原生AOT编译2026架构设计图(含C-API二进制兼容性矩阵+GC停顿压缩至≤80μs实证)
第一章:Python原生AOT编译2026架构全景概览Python原生AOT(Ahead-of-Time)编译在2026年已演进为一套融合语言语义、运行时契约与硬件感知能力的系统级基础设施。它不再依赖传统解释器或JIT中间态,而是通过静态类型推导、控制流图全…...
老马失前蹄,竟然在数据库外键上翻车了,重温外键级联
一、什么是setuptools? setuptools 是一个用于创建、分发和安装 Python 包的核心库。 它可以帮助你: 定义 Python 包的元数据(如名称、版本、作者等)。 声明包的依赖项,确保你的包能够正确运行。 构建源代码分发包&…...
AI营销SaaS榜单评测:原圈科技如何助力品牌客户破局增长?
本文深度探讨AI营销行业趋势与SaaS产品评选标准。在众多解决方案中,原圈科技的AI营销SaaS平台凭借其领先的技术底层能力、产品成熟度及客户成功案例,在市场适配度与服务落地性等多个维度下表现突出,被普遍视为企业实现精细化营销升级的有力选…...
精益生产线功能拆解:如何利用精益生产线解决多品种小批量生产难题
在当前的制造业环境中,订单碎片化已成为常态,精益生产线不再是一个可选的优化项,而是企业生存的必修课。面对多品种、小批量的市场需求,传统的大批量流水线往往显得笨重不堪,频繁换型导致的停机、在制品积压造成的资金…...
嵌入式系统代码执行时间测量方法与优化
1. 嵌入式程序运行时间测量的必要性在嵌入式系统开发中,精确测量代码执行时间是每个工程师必备的技能。无论是优化算法效率、调试实时系统,还是验证硬件性能,时间测量都扮演着关键角色。以STM32为例,当我们需要确认一个延时函数是…...
手把手教你用llama.cpp在树莓派上跑大模型(附完整配置流程)
在树莓派上部署llama.cpp的完整实践指南 树莓派作为一款价格亲民且功能强大的微型计算机,近年来在边缘计算和嵌入式AI领域崭露头角。本文将详细介绍如何在树莓派上部署llama.cpp这一轻量级大语言模型推理框架,让开发者能够在资源受限的环境中体验前沿AI技…...
爬虫自动化(DrissionPage)
目录 ?一.介绍: 下载DrissionPage,还是我们熟悉的pip: 环境准备: ?二.基本代码: 它对于的导包和类使用: 窗口的设置: 和获取的页面的滑动: 3.进一步认识DrissionPage: 浏览器可以多开…...
Ostrakon-VL 模型推理加速实战:使用 .accelerate 库优化扫描速度
Ostrakon-VL 模型推理加速实战:使用 .accelerate 库优化扫描速度 1. 效果惊艳的开场 最近在测试Ostrakon-VL模型时,我发现了一个令人惊喜的事实:通过.accelerate库的几项简单优化,模型推理速度可以提升3倍以上,同时显…...
玩转ESP32-S3调试:GDB高级命令与自定义调试技巧大全
玩转ESP32-S3调试:GDB高级命令与自定义调试技巧大全 调试嵌入式系统时,GDB的强大功能往往被低估。对于ESP32-S3开发者来说,掌握GDB的高级调试技巧可以显著提升解决复杂问题的效率。本文将深入探讨如何利用GDB的watch命令、自定义命令、跳转执…...
