我是靠谱客的博主 正直煎饼,最近开发中收集的这篇文章主要介绍LeetCode算法(Python)--1、Two Sum,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

这种蛮力方法是:

class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if(nums[i] + nums[j] == target):
return [i, j]

另外一种比较好的做法是:

class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
arr = {};//使用字典存储遍历过的num和对应下标{num:index}
length = len(nums);//计算输入的列表长度
for i in range(length):
if (target - nums[i]) in arr://如果target-当前num的差在arr中,则表示已经找到答案,返回结果即可
return [arr[target - nums[i]], i];
arr[nums[i]] = i;//否则,将该num及其下标存入arr中


最后

以上就是正直煎饼为你收集整理的LeetCode算法(Python)--1、Two Sum的全部内容,希望文章能够帮你解决LeetCode算法(Python)--1、Two Sum所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部