【力扣100】1.两数之和__231206

两数之和

第一次题解:

python 复制代码
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        #思路是for循环第一个数然后在数组中找差值
        for i in range(0,len(nums)-1):
            second_value=target-nums[i]
            for j in range(i+1,len(nums)):
                if nums[j]==second_value:
                    return [i,j]

思路:两个for循环,找元素

还有一种方法:

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

也是两层for循环


使用哈希表解法:

python 复制代码
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        hashtable={}
        for index,value in enumerate(nums):
            # in hashtable 判断的是键集合
            if target-value not in hashtable:
                # 因为本题返回下标,所以键放数值,值放下标
                hashtable[value]=index
            else:
                return [hashtable[target-value],index]

时间复杂度:n

这里有两个要注意的点:

1.enumerate():

返回可迭代的index和values

可以使用enumerate的是:列表,元组和字符串

2. x in hashtable:

这里比较的是x是不是在hashtable的键集合

相关推荐
bin9153几秒前
当AI优化搜索引擎算法:Go初级开发者的创意突围实战指南
人工智能·算法·搜索引擎·工具·ai工具
曹牧1 小时前
Java:Math.abs()‌
java·开发语言·算法
CoovallyAIHub2 小时前
纯视觉的终结?顶会趋势:不会联觉(多模态)的CV不是好AI
深度学习·算法·计算机视觉
CoovallyAIHub2 小时前
一文读懂大语言模型家族:LLM、MLLM、LMM、VLM核心概念全解析
深度学习·算法·计算机视觉
范纹杉想快点毕业2 小时前
嵌入式C语言实战开发详解
linux·运维·算法
闲看云起3 小时前
LeetCode day3-最长连续序列
算法·leetcode
随意起个昵称3 小时前
【题解学习】序列题
学习·算法
思通数科多模态大模型3 小时前
门店 AI 清洁系统:AI 语义分割 + 机器人清洁
大数据·人工智能·算法·目标检测·计算机视觉·自然语言处理·机器人
六毛的毛3 小时前
比较含退格的字符串
开发语言·python·leetcode
iAkuya3 小时前
(leetcode)力扣100 27合并两个有序链表(迭代/递归)
算法·leetcode·链表