470. Implement Rand10() Using Rand7()
(rand_x() - 1) * y + rand_y()可以生成区间的随机数。
# def rand7():# @return a random integer in the range 1 to 7class Solution:def rand10(self):while True:a, b = rand7(), rand7()num = (a - 1) * 7 + b # rand_49()if num <= 40:return num % 10 + 1 # 舍弃'41~49'a = num - 40 # rand_9()b = rand7()num = (a - 1) * 7 + b # rand_63()if num <= 60:return num % 10 + 1 # 舍弃'61~63'a = num - 60 # rand_3()b = rand7()num = (a - 1) * 7 + b # rand_21()if num <= 20:return num % 10 + 1 # 舍弃'21' => 最终只舍弃了一个数
7. Reverse Integer
很容易想到使用**栈**或者**字符串**作为桥梁进行整数反转,但空间复杂度为。
题目要求只能使用32bit的整数数据,故需要提前判断。
