首页 > 科技 >

💪 LeetCode第一题:TWO SUM(C++版)

发布时间:2025-04-05 02:11:13来源:

在编程的世界里,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 twoSum(vector& nums, int target) {

unordered_map 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 {};

}

```

这个解法不仅简洁优雅,还体现了哈希表的强大功能!💪

无论是初学者还是老手,这道题都值得反复练习。掌握它,你就向算法之路上迈出了坚实的一步!🎉

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。