1、两数之和
给定一个整数数组 nums
和一个整数目标值 target
,请你在该数组中找出 和为目标值 target
的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
Python题解 :for循环+字典key:value
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dic = {}
for i , num1 in enumerate(nums):
num2 = target - num1
if dic.get(num2) != None:
return (dic[num2], i)
dic[num1] = i
else:
return "No Exists"
知识点学习:
1、enumerate()
enumerate函数用于遍历序列中的元素以及它们的下标。
函数原型:enumerate(sequence, [start=0])
功能:将可循环序列sequence以start开始分别列出序列数据和数据下标。即对一个可遍历的数据对象(如列表、元组或字符串),enumerate会将该数据对象组合为一个索引序列,同时列出数据和数据下标。
举例
lst = ["张三", "李四", "王五"]
for index , value in enumerate(lst):
print(f'{index}:{value}')
输出:
0:张三
1:李四
2:王五
2、dic.get()
get方法是字典中常用的一个方法,它返回指定键的值。如果值不存在,则返回默认值。
get()语法:DIC.get(key, default = None)
参数说明:
- key: 字典中要查找的键值。
- default: 如果指定键的值不存在时,返回该默认值。
举例
students = {'Tom': 90, 'Jack': 70, 'Mary':80}
score1 = students.get('Jack')
score2 = students.get('Lucy', 0)
score3 = students.get('Nancy')
print(score1)
print(score2)
print(score3)
输出
70
0
None
2、合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1
和 nums2
,另有两个整数 m
和 n
,分别表示 nums1
和 nums2
中的元素数目。
请你 合并 nums2
到 nums1
中,使合并后的数组同样按 非递减顺序 排列。
注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1
中。为了应对这种情况,nums1
的初始长度为 m + n
,其中前 m
个元素表示应合并的元素,后 n
个元素为 0
,应忽略。nums2
的长度为 n
。
python题解
class Solution:
def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
"""
Do not return anything, modify nums1 in-place instead.
"""
for i in range(n):
nums1[m + i] = nums2[i]
nums1.sort()
3、加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
python题解