01.两数之和

简介: 01.两数之和

python3

# 解法一:暴力解法
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        result = []
        for i in range(len(nums)):
            for j in range(i+1, len(nums)):
                if target == nums[i] + nums[j]:
                    result.append(i)
                    result.append(j)
        return result
     
 
# 解法二:哈希map
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        result = {}
        for index, value in enumerate(nums):
            if result.get(target-value) is not None:
                return [index, result.get(target-value)]
            result[value] = index
        return result
       
# 注:enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。


Go

解法一:
func twoSum(nums []int, target int) []int {
    for i := 0;i<len(nums);i++ {
        for j:=i+1;j<len(nums);j++ {
            if target == nums[i] + nums[j] {
                return []int{i,j}
            }
        }
    }
    return nil
}
时间复杂度:O(N^2)

解法二:
func twoSum(nums []int, target int) []int {
    hashmap := map[int]int{}
    for index, value := range nums {
        if p, ok := hashmap[target-value]; ok {
            return []int{index,p}
        }
        hashmap[value] = index
    }
    return nil
}

image.png


目录
相关文章
|
17天前
两数之和
给定整数数组 `nums` 和目标值 `target`,任务是在数组中找到和为 `target` 的两个整数并返回它们的下标。每个输入保证有唯一解,且不能重复使用同一元素。示例展示了不同情况下的输入与输出,暴力破解法通过两层循环遍历所有可能的组合来寻找解。
|
2月前
|
Python
01、两数之和——2021-04-12
01、两数之和——2021-04-12
11 0
|
2月前
|
存储
Leetcode第29题(两数相除)
LeetCode第29题要求使用不包含乘法、除法和mod运算符的方法计算两个整数的商,通过记录结果的正负,将问题转化为负数处理,并利用二进制幂次方的累加来逼近除数,最后根据结果的正负返回相应的商。
18 0
|
4月前
|
算法
LeetCode第29题两数相除
这篇文章介绍了LeetCode第29题"两数相除"的解题方法,通过使用加法、减法和二进制位移法代替常规的乘除操作,并考虑了整数溢出问题,提供了一种高效的算法解决方案。
LeetCode第29题两数相除
|
6月前
1.两数之和
1.两数之和
|
6月前
2.两数相加
2.两数相加
|
7月前
leetcode-29:两数相除
leetcode-29:两数相除
46 0