349.
class Solution(object):
def intersection(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
from collections import defaultdict
d1 = defaultdict(int)
d2 = defaultdict(int)
for i in nums1:
d1[i] +=1
for i in nums2:
d2[i] +=2
res = []
for i in d1:
if i in d2:
res.append(i)
return res
https://leetcode.com/problems/happy-number/
class Solution(object):
def isHappy(self, n):
"""
:type n: int
:rtype: bool
"""
record = set()
while 1:
n = self.get_sum(n)
if n == 1:
return True
if n in record:
return False
else:
record.add(n)
def get_sum(self,n):
res = 0
while n:
n,r = divmod(n,10)
res += r **2
return res
Note: to create an empty set you have to use set()
, not {}
; the latter creates an empty dictionary
1. two sum
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
table = {}
for i in range(len(nums)):
table[nums[i]] = i
for i in range(len(nums)):
if target - nums[i] in table and table[target - nums[i]] != i:
return [ i ,table[target - nums[i]] ]
return None