LeetCode 热题 100-两数之和(简单)
1. 两数之和
给定一个整数数组 nums
和一个整数目标值 target
,请你在该数组中找出和为目标值 target
的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
你可以按任意顺序返回答案。
示例 1:
输入: nums = [2,7,11,15]
, target = 9
输出: [0,1]
解释: 因为 nums[0] + nums[1] == 9
,返回 [0,1]
。
示例 2:
输入: nums = [3,2,4]
, target = 6
输出: [1,2]
示例 3:
输入: nums = [3,3]
, target = 6
输出: [0,1]
提示:
C++答案:
class Solution {
//在Solution这个类里面
public:
//表示是公开的,可以从类的外部访问
//vector<int>函数的返回类型,vector是一个序列容器,vector<int>表示函数返回整数类型的向量vector<int> twoSum(vector<int>& nums, int target) {//vector<int>& nums对整数向量的引用unordered_map<int, int> hash;//定义一个哈希表,键的类型为int,值的类型为intfor(int i = 0; i < nums.size(); i ++ ){//遍历nums数组int r = target - nums[i];if(hash.count(r)) {//如果在哈希表里找到键为r的值,则count函数返回1return {hash[r], i};//此时我们找到两个数 nums[hash[r](键为r说明在nums数组中有这个值,键为r的值是r在nums数组中的下标),nums[i]相加=target//返回下标,则返回 hash[r],i}//如果在哈希表里没有找到r,则将nums[i]作为键,下标i作为值存入哈希表hash[nums[i]] = i;}return {};}
};
哈希表过程
- 假设 nums = [2, 7, 11, 15] 且 target = 9。
- 当我们遍历到 nums[0] = 2 时,计算补数 9 - 2 = 7。
- 检查哈希表中是否存在键为 7 的项,发现不存在,于是将 2作为键 和它的索引 0 作为值存入哈希表。
- 继续遍历,当到达 nums[1] = 7 时,计算补数 9 - 7 = 2。
- 检查哈希表中是否存在键为 2 的项,发现存在,这意味着我们找到了两个数(2和7),它们的和为9,并且可以返回它们的索引 [0, 1]。
C语言答案:
int* twoSum(int* nums, int numsSize, int target, int* returnSize) {// 动态分配返回的数组,看样例返回的是数组,所以新建一个数组//给数组里建立空间int* result = (int*)malloc(2 * sizeof(int));//注意:分配malloc 两个2 每个int的大小 sizeof(int)if (!result) return NULL; // 如果分配失败,返回NULLfor (int i = 0; i < numsSize; i++) {int num = nums[i];int renum = target - num;for (int j = i + 1; j < numsSize; j++) { // 从i+1开始,避免使用相同的元素if (nums[j] == renum) { // 使用比较运算符==// 找到答案,赋值到result数组,并设置返回大小result[0] = i;result[1] = j;*returnSize = 2; // 设置返回数组的大小//把数字 2 存储在 returnSize 指针所指向的内存地址中return result; // 返回结果}}}// 如果没有找到答案,释放分配的内存并返回NULLfree(result);return NULL;
}
我写的答案:
思路没有错,有些细节需要改
1.因为示例中返回的是一个数组,所以需要新建一个数组
2.在用之前先定义
3.不能用同样的元素,j=i是错的,应该是i+1
4.相等是==
5.不需要输出,直接return就可以
以后写完后找个示例走一遍过程,检查一遍
int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
//1.按顺序从nums数组中取数 num
//2.看 target-num的值在nums数组中是否有
//有,则输出 num,找到的值(target-num)
//没有,则继续从nums数组里找下一个int num,renum;for(int i=0;i<numsSize;i++){num=nums[i];renum=target-num;for(int j=i+1;j<numsSize;j++)//不能用相同元素两次,应该是i+1{if(renum==nums[j]){//相等==returnSize[0]=i;returnSize[1]=j;printf("%s",returnSize);}}}return 0;
}
相关文章:
LeetCode 热题 100-两数之和(简单)
1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。…...
【C语言】拆解C语言的编译过程
前言 学习C语言的过程中,涉及到各种各样的关键词,在我们点击编译的时候,都会做什么呢?让我们来拆解一下 C语言的编译过程 C语言的编译过程包括预处理、编译、汇编和链接四个主要步骤。每个步骤都有其特定的任务和输出文件类型&am…...
RabbitMQ中的Work Queues模式
在现代分布式系统中,消息队列(Message Queue)是实现异步通信和解耦系统的关键组件之一。RabbitMQ 是一个广泛使用的开源消息代理软件,支持多种消息传递模式。其中,Work Queues(工作队列)模式是一…...
OpenCV圆形标定板检测算法findGrid原理详解
OpenCV的findGrid函数检测圆形标定板的流程如下: class CirclesGridClusterFinder {CirclesGridClusterFinder(const CirclesGridClusterFinder&); public:CirclesGridClusterFinder...
快速理解类的加载过程
当程序主动使用某个类时,如果该类还未加载到内存中,则系统会通过如下三个步骤来对该类进行初始化: 1.加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个…...
monorepo代码管理框架
1. 新建 vue3-component 文件夹 2. 运行pnpm init 3. pnpm i vue typescript 4. 新建.npmrc shamefully-hoisttrue link-workspace-packagestrue 5. ts文件配置 pnpm tsc --init 默认.bin路径下的tsc 6. 新建pnpm-workspace.yaml packages:- packages/** # all packages- p…...
LabVIEW实现蓝牙通信
目录 1、蓝牙通信原理 2、硬件环境部署 3、程序架构 4、前面板设计 5、程序框图设计 6、测试验证 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和常用模块实现物联网系…...
R环境配置 以及Debug方法 (VSCode, conda, 远程R)
生物信息学中的R环境配置 以及Debug方法 开始设置1、建议使用VSCode conda 远程R2、 VSCode配置安装插件安装好插件后,远程设置链接成功后,设置项目 3、 linux conda 和 远程R配置4、VScode 远程访问R环境下面配置远程R 5、开始Debug新建个R文件&#…...
ComfyUI 与 Stable Diffusion WebUI 的优缺点比较
ComfyUI与Stable Diffusion WebUI都是AI绘画领域比较知名两款产品,两者存在诸多差异,本篇就带你熟悉二者的优劣,方便自己做出决策。 界面与操作 ComfyUI:界面简洁直观,通过节点和连线的方式构建工作流,用…...
Ubuntu 系统下安装 Nginx
一、Nginx是什么 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少&…...
【Qt】drawText字体大小问题探究
背景 软件的一个功能是: 打开图片在图片上绘制序号,序号的样式是圆圈内包含数字将带有序号的图片打印出来 实现思路也很简单,在屏幕上显示时重写paintEvent函数,利用QPainter完成图片和序号的绘制。打印时只需要将QPainter对应…...
视频汇聚平台:Liveweb视频流媒体平台视频监控系统解决方案
数字化技术在安防领域的广泛应用已经成为公安等重要执法部门的重要趋势,主要得益于无线网络通信技术和计算机技术的快速进步。传统的视频监控系统存在诸多局限,例如只能进行现场监视,报警信息传输简单,无法远距离传输视频信号&…...
Android开发中有关MediaPlayer 播放.mp3文件使用之一
我们在项目中,经常会添加一个简单的语音提示:我们通常会选择MediaPlayer播放SD文件中的.MP3文件或者存到assets下的.mp3文件。正常使用流程如下: 一、播放assets下的.mp3文件 根据assets获取需要播放的文件名 getApplicationContext().getAs…...
Leetcode经典题11--加油站
题目描述 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和…...
23种设计模式之状态模式
目录 1. 简介2. 代码2.1 State (定义抽象状态接口)2.2 StartState (实现具体状态类)2.3 EndState (实现具体状态类)2.4 Context (定义上下文类)2.5 Test (测试类…...
大模型的构建与部署(3)——数据标注
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 数据标注的重要性 1.1 增强数据可解释性 数据标注通过为原始数据添加标签或注释,显著增强了数据的可解释性。在机器学习和深度学习领域,模型的训练依赖于大量带标签的数据。这些标签不仅帮助…...
windows11 专业版 docker desktop 安装指南
家庭中文版需升级专业版,家庭版没有hyper-v。 开始运行optionalfeatures.exe打开windows功能 安装wsl2 步骤 1 - 启用适用于 Linux 的 Windows 子系统步骤 2 - 检查运行 WSL 2 的要求步骤 3 - 启用虚拟机功能步骤 4 - 下载 Linux 内核更新包 步骤 1 - 启用适用于 L…...
mixed strategy
混合策略和期望收益的基本概念 在博弈论中,混合策略是指参与者以一定的概率选择不同的纯策略。期望收益则是在考虑这些概率的情况下,参与者所能获得的平均收益。 以“石头 - 剪刀 - 布”游戏为例 游戏规则回顾 石头胜剪刀,剪刀胜布࿰…...
登上Nature和CVPR!小波变换+UNet上大分!
最近UNet又出现了不少新成果,结合小波变换屡登Nature子刊和CVPR24!比如三路径U-Net模型,利用Haar小波变换大幅提高系统整体性能;再比如利用小波变换的特性来改进U-Net架构的MLWNet网络,性能猛超SOTA! 原因…...
2_使用 HTML5 Canvas API (1) --[HTML5 API 学习之旅]
1.在页面中加入 canvas 在网页中加入 <canvas> 元素可以通过简单的 HTML 和 JavaScript 实现。以下是两个具体的示例,展示了如何在页面中使用 <canvas> 绘制图形和处理用户交互。 示例 1: 简单的静态绘图 这个例子展示了一个基础的 <canvas> 应…...
梳理你的思路(从OOP到架构设计)_UML应用:业务内涵的分析抽象表达01
目录 1、 系统分析(System Analysis) 系統分析的涵意 业务(领域)知识 业务内涵 业务(领域)概念 2、举例(一) :东方传说 UML与建模工具 1、 系统分析(System Analysis) 系統分析的涵意 许多人在学习系统分析(System Analysis)时,常迷失于其字面上…...
redis集群安装部署 redis三主三从集群
redis集群安装部署 redis三主三从集群 1、下载redis2、安装redis集群 三主三从3、配置redis开机自启动3.1、建立启动脚本3.2、复制多份redis启动脚本给集群使用3.3、添加可执行权限3.4、配置开机自启动 1、下载redis 本次redis安装部署选择当前最新的稳定版本7.4.1 下载链接: …...
【PHP】部署和发布PHP网站到IIS服务器
欢迎来到《小5讲堂》 这是《PHP》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 前言安装PHP稳定版本线程安全版解压使用 PHP配置配置文件扩展文件路径…...
大模型qiming面试内容整理-系统设计与架构
在大模型和机器学习相关岗位的面试中,系统设计与架构的考察通常会涉及如何设计一个可扩展、可靠且高效的机器学习系统,特别是在面对大规模数据和复杂模型时。这一部分的考察不仅测试候选人对机器学习和深度学习的理解,还会评估其如何设计实际生产环境中的系统来满足需求。以…...
【Reading Notes】Favorite Articles from 2024
文章目录 1、January2、February3、March4、April5、May6、June7、July8、August9、September10、October11、November12、December 1、January 2、February 3、March Sora外部测试翻车了!3个视频都有Bug( 2024年03月01日) 不仔细看还真看不…...
Qt-chart 画柱状图
记录下,记录下 效果图 直接上代码 // 创建柱状系列 QBarSeries *series new QBarSeries();// 创建数据集 QBarSet *setTar new QBarSet(("tar"));QBarSet *setReality new QBarSet(("reality"));//添加柱状数据*setTar << 1<<…...
【深入理解Java线程池】
深入理解Java线程池 Java线程池是Java并发编程中的一个重要概念,它提供了一种管理和复用线程的机制,可以显著减少创建和销毁线程的开销,提高系统的响应速度和吞吐量。以下是对Java线程池的详细解析: 一、线程池的基本概念 线程…...
honle电源控制器维修UV灯高压电源EVG EPS200
UV电源控制器维修;honle电源维修;UV电源维修MUC-Steuermodul 2 LΛmpen D-82166 主要维修型号: EPS 60/120、EPS 100、EPS200、EPS 220、EPS 340、LED Spot 100、UV2000F HONLE UV灯高压电源控制器故障包括: 1、电压不稳&#…...
java中List集合小练习
题目:将1~100之间所有正整数存放在一个List集合中,并将集合索引位置时10的对象从集合中移除。 代码: import java.util.ArrayList; import java.util.List;public class ListTest {public ListTest(){List<Integer> listnew ArrayLis…...
【STM32练习】基于STM32的PM2.5环境监测系统
一.项目背景 最近为了完成老师交付的任务,遂重制了一下小项目用STM32做一个小型的环境监测系统。 项目整体示意框图如下: 二.器件选择 单片机(STM32F103)数字温湿度模块(DHT11)液晶显示模块(0.8…...
JS哪些操作会造成内存泄露?
在 JavaScript 中,内存泄露是指程序不再使用的内存没有被释放,从而导致内存的持续增长,最终可能导致性能下降或应用崩溃。以下是一些常见的可能导致内存泄露的操作和情况: 1. 全局变量 如果不小心创建了全局变量,可能…...
《知识拓展 · 统一建模语言UML》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...
GNSS 全球卫星导航系统(Global Navigation Satellite System): 卫星授时
文章目录 引言I GNSSGNSS三大核心能力卫星系统、区域性的系统以及增强系统II 卫星授时GNSS是如何实现授时优势引言 GNSS指的是全球卫星导航系统,是能在全球范围内提供导航服务的卫星导航系统的通称。 美国GPS、俄罗斯GLONASS、中国北斗卫星导航系统和欧洲GALILEO,是联合国全…...
【数据结构】循环队列原理与代码
理论 存在的意义: 将顺序队列从逻辑上视为一个环。解决“假溢出”(出队入队连续操作后两个指针均到数组末端maxsize-1处,虽然队里没有元素但无法让元素进队)。两种定义 1.题目是队列非空时队头指针和队尾指针分别指向队头元素和队…...
Kettle Doris Plugin编译过程
起因 公司的数据中台产品用的doris作为数据仓库,用kettle作为etl引擎,但是表输出组件太慢了。偶然有一天发现doris提供了kettle组件,但是需要自己编译,于是就开始自己编译。 坑 因为kettle的依赖包在m2(中央仓库&am…...
Day10 苍穹外卖项目 订单搜索、各个状态的订单统计、查询订单详细、接单、拒单、取消订单、派送订单、完成订单
目录 1.订单搜索 1.1 需求分析和设计 1.2 接口设计 1.2 代码实现 1.2.1 admin/OrderController 1.2.2 OrderService 1.2.3 OrderServiceImpl 2.各个状态的订单数量统计 2.1 需求分析和设计 2.2 接口设计 2.3 代码实现 2.3.1 admin/OrderController 2.3.2 OrderService 2.3.3 Or…...
你知道OSI参考模型是什么吗?
你知道OSI参考模型是什么吗? 一. OSI模型图解二. OSI七层模型三. OSI模型的特点四. OSI模型与TCP/IP模型的对比五. 总结 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱…...
《开源数据:开启信息共享与创新的宝藏之门》
《开源数据:开启信息共享与创新的宝藏之门》 一、开源数据概述(一)开源数据的定义(二)开源数据的发展历程 二、开源数据的优势(一)成本效益优势(二)灵活性与可定制性&…...
机器学习之学习范式
机器学习的四种主要范式分别是:监督学习、非监督学习、强化学习和半监督学习。以下是每种范式的详细介绍: 1. 监督学习(Supervised Learning) 定义: 通过已标注的数据训练模型,以预测或分类未知数据。 目…...
计算机网络技术基础:5.数据通信系统
一、数据通信的基本概念 1.信息 信息是对客观事物的运动状态和存在形式的反映,可以是客观事实的形态、大小、结构、性能等描述,也可以是客观事物与外部之间的联系。信息的载体可以是数字、文字、语音、图形和图像等。计算机及其外围设备产生和交换的信息…...
ubuntu下anconda装pytorch
1、禁用nouveau sudo vim /etc/modprobe.d/blacklist.conf 在文件最后部分插入以下两行内容 blacklist nouveau options nouveau modeset0 更新系统 sudo update-initramfs -u 重启系统 2、装nvidia驱动 卸载原来驱动 sudo apt-get remove nvidia-* (若安装…...
【深入理解MySQL索引】
深入理解MySQL索引 MySQL索引是一种数据结构,用于帮助快速查找和检索数据库表中的数据。以下是对MySQL索引的详细解释,并附有相应的代码示例以加深理解。 一、索引的原理及作用 原理:索引是以数据库表中的“列”为维度建立的,通…...
Linux 中批量添加cron定时任务的方法
目录 方法一:通过 crontab 命令批量添加方法二:通过直接修改 crontab 文件 方法一:通过 crontab 命令批量添加 1、先将需要添加 cron 执行的多条定时任务写入一个文本文件 例如: 0 3 * * * /bin/bash /root/work/job/MySQLBack.…...
【OSS】php使用oss存储
阿里云oss官方文档:文档 1、前期工作 创建阿里云账号,登录创建bucket,注意修改权限,要不然可能读取不到 申请accessKeyId和accessKeySecret accessKey 2、项目中安装OSS扩展 composer require aliyuncs/oss-sdk-php3、基础使…...
个人ffmpeg笔记(一)
环境安装 QT环境安装 运行qt…run安装 下载地址:https://download.qt.io/archive/qt/ 下载地址:https://download.qt.io/archive/qt/5.12/5.12.10/ sudo apt install --reinstall libxcb-xinerama0 解决xcb问题 Ubuntu16.04打开Qt显示/home/user/.co…...
Python的3D可视化库【vedo】2-3 (plotter模块) 增删物体、控制相机
文章目录 4 Plotter类的方法4.3 渲染器内的物体操作4.3.1 添加物体4.3.2 移除物体4.3.3 渲染器的内容列表 4.4 相机控制4.4.1 访问相机对象4.4.2 重置相机状态4.4.3 移动相机位置4.4.4 改变相机焦点4.4.5 改变相机朝向的平面4.4.5 旋转相机4.4.6 对齐相机的上朝向4.4.7 缩放 ve…...
关于QMessageBox的一些使用总结和避坑指南
参考学习 Qt中QMessageBox的用法—看这一篇就够了 Qt:使用QMessageBox弹出标准对话框 QMessageBox模态与非模态及QT中的exec() 如何调整QMessageBox的大小 QSS 自定义QMessageBox python QMessageBox设置标签和按钮居中、中文按钮 使用建议 经过查看多方的资料&…...
LearnOpenGL学习(高级OpenGL -> 高级GLSL,几何着色器,实例化)
高级GLSL 内建变量 顶点着色器 gl_PointSoze : float 输出变量,用于控制渲染 GL_POINTS 型图元时,点的大小。可用于粒子系统。将其设置为 gl_Position.z 时,可以使点的距离越远,大小越大。创建出类似近视眼看远处灯光的效果 gl…...
for X_batch, y_batch in dataloader ,其中y_batch想转成list
for X_batch, y_batch in dataloader ,其中y_batch想转成list for X_batch, y_batch in dataloader:# y_batch数据类型的是 tensor组成的list# 初始化一个空列表来存储展平后的数据y_batch_flat []# 遍历y_batch 这个list中的每个张量for tensor in y_batch:# 展平…...
Kruskal最小生成树算法正确性证明
Kruskal: 每次考虑最短一条边, 如果会形成回路则不选择该边, 如果不会形成回路则选择该边, 直到选出了n-1条边 要点: 每次都选择不会形成回路的最短边 数学归纳法 ① n<2时, 显然成立 ② 设n k时成立, 则当n k1时: 将图划分为 子图A(k) 和 B(1) ∵ n k时成立 ∴ A(k)可…...