编程集训【第一天】

一、基本概念
散列表(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

编程集训【第一天】