我是靠谱客的博主 现实云朵,最近开发中收集的这篇文章主要介绍LeetCode_哈希_ 第一题两数之和,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

python 每天写一个算法题

第一天

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum

1.暴力算法 

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(0, len(nums)):
            for j in range(i + 1, len(nums)):
                if nums[i] + nums[j] == target:
                    return [i, j]
        return[]

2.运用字典 模拟哈希求解

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        hashmap = {}
        for ind, num in enumerate(nums):
            hashmap[num] = ind
            #   hashmap = {(2,0),(7,1),(11,2),(15,3)}
        for i, num in enumerate(nums):
             j = hashmap.get(target - num)
            #   j : 2 7 None None
             if j is not None and i != j:
                return [i, j]

C++

哈希

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int, int> mymap;
        int     i;
        for (i = 0; i < nums.size(); i++)
        {
            auto     another = mymap.find(target - nums[i]);
            if (another != mymap.end())
                return {another->second, i};
            mymap[nums[i]] = i;
        }
     return {};
    }
};

最后

以上就是现实云朵为你收集整理的LeetCode_哈希_ 第一题两数之和的全部内容,希望文章能够帮你解决LeetCode_哈希_ 第一题两数之和所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部