当前位置:网站首页>Force is brushed buckle problem for the sum of two Numbers
Force is brushed buckle problem for the sum of two Numbers
2022-08-03 19:04:00 【Lanzhou Qianfan】
The Sum of Two Numbers
This question is the first question of Likou, and it is the place where the dream of brushing questions begins.It must not be underestimated, because I am very disheveled.
The title is as follows:
Given an integer array nums and an integer target value target, please find the two integers in the array that are the target value target and return their array indices.You can assume that there will only be one answer for each input.However, the same element in the array cannot be repeated in the answer.You can return answers in any order.
The requirements of the title are given an array, given a target value, and then let you find the sum of two values in the array equal to the target value, and then return their subscripts.
Normally we don't find the target data so quickly.There is usually a traversal process.A move index is added to the following value.Similar to this.Know to find the target value.
Such code is implemented like this.
for (int i = 0; i < nums.length; i++) {for (int i1=i+1; i1 < nums.length; i1++) {if(nums[i]+nums[i1]==target){arr[0]= i;arr[1]=i1;}}}According to this logic, we still use a double for loop. When looking for the target value, we will traverse to the elements that have been traversed before, which is repetition.
For example, 2+7 2+11 2+15 ··· Then we still go through 11, 15 when adding 7 and the following numbers.In this way, with the traversal of the number of searches and the increase in the amount of data, it is inevitably a waste of time and efficiency.
So we try to solve the problem in this way. After we can traverse this element again, we will write it down, and then we will not use it directly next time, which is great.And can correspond to values and subscripts.Now here is the initialization, the arrow is the traversal index move.
At the beginning, we start with 4. The difference between 4 and the target value is 16. There must be no hashmap, so we put 4 and its index into it.
Then continue, when we get here, we go to 7 to find 13, and find that there is just this key in the map, so we just return the vaue corresponding to this key, and the value is the index.Of course, you can do it the other way around.
Think about it, if we still use brute force exhaustion, then is it still a for loop when we reach 7, then it is 4+6 4+7 … 4+13 …
6+13 6+8 … 13+8 13+7 In this way, we have repeated the traversal value. From this small amount of calculation, we can find that we have used 13 5 times in total, and if we use hashmap,We just pass it once, record it, and then we can find it directly later.Is it very convenient.Implementation code
HashMap map = new HashMap<>();for (int i = 0; i < nums.length; i++) {int result = target-nums[i];if(map.containsKey(result)){map.get(result);arr[1]=i;arr[0]=map.get(result);}else {map.put(nums[i],i);}} This efficiency is very high.
Simpleness is one thing, but it is another matter whether the simple questions can be well understood.Simple questions do not have a higher pass rate than difficult questions.
Sometimes the understanding of knowledge is temporarily understood. If the algorithm foundation is not solid, it will be forgotten immediately, and then it will fall into doubt again.Algorithms are based on data structures plus basic grammar knowledge.
边栏推荐
- X86函数调用模型分析
- pytest接口自动化测试框架 | Jenkins集成初探
- Difference差分数组
- With the help of Kubernetes kubekey speed installation
- MVC vs MVP
- Postgresql源码(65)新快照体系Globalvis工作原理分析
- 基于移动GIS的环保生态管理系统
- 2022年最新的Android面试大厂必考174题(附带详细答案)
- Bytes to beat three sides take offer: network + GC + + IO + redis + JVM red-black tree + data structure, to help you quickly into the giant!!!!!
- typescript学习笔记
猜你喜欢

云图说丨初识华为云微服务引擎CSE
![[Azure Event Hub] Create Event Hub Consume Client + Custom Event Position with Azure AD Authentication](/img/fe/db506853be08398f815f4e36beee76.png)
[Azure Event Hub] Create Event Hub Consume Client + Custom Event Position with Azure AD Authentication

MySQL如何 drop 大表

ctfshow php特性

系统太多,多账号互通如何实现?

阿里资深架构师钟华曰:中台战略思想与架构实战;含内部实施手册

【HCIP】MPLS实验

字节跳动三面拿offer:网络+IO+redis+JVM+GC+红黑树+数据结构,助你快速进大厂!!

go语言实现导出string字符串到文件中

Alibaba senior experts create a learning architecture from scratch, including Alibaba's internal technology stack PPT, PFD actual combat
随机推荐
懵逼!阿里一面被虐了,幸获内推华为技术四面,成功拿到offer,年薪40w
首届MogDB征文活动开启啦!
ctfshow php特性
开发即时通讯到底需要什么样的技术,需要多久的时间
梅科尔工作室-14天华为培训七
如何理解即时通讯开发移动网络的“弱”和“慢”
Oracle 脚本实现简单的审计功能
VsCode preview Geojson data
【计网】二、物理层
图像超分——Real-ESRGAN快速上手
U-Net生物医学图像分割讲解(Convolutional Networks for BiomedicalImage Segmentation)
【ORACLE】什么时候ROWNUM等于0和ROWNUM小于0,两个条件不等价?
MVC vs MVP
Mkke:为什么无法从Oracle 11g或12c升级到Oracle 23c?
flex布局
Chrome浏览器开发新截图工具,安全浏览器截图方法
MD5是对称加密还是非对称加密,有什么优缺点
货比四家 version tb1.63
丙二醇二乙酸酯(Propylene Glycol Diacetate)
dd命令:用于读取、转换并输出数据