Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit246f474

Browse files
committed
update
1 parent867483f commit246f474

File tree

2 files changed

+99
-0
lines changed

2 files changed

+99
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<palign="center">
2+
<ahref="https://mp.weixin.qq.com/s/TsTcCDboXwnTnUeIW3Zg9Q"><imgsrc="https://img.shields.io/badge/LeetCode组队刷题群-blueviolet"alt=""></a>
3+
</p>
4+
5+
##0001-Two-Sum-两数之和
6+
https://leetcode-cn.com/problems/two-sum/
7+
8+
##题意
9+
10+
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
11+
12+
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
13+
14+
你可以按任意顺序返回答案。
15+
16+
**样例**
17+
18+
```txt
19+
输入:nums = [2,7,11,15], target = 9
20+
输出:[0,1]
21+
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
22+
```
23+
24+
25+
##题解
26+
27+
哈希可以快速查找一个数字。
28+
29+
建立哈希表,key等于数组的值,value等于值所对应的下标。
30+
31+
然后遍历数组,每次遍历到位置`i`时,检查`target-num[i]` 是否存在,注意`target-num[i]`的位置不能等于`i`
32+
33+
下图以示例演示一下哈希表,将数组插入到哈希表中,查找给定的`key`,即可以在`O(1)` 的时间复杂度查找到,图中的a、b、c、d指的是哈希表的索引。
34+
35+
<imgwidth="476"alt="示例"src="https://user-images.githubusercontent.com/87517460/128287010-e268ab24-d3fd-495e-ad8c-16703ad4251e.png">
36+
37+
38+
##Java代码
39+
40+
```java
41+
classSolution {
42+
publicint[]twoSum(int[]nums,inttarget) {
43+
HashMap<Integer,Integer> numExist=newHashMap<Integer,Integer>();
44+
for (int i=0; i< nums.length;++i) {
45+
if (numExist.containsKey(target- nums[i])) {
46+
returnnewint[]{i, numExist.get(target- nums[i])};
47+
}
48+
numExist.put(nums[i], i);
49+
}
50+
returnnewint[2];
51+
}
52+
}
53+
```
54+
55+
##C++代码
56+
57+
```c++
58+
classSolution {
59+
public:
60+
unordered_map<int, int> numExist;
61+
vector<int> twoSum(vector<int> &nums, int target) {
62+
vector<int> ans;
63+
for (int i = 0; i < nums.size(); i++) {
64+
int b = target - nums[i];
65+
if (numExist.count(b)) {
66+
ans.push_back(i);
67+
ans.push_back(numExist.at(b));
68+
break;
69+
}
70+
numExist[nums[i]] = i;
71+
}
72+
return ans;
73+
}
74+
};
75+
```

‎算法书籍/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#算法书籍📚
2+
3+
**所有电子书在公众号【编程熊 】,扫码关注下面公众号,回复「书」 就可以免费获取下面所有计算机学习核心资料:**
4+
5+
[**一键领取所有资料**](https://mp.weixin.qq.com/s/AgoVT6LkHojzG6ixbWgGJw)
6+
7+
- 啊哈!算法.pdf
8+
9+
- 挑战程序设计竞赛(第2版).pdf
10+
11+
- 数据结构与算法分析:C语言描述_原书第2版_高清版.pdf
12+
13+
- 算法 第4版 高清中文版.pdf
14+
15+
- 算法图解.pdf
16+
17+
- 算法导论第三版.pdf
18+
19+
- 算法竞赛入门经典训练指南.pdf(高清).pdf
20+
21+
- 背包九讲.pdf
22+
23+
24+
<imgwidth="676"alt="二维码"src="https://github.com/hicodebear/images/blob/main/%E6%AD%A3%E8%A7%86%E5%9B%BE.png">

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp