一、该题基础信息列表
题目难易分类【easy】【middle】【hard】
LeetCode平台 | 牛客【题库--算法篇--面试高频榜单】 |
1. 两数之和【easy】 --- 出现频率100.0% 2. 两数相加【middle】--- 出现频率99.03% |
NC61 两数之和【easy】 --- 考察频次60 NC1 大数加法 【middle】 --- 考察频次46 |
15. 三数之和 【middle】--- 出现频率94.12% | NC54 三数之和【middle】--- 考察频次31 |
引申题目 | |
引申问题2--53. 最大子数组和(贪心思路) |
二、求和系列问题分析 ---- 两数之和,三数之和
2-1 两数之和
两数之和,在LeetCode里面是第一序号的题目,自不用多说,很是经典!
暴力法在此不强调,要能够快速寻找数组中是否存在目标元素。如果存在,我们需要找出它的索引。因此使用哈希表,可以将寻找 target - x 的时间复杂度降低到从 O(N) 降低到 O(1) 。
这样我们创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。
两数之和的详细代码如下:
class Solution{
public int[] twoSum(int[] nums, int target){
Map<Int