摘要:技能点中结构知识点声明语句添加内容鉴定存在本例是把作为找到下标根据返回下标返回数组最终代码建立在哈希表中遍历每个元素,找到可能与之匹配成的下标
问题:
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的两个下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
思路
首先遍历一次整数数组,将数组下标和值建立哈希表,再从头遍历一次哈希表,先得出当前读取的位置i上对于target的差complement,得到后通过查看该值是否保存在哈希表的value中,若存在,返回该值的key,否则读取下一元素。
技能点
1.java中HashMap结构知识点:
声明语句: Mapmap = new HashMap<>();
添加内容: map.put(key,value);
鉴定存在: map.containsValues(value); //本例是把num[i]作为value
map.containsKey(key);
找到下标: map.get(value); //根据value返回下标
返回数组: return new int[]{num1,num2};
最终代码:
public int[] twoSum(int[] nums, int target) { Mapmap = new HashMap<>(); //建立hashmap for (int i = 0; i < nums.length; i++) { map.put(nums[i], i); } //在哈希表中遍历每个元素,找到可能与之匹配成target的下标 for (int i = 0; i < nums.length; i++) { int complement = target - nums[i]; if (map.containsValues(complement) && map.get(complement) != i) { return new int[] { i, map.get(complement) }; } } throw new IllegalArgumentException("No two sum solution"); }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/73223.html
摘要:最近时间准备面试,开始在上刷题了。思路将两个数用转换为二进制需要去除前面的,因为位数不同所以需要在前面补充一定位数的,然后将两个字符串遍历就可以直接得到汉明距离代码 最近时间准备面试,开始在leetcode上刷题了。于是在segmentfault上写点东西来记录下。可能会有各种弱智情况,望指出。 Array Partition I题意:这个题目看原题实在没有看懂,在网上找的翻译,大致...
摘要:题意给出一串二进制数组,求数组中最长的连续的个数思路遍历数组判断,然后将值添加到长度保存数组中,取保存数组最大值。本题要考虑输入的数组为的状况。代码题意给出一个,从里面获取两个数。 485 Max Consecutive Ones题意:给出一串二进制数组,求数组中最长的连续1的个数思路:遍历数组判断,然后将值添加到长度保存数组中,取保存数组最大值。本题要考虑输入的数组为[0],[1]的...
摘要:思路先用将字符串分割,再遍历,将字符串内每个单词进行翻转代码题意给定一个字符串,将字符串按照翻转,不翻转的规则进行处理。思路先将字符串分段,然后再根据段落进行处理最后将字符串输出。 344 Reverse String题意:给出一个字符串对字符串进行翻转(reverse)思路:直接使用切片函数进行翻转(网上看到的,具体怎么使用有点迷)[::-1]代码:`class Solution(...
摘要:随着互联网的发展,各大厂的招聘要求也随之水涨船高起来。但如今由于投身互联网的人太多,入职互联网公司的门槛水涨船高,国内公司向硅谷大厂招聘看齐,开始在面试中加入高水平的编程算法考量。 随着互联网的发展,各大厂的招聘要求也随之水涨船高起来。 几年前,做算法题还不是必备项,除了一些知名外企,大部分...
阅读 1750·2021-09-27 14:02
阅读 3100·2021-09-27 13:36
阅读 1046·2019-08-30 12:46
阅读 1834·2019-08-30 10:51
阅读 3571·2019-08-29 17:02
阅读 940·2019-08-29 16:38
阅读 1846·2019-08-29 16:37
阅读 3003·2019-08-26 10:32