📜  数据结构和算法 | 36套(1)

📅  最后修改于: 2023-12-03 14:54:56.998000             🧑  作者: Mango

数据结构和算法 | 36套

简介

数据结构和算法是计算机科学中非常重要的一部分。掌握好数据结构和算法可以帮助我们写出更有效率、更健壮的程序。这个仓库收集了36套数据结构和算法题库,旨在帮助程序员提升自己的算法能力。

内容

这个仓库中包含了36个不同难度级别的数据结构和算法题库。每个题库都包含若干个题目。每个题目都有详细的题面描述、输入输出格式、样例输入输出、题目解析和代码实现等。

以下是题库列表:

  1. LeetCode
  2. HackerRank
  3. Codeforces
  4. AtCoder
  5. TopCoder
  6. LintCode
  7. Codewars
  8. Project Euler
  9. UVa Online Judge
  10. SPOJ
  11. CS Academy
  12. InterviewBit
  13. GeeksforGeeks
  14. CodeChef
  15. Google Code Jam
  16. Facebook Hacker Cup
  17. IBM Ponder This
  18. Microsoft Research
  19. Kaggle
  20. CodeSignal
  21. Sphere Online Judge
  22. Aizu Online Judge
  23. POJ
  24. FizzBuzz Enterprise Edition
  25. CodingBat
  26. Exercism
  27. Programmr
  28. CodeAbbey
  29. Rosalind
  30. Spectrum
  31. CSES Problem Set
  32. CodeStepByStep
  33. HackerEarth
  34. Python Challenge
  35. HackThisSite
  36. CTFtime
代码片段
1. [LeetCode](https://leetcode.com/)
### 题目描述

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

### 示例

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

### 解析

这个问题可以使用暴力枚举或者哈希表来解决。哈希表的时间复杂度是O(n),空间复杂度是O(n)。代码如下:

```python
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        hashmap = {}
        for i, num in enumerate(nums):
            if target - num in hashmap:
                return [hashmap[target - num], i]
            hashmap[num] = i
        return [-1, -1]
参考链接