【算法刷题】笔记(Day1)

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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值