Given a function rand7
which generates a uniform random integer in the range 1 to 7,write a function rand10
which generates a uniform random integer in the range 1 to 10.
Do NOT use system‘s Math.random()
.
Example 1:
input: 1Output: [7]
Example 2:
input: 2Output: [8,4]
Example 3:
input: 3Output: [8,1,10]
Note:
rand7
is predefined. Each testcase has one argument: n
,the number of times that rand10
is called. Follow up:
What is the expected value for the number of calls torand7()
function? Could you minimize the number of calls to rand7()
? 已有方法 rand7
可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10
生成 1 到 10 范围内的均匀随机整数。
不要使用系统的 Math.random()
方法。
示例 1:
输入: 1输出: [7]
示例 2:
输入: 2输出: [8,4]
示例 3:
输入: 3输出: [8,10]
提示:
rand7
已定义。 传入参数: n
表示 rand10
的调用次数。 进阶:
rand7()
调用次数的 期望值 是多少 ? 你能否尽量少调用 rand7()
? Runtime: 44 ms Memory Usage: 5.9 MB 1 /** 2 * The rand7() API is already defined in the parent class SolBase. 3 * func rand7() -> Int = {} 4 * @return a random integer in the range 1 to 7 5 */ 6 class Solution : SolBase { 7 func rand10() -> Int { 8 while(true) 9 {10 var a:Int = rand7()11 var b:Int = rand7()12 var num:Int = (a - 1) * 7 + b13 if num <= 40 {return num % 10 + 1}14 a = num - 4015 b = rand7()16 num = (a - 1) * 7 + b17 if num <= 60 {return num % 10 + 1}18 a = num - 6019 b = rand7()20 num = (a - 1) * 7 + b21 if num <= 20 {return num % 10 + 1}22 }23 }24 }44ms
1 /** 2 * The rand7() API is already defined in the parent class SolBase. 3 * func rand7() -> Int = {} 4 * @return a random integer in the range 1 to 7 5 */ 6 class Solution : SolBase { 7 func rand10() -> Int { 8 var a,b,no: Int? 9 repeat {10 a = rand7() - 111 b = rand7() - 112 no = 7 * a! + b!13 } while (no! > 39)14 15 return (no! % 10) + 116 }17 }
48 ms
1 /** 2 * The rand7() API is already defined in the parent class SolBase. 3 * func rand7() -> Int = {} 4 * @return a random integer in the range 1 to 7 5 */ 6 class Solution : SolBase { 7 func rand10() -> Int { 8 var num:Int = (rand7() - 1) * 7 + rand7() 9 return (num <= 40) ? (num % 10 + 1) : rand10() 10 }11 }总结
以上是内存溢出为你收集整理的[Swift]LeetCode470. 用 Rand7() 实现 Rand10() | Implement Rand10() Using Rand7()全部内容,希望文章能够帮你解决[Swift]LeetCode470. 用 Rand7() 实现 Rand10() | Implement Rand10() Using Rand7()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)