我是靠谱客的博主 落后自行车,最近开发中收集的这篇文章主要介绍LeetCode摆烂刷题记录-hoot100-1-两数之和LeetCode摆烂刷题记录-hoot100-1前言一、题目二、解题思路三、总结碎碎念,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

LeetCode摆烂刷题记录-hoot100-1

文章目录

  • LeetCode摆烂刷题记录-hoot100-1
  • 前言
  • 一、题目
  • 二、解题思路
    • 2.1 最简单的暴力:
    • 2.2 借鉴哈希表的思路
  • 三、总结
  • 碎碎念

前言

计划一周刷一道题,从hot100开始(是不是有点太摆了????


一、题目

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

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:

输入:nums = [3,2,4], target = 6
输出:[1,2]
示例 3:

输入:nums = [3,3], target = 6
输出:[0,1]

提示:

2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
只会存在一个有效答案
进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?

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

二、解题思路

2.1 最简单的暴力:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        start = 0
        res = []
        temp = 0
        for i_index,i in enumerate(nums):
            for j_index,j in enumerate(nums[i_index+1:]):
              if (i+j) == target:
                #   print(i)
                #   print(j)
                  res.append(i_index)
                  res.append(j_index+i_index+1)
        return res

运行耗时
在这里插入图片描述

2.2 借鉴哈希表的思路

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        haxi_dic = {}
        res = []
        for i_index,i in enumerate(nums):
            temp = target - i
                
            if temp not in haxi_dic:
                haxi_dic[i]=i_index
            else:
                start = int(haxi_dic[temp])
                res.append(start)
                res.append(i_index)
                break
        return res    

运行耗时
在这里插入图片描述

三、总结

提示:这里对文章进行总结:

1.在碰到“判断元素是否出现过”,“判断元素是否在这个集合里面出现过”这样的需求时,要想是否可以用哈希表来解决。
2.可以用enumerate来遍历列表中的数据和下标(总是记不住这个函数怎么写????
例如:
for i_index,i in enumerate(nums):
print(i_index,i)

碎碎念

在这里插入图片描述
哈哈哈哈评论区第一条

最后

以上就是落后自行车为你收集整理的LeetCode摆烂刷题记录-hoot100-1-两数之和LeetCode摆烂刷题记录-hoot100-1前言一、题目二、解题思路三、总结碎碎念的全部内容,希望文章能够帮你解决LeetCode摆烂刷题记录-hoot100-1-两数之和LeetCode摆烂刷题记录-hoot100-1前言一、题目二、解题思路三、总结碎碎念所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部