嗨嗨!
这里是olive的学习频道!
以下所有题目均来自于某Python竞赛软件,分享出来只是为了督促自己学习,所有题目和内容仅做学习参考,不做任何其他用处嗷~
那我们话不多说,进入正题吧!
来来~上题!
题目:给定一个整数数组nums和一个目标值target,请你在该数据找出“和”为目标值的两个数,返回他们的数组下标`
思路解析:
-
题目分析:
在nums数组中,找出两两相加的和为target的值的下标值。
-
解决思路:
- 传入数组,利用双层for循环嵌套遍历获得下标值和内容,再将内容进行比对,用if语句把符合题意的下标和内容进行输出。
- 利用target-j in nums这个特性,(9-2=7),将数组遍历后,利用index函数查找目标值和目标值,并将其下标输出。
—思路1—
传入数组,利用双层for循环嵌套遍历获得下标值和内容
将内容进行比对,用if语句把符合题意的下标和内容进行输出
def twoSum(nums:list,target:int)->list:
n=len(nums)
a=[]#用来存放结果
for i in range(n-1):#range(0,3)
for j in range(i+1,n):#range(1,4)(2,4)(3,4)
if nums[i]+nums[j]==target:
a.append(i)
a.appeed(j)
return a
nums=[2,7,8,1]
target=9
print(twoSum(nums,target))
—思路2—
利用target-j in nums这个特性,(9-2=7),将数组遍历后,利用index函数查找目标值和目标值,并将其下标输出。
def twoSum(nums: list, target: int) -> list:
for i,j in enumerate(nums):#enumerate枚举
if target-j in nums:
return [i,nums.index(target-j,i+1,len(nums))]#index(目标,开始,结束)
nums=[2,3,2,4]
target=7
a=twoSum(nums,target)
print(a)
—官方答案—
def twoSum(self, nums: list, target: int) -> list:
for index, num in enumerate(nums):
if target - num in nums:
return [index, nums.index(target - num, index+1, len(nums))]
其实也就是第二种思路的规范化啦!
这边补充一下里面的函数知识:
enumerate()枚举
- 作用:将一种类型中可能会出现的所有情况一一列举出来。 用法:
- enumerate(X,[start=0])
X:迭代器序列(可以是字典)
[start=0]:起始值,这里0代表“从0开始一直往后枚举”
- 举例1:
a={1:1,2:2,3:3}
for i,item in enumerate(a):
print(i,item)
运行结果:
0 1
1 2
2 3
- 举例2:
a=[1,2,3,4,5,6]
for i,item in enumerate(a,start=10):
print(i,item)
运行结果:
10 1
11 2
12 3
13 4
14 5
15 6
简而言之就是将需要获取的字典、列表等内容,用此方法进行一一列举,获取其内容,便于我们进行后续编程操作。
len()获取列表长度
- 作用:获取当前列表长度(超常用!)
- 用法:len(n)
- 举例1:
n=["a","b","c"]
print(len(n))
运行结果:3
- 举例2:
n="hello"
for i in range(len(n)):
print(n[i])
运行结果:
h
e
l
l
o
简而言之就是计算长度,经常用于数组遍历和查找。
index()查找对象
- 作用:查找某个元素并输出索引值
- 用法:a.index(查找对象,开始值,结束值)
list=[1,8,618,"csdn",31,"ndsc"]
print(list.index("csdn"))
print(list.index("ndsc",5,6))
运行结果:
3
6
append()添加数组元素
- 作用:添加新元素进数组
- 用法:a.append(元素)
- 举例:
a=[1,2,3,4,5]
a.append(6)
print(a)
运行结果:
1,2,3,4,5,6
这就是今天的题啦!!!
对于爬虫来说这些都是很基础的知识,我作为小白也在努力学习中,如果过程中有什么问题,欢迎评论区交流
大家一起好好成长吧!我们明天见!!!