编程集训【第一天】
一、基本概念
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
数组:所谓数组,是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。
二、两数之和
class Solution:
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
if not nums:
return None
num_map = {}
for i,num1 in enumerate(nums):
num2 = target - num1
if num2 in num_map:
return [num_map[num2],i]
num_map[num1] = i
return None
三,快乐数
class Solution:
def __init__(self):
self.base = {4, 16, 37, 58, 89, 145, 42, 20}
def isHappy(self, n):
"""
:type n: int
:rtype: bool
"""
sums = sum(map(lambda x:x**2, map(int, str(n))))
if sums in self.base:
return False
if sums != 1:
return self.isHappy(sums)
else:
return True