力扣(leetcode)题库0001-python3
试一下leetcode的题库,不知道对于我这种小白要多长时,但是目标已经种下,去做就是了。You can do anything you set your mind to.
题目:题库链接
中:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
英: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.
解答思路:
1. 两重for循环,遍历数组中所有的数。我就是这么做的,做完后感觉不是特别舒服,总感觉如果我自己是计算机的话,就恰似吃到了一道不是很美味的菜。
优:简单上手
缺:运行耗时
def twoSum(nums, target) :
          for i in range(0, len(nums)):
                for j in range(i + 1, len(nums)):
                      if nums[i] + nums[j] == target:
                            return(i, j)
2. 哈希表,利用键值对来进行求解,第一个循环是更新过后了的字典,即无重复的键,第二个循环先得到所有的值与下标,然后拿target减去这个值,得到所需要的 j,再排除这个数是空值和它本身的可能,返回解
优:运算时间降低
缺:我太菜了,找不出来
def twoSum(nums,target):
hashmap = {}
for ind,num in enumrate(nums):
hashmap[num] = ind
for i, num in enumrate(nums):
j = hashmap.get(target - num)
if j is not None and i != j:
return [i,j]
3.哈希表,利用键值对求解,相比上面的算法易懂一些,即从前向后进行循环时,先利用else操作,把前面的数先写进字典,再由后面的循环在d中找到target-nums[x](这个数是由之前的else操作写入
的)的时候,返回这两个下标。
优:运算时间降低
缺:我太菜了,找不出来
def twoSum(nums,target):
d = {}
n = len(nums)
for x in range(n):
if target - nums[x] in d:
return d[target - nums[x]], x
else:
d[nums[x]] = x
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
力扣(leetcode)题库0001-python3的更多相关文章
- Python解答力扣网站题库简单版----第三讲
		
1041. 困于环中的机器人 题库链接: 1041. 困于环中的机器人. 题干 在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方.机器人可以接受下列三条指令之一: "G" ...
 - 力扣Leetcode 179. 最大数 EOJ 和你在一起 字符串拼接 组成最大数
		
最大数 力扣 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说 ...
 - 力扣Leetcode 45. 跳跃游戏 II - 贪心思想
		
这题是 55.跳跃游戏的升级版 力扣Leetcode 55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃 ...
 - leetcode题库
		
leetcode题库 #题名题解通过率难度出现频率 1 两数之和 46.5%简单2 两数相加 35.5%中等3 无重复字符的最长子串 31.1%中等4 寻找两个有序数组的中位 ...
 - LeetCode题库整理(自学整理)
		
1. Two Sum 两数之和 来源:力扣(LeetCode) 题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数.你可以假设每个输入只对应一种答案,且同样的元素不能被重复利 ...
 - 力扣50题 Pow(x,n)
		
本题是力扣网第50题. 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 采用递归和非递归思路python实现. class Solution: #递归思路 def myPow_recurs ...
 - 【力扣leetcode】-787. K站中转内最便宜的航班
		
题目描述: 有 n 个城市通过一些航班连接.给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 p ...
 - 力扣算法题—069x的平方根
		
实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 示例 ...
 - 力扣Leetcode 面试题56 - I. 数组中数字出现的次数
		
面试题56 - I. 数组中数字出现的次数 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). 示例 ...
 - leetcode题库解答源码(python3)
		
下面和大家分享本人在leetcode上已经ace的题目源码(python3): 本人会持续更新!- class Leetcode_Solution(object): def twoSum_1(self ...
 
随机推荐
- [阿里云]Datahub测试使用记录
			
由于需要测试阿里云Datahub功能,因此测了一下Datahub的一些功能 DATAHUB: 简介: 阿里云的流式数据(streaming)处理平台 对流式数据的发布(publish)订阅(subsc ...
 - MySQL 更新数据 不同条件(批量)更新不同值
			
一般在更新时会遇到以下场景:1.全部更新:2.根据条件更新字段中的某部分内容:3.根据不同的条件更新不同的值,以下是几种场景中常用的update方法. 一.方法分类 二.具体用法 (1)根据条件更新值 ...
 - 存储自定义类型元素-LinkedHashSet集合
			
存储自定义类型元素 HashSet存储自定义类型元素 set集合报错元素唯一: 存储的元素(String,Integer,...,Student,Person...),必须重写hashCode方法和e ...
 - 创建型模式 - 单例模式Singleton
			
单例模式的定义与特点 创建型模式: 单例模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式. 例如,Windows中只能打开一个任务管理器,这样可以避免因打开多个任务 ...
 - vulnhub靶场之CEREAL: 1
			
准备: 攻击机:虚拟机kali.本机win10. 靶机:Cereal: 1,下载地址:https://download.vulnhub.com/cereal/Cereal.ova,下载后直接vbox打 ...
 - appium之安卓7.0环境搭建
			
appium 在安卓7.0的手机上运行上报错---------Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appi ...
 - WPF跨平台方案?
			
Avalonia XPF 通过我们的跨平台UI框架,释放现有WPF应用程序的全部潜力,使WPF应用程序能够在macOS和Linux上运行,而不需要昂贵和有风险的重写. 工作原理 我们使用 Fork o ...
 - P14_协同工作-开发者的权限说明以及如何维护项目成员
			
不同项目成员对应的权限 开发者的权限说明 开发者权限:可使用小程序开发者工具及对小程序的功能进行代码开发 体验者权限:可使用体验版小程序 登录权限:可登录小程序管理后台,无需管理员确认 开发设置:设置 ...
 - SpringCloud Stream消息驱动
			
简单搭建,没有技术含量,Demo可用 1.介绍 ①产生原因 RabbitMQ.RocketMQ.Kafka.ActiveMQ 在一个项目中,可能存在多种不同的MQ,在不同的MQ中,切换维护开发都很麻烦 ...
 - ubuntu18.04下联想电脑不能打开wifi
			
一.问题描述: 本人使用联想拯救者14IFI笔记本在安装Ubuntu系统时会出现无线硬件开关关闭的问题,当然也就无法连网(Wi-Fi). (最好先使用 sudo rfkill unblock all) ...