LeetCode做题总结 1. 两数之和

1. 两数之和

  • 暴力法
  • 哈希法
  • 重新分析
  • Java语法

暴力法

2023.09.20 刚开始用暴力法破解(C++)

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {vector<int> a;for(int i=0; i<nums.size()-1; i++) {for(int j=i+1; j<nums.size(); j++) {if(nums[i]+nums[j] == target) {a.push_back(i);a.push_back(j);break;}}}return a;}
};

在这里插入图片描述

哈希法

2023.12.22又做了一次(Java)
属于是只记得这题可以用哈希表快速解决,但是完全不知道怎么用、用在哪里,反而被困在这里了。
下面的代码,得到了错误答案

class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer,Integer> mymap = new HashMap<>();for(int i=0; i<nums.length; i++) {mymap.put(nums[i],mymap.getOrDefault(nums[i],0));}int[] res = new int[2]; for(int i=0; i<nums.length; i++) {int temp = target-nums[i];if(mymap.containsKey(temp)) {//K大写res[0] = nums[i];res[0] = temp;break;}}return res;}
}

重新分析

首先审题,返回的是数组下标;
只存在一个有效答案=> 存在一个答案(不用考虑不存在答案的情况)

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。

提示:
只会存在一个有效答案

这里出现一个问题,用 target-nums[i]在哈希表中查找很快,但是怎么构造哈希表,比如示例3数组为 nums = [3,3],是无法构造以3为key值的两个pair的。所以肯定是边遍历边构造

class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer,Integer> mymap = new HashMap<>();int[] res = new int[2]; for(int i=0; i<nums.length; i++) {int temp = target-nums[i];if(mymap.containsKey(temp)) {//K大写res[0] = i;res[1] = mymap.get(temp);break;}mymap.put(nums[i],i);}return res;}
}

在这里插入图片描述

Java语法

 Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>();
containsKey :K要大写

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ros2 学习11-通信中动作的定义及自定义action 交互示例

机器人是一个复杂的智能系统&#xff0c;并不仅仅是键盘遥控运动、识别某个目标这么简单&#xff0c;我们需要实现的是送餐、送货、分拣等满足具体场景需求的机器人。 在这些应用功能的实现中&#xff0c;另外一种ROS通信机制也会被常常用到——那就是动作。从这个名字上就可以…

我的创作纪念日- 从第一天到今天

目录 机缘 收获 持续学习和探索新技术 深化现有知识 代码里有所有 日常 扩大影响力 维护创作的质量和一致性 反馈和自我反思 憧憬 在这平凡的一天里&#xff0c;我选择赋予它特殊的意义。这不仅仅是我的创作旅程的一个节点&#xff0c;更是我个人成长和技术进步的见证…

HEA---code

import matplotlib.pyplot as pltimport numpy as npfrom matplotlib.animation import FuncAnimationfrom matplotlib.offsetbox import OffsetImage, AnnotationBbox# 创建一个画布和坐标轴对象 fig, ax plt.subplots() # 创建一个参数t&#xff0c;范围是0到2π t np.lins…

「工业遥测」图表控件LightningChart在水工业中的应用

LightningChart.NET完全由GPU加速&#xff0c;并且性能经过优化&#xff0c;可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D&#xff0c;高级3D&#xff0c;Polar&#xff0c;Smith&#xff0c;3D饼/甜甜圈&#xff0c;地理地图和GIS图表以及适用于科学…

图像ISP处理——自动对焦AF算法

自动对焦算法是在数码相机、摄像机和其他图像采集设备中常见的技术之一&#xff0c;它通过调整镜头位置或其他光学参数来确保拍摄的图像在焦点上清晰。 以下是一些常见的自动对焦算法&#xff1a; 对比度检测对焦&#xff08;Contrast Detection Autofocus&#xff0c;CDAF&am…

表格实现合并单元格

实现的效果 一、列合并 此需求的列合并比较简单, 直接使用el-table-column包括即可 <el-table-column align"center" sortable label"目标"><el-table-column prop"target1" sortable label"预设目标" /><el-table-c…

4. 可用性

文章目录 4. 第4章 可用性4.1. 可用性一般场景4.2. 可用性策略故障检测&#xff08;Detect Faults&#xff09;故障恢复&#xff08;Recover from Faults &#xff09;故障预防&#xff08;Prevent Faults&#xff09; 4.3. 基于策略的可用性调查表4.4. 可用性模式4.5. 扩展阅读…

【pentaho】kettle读取Hive表不支持bigint和timstamp类型解决。

一、bigint类型 报错: Unable to get value BigNumber(16) from database resultset显示kettle认为此应该是decimal类型(kettle中是TYPE_BIGNUMBER或称BigNumber)&#xff0c;但实际hive数据库中是big类型。 修改kettle源码解决&#xff1a; kettle中java.sql.Types到kettle…

仓储1、10、11代电子标签接口文档

标签注册 仓储1代注册 侧面按钮连按三次&#xff0c; 注册成功&#xff1a;红灯变绿灯 仓储10代注册 右下角左下角组合按键触发注册 注册成功&#xff1a;右上角绿灯变红灯 仓储11代注册 磁体靠近条码附近&#xff0c;触发标签注册到系统 注册成功&#xff1a;闪红灯边绿…

Ubuntu20.04 及深度学习环境anaconda、cuda、cudnn、pytorch、paddle2.3安装记录

学习目标&#xff1a; Ubuntu20.04下装好torch、paddle深度学习环境。 选择的版本环境是 &#xff1a;最新的nvidia驱动、cuda 11.1 、cudnn v8.1.1&#xff0c;下面会说为啥这么选。 学习内容&#xff1a; 1. Ubuntu20.04仓库换源 本节参考Ubuntu 20.04 Linux更换源教程 2…

C/C++ 块作用域的静态变量static的应用

块作用域的静态变量 静态变量(static variable)听起来自相矛盾&#xff0c;像是一个不可变的变量。实际上&#xff0c;静态的意思是该变量在内存中原地不动&#xff0c;并不是说它的值不变。具有文件作用域的变量自动具有&#xff08;也必须是&#xff09;静态存储器。创建的具…

Go语言与HTTP/2协议的实践探索

随着互联网技术的发展&#xff0c;HTTP/2协议逐渐成为主流。Go语言作为一种高效、简洁的编程语言&#xff0c;与HTTP/2协议的结合具有很大的潜力。本文将探讨Go语言与HTTP/2协议的实践探索。 一、HTTP/2协议的优势 HTTP/2协议相比HTTP/1.1协议&#xff0c;具有以下优势&#…