5、用两个栈实现队列:
# 运行时间: 19ms
# 占用内存: 5712KB
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stackA = []
self.stackB = []
def push(self, node):
self.stackA.append(node)
def pop(self):
if self.stackB:
return self.stackB.pop()
elif not self.stackA:
return None
else:
while self.stackA:
self.stackB.append(self.stackA.pop())
return self.stackB.pop()
50、数组中重复的数字:
题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。
源码:
# -*- coding:utf-8 -*-
# 运行时间: 18ms
# 占用内存: 5620KB
class Solution:
# 这里要特别注意~找到任意重复的一个值并赋值到duplication[0]
# 函数返回True/False
def duplicate(self, numbers, duplication):
# write code here
if not numbers:
return False
dict = {}
for i in numbers:
if i in dict.keys():
dict[i] += 1
else:
dict[i] = 1
for i in dict.keys():
if dict[i] >= 2:
duplication[0] = i
return True
return False