💪 LeetCode第一题:TWO SUM(C++版)
在编程的世界里,LeetCode的第一题《Two Sum》是每个程序员入门算法时的必经之路!这个问题简单却充满挑战:给定一个整数列表和一个目标值,在列表中找到两个数字,使它们的和等于目标值,并返回这两个数字的索引。 🎯
假设你拿到了一个整数数组 `nums` 和一个目标值 `target`,比如 `nums = [2, 7, 11, 15]`,`target = 9`。通过简单的分析可以发现,`2 + 7 = 9`,所以答案是 `[0, 1]`。✨
那么问题来了,如何高效地解决这个问题呢?这里推荐使用哈希表(unordered_map)来优化时间复杂度。我们可以遍历数组,同时记录已经访问过的数字及其索引。当当前数字与某个已存数字的和等于目标值时,直接返回结果即可!这种方法的时间复杂度为 O(n),空间复杂度也是 O(n)。🌟
下面是一个 C++ 示例代码片段:
```cpp
include
include
using namespace std;
vector
unordered_map
for (int i = 0; i < nums.size(); i++) {
int complement = target - nums[i];
if (map.find(complement) != map.end()) {
return {map[complement], i};
}
map[nums[i]] = i;
}
return {};
}
```
这个解法不仅简洁优雅,还体现了哈希表的强大功能!💪
无论是初学者还是老手,这道题都值得反复练习。掌握它,你就向算法之路上迈出了坚实的一步!🎉
免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。