当前位置: 移动技术网 > IT编程>脚本编程>Python > 数据结构算法(两数之和、整数反转)

数据结构算法(两数之和、整数反转)

2020年08月01日  | 移动技术网IT编程  | 我要评论
文章目录Leetcode刷题Day11.两数之和Leetcode刷题Day11.两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: hashmap = {}



Leetcode刷题Day1-Python

1.两数之和

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

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

在这里插入图片描述
题解代码:

class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: hashmap = {} for index,num in enumerate(nums): if target - num in hashmap: return [hashmap[target-num],index] hashmap[num] = index 

解题思路:
1.字典性质
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
实例:

>>>dict = {'IGTOP':'theshy','IGMID':'Rookie','IGJUG':'Ning'} >>>print(dict['IGTOP']) theshy 

2.内置函数 enumerate()
enumerate是Python的一个内置函数。你应该充分利用它通过循环迭代自动生成的索引变量。

>>>nums = [2,7,11,15] >>>list(enumerate(nums)) [(0,2),(1,7),(2,11),(3,15)] 

对于输入 list()中的每个 enumerate()迭代器元素,迭代器会返回一个形式为 (index,element)的元组作为list的元素。在典型的for-in循环中,你可以利用Python的数据结构解包功能来充分利用这一点特性:

for index,element in enumerate(nums): #... 

索引值默认从0开始,但也可以将其设置为任何整数。

>>>nums = [2,7,11,15] >>>list(enumerate(nums,1)) [(1,2),(2,7),(3,11),(4,15)] 

在上面的例子中,我将函数调用改为 enumerate(names, 1),后面的参数1就是本次循环的起始索引,替换默认的0.

2.整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
在这里插入图片描述
题解代码:

class Solution: def reverse(self, x: int) -> int: strr = str(abs(x)) strr = strr[::-1] if x < 0: strr = '-'+strr
        x = int(strr) if x<-2**31 or x>2**31-1: return 0 else: return x 

解题思路:
1.去符号后字符串切片翻转
去符号,用内置函数abs()

strr = str(abs(x)) 

类型转换后进行切片翻转操作:

strr = strr[::-1] 

2.判数值符号

if x < 0: strr = '-'+strr 

3.判溢出

 x = int(strr) if x<-2**31 or x>2**31-1: return 0 else: return x 

本文地址:https://blog.csdn.net/m0_49972043/article/details/108237192

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网