给定一个整数数组,判断是否存在重复元素。
如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
关键点:哈希表:
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
a={}
for i in range(len(nums)):
if nums[i] in a:
a[nums[i]]+=1
else:
a[nums[i]]=1
for i in range(len(nums)):
if a[nums[i]]>=2:
return True
return False
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。
关键点:直接修改节点
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteNode(self, node):
"""
:type node: ListNode
:rtype: void Do not return anything, modify node in-place instead.
"""
node.val = node.next.val
node.next = node.next.next
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
关键点:哈希表:
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
k1=len(s)
k2=len(t)
if k1!=k2:
return False
else:
s1={}
for i in range(len(s)):
if s[i] in s1:
s1[s[i]]+=1
else:
s1[s[i]]=1
t1={}
for i in range(len(t)):
if t[i] in t1:
t1[t[i]]+=1
else:
t1[t[i]]=1
for i in s1:
if i not in t1 or s1[i]!=t1[i]:
return False
return True
给定一个包含 [0, n]中n个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。
关键点:哈希表:
class Solution:
def missingNumber(self, nums: List[int]) -> int:
hash1={}
for i in range(len(nums)):
if nums[i] in hash1:
hash1[nums[i]]+=1
else:
hash1[nums[i]]=1
for i in range(len(nums)+1):
if i not in hash1:
return i
给定一个整数,写一个函数来判断它是否是 3 的幂次方。
关键点:循环和判断
class Solution:
def isPowerOfThree(self, n: int) -> bool:
if n==0:
return False
elif n==1:
return True
while n>=2:
if n%3==0:
n=n/3
if n==1:
return True
else:
return False
return False
写于20201103晚11点