大佬教程收集整理的这篇文章主要介绍了[Swift]LeetCode470. 用 Rand7() 实现 Rand10() | Implement Rand10() Using Rand7(),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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 @H_818_19@math.random().
Example 1:
Input: 1
Output: [7]
Example 2:
Input: 2
Output: [8,4]
Example 3:
Input: 3
Output: [8,1,10]
Note:
rand7
is predefined.n
,the number of times that rand10
is called. Follow up:
rand7()
@R_724_3816@?rand7()
?已有方法 rand7
可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10
生成 1 到 10 范围内的均匀随机整数。
不要使用系统的 @H_818_19@math.random() 方法。
示例 1:
输入: 1 输出: [7]
示例 2:
输入: 2 输出: [8,4]
示例 3:
输入: 3 输出: [8,10]
提示:
进阶:
1 @H_489_138@/*@H_489_138@* 2 @H_489_138@ * The rand7() API is already defined in the parent class SolBase. 3 @H_489_138@ * func rand7() -> Int = {} 4 @H_489_138@ * @return a random Integer in the range 1 to 7 5 @H_489_138@*/ 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 + b 13 if num <= 40 {return num % 10 + 1} 14 a = num - 40 15 b = rand7() 16 num = (a - 1) * 7 + b 17 if num <= 60 {return num % 10 + 1} 18 a = num - 60 19 b = rand7() 20 num = (a - 1) * 7 + b 21 if num <= 20 {return num % 10 + 1} 22 } 23 } 24 }
1 @H_489_138@/*@H_489_138@* 2 @H_489_138@ * The rand7() API is already defined in the parent class SolBase. 3 @H_489_138@ * func rand7() -> Int = {} 4 @H_489_138@ * @return a random Integer in the range 1 to 7 5 @H_489_138@*/ 6 class Solution : SolBase { 7 func rand10() -> Int { 8 var a,b,no: Int? 9 repeat { 10 a = rand7() - 1 11 b = rand7() - 1 12 no = 7 * a! + b! 13 } while (no! > 39) 14 15 return (no! % 10) + 1 16 } 17 }
48 ms
1 @H_489_138@/*@H_489_138@* 2 @H_489_138@ * The rand7() API is already defined in the parent class SolBase. 3 @H_489_138@ * func rand7() -> Int = {} 4 @H_489_138@ * @return a random Integer in the range 1 to 7 5 @H_489_138@*/ 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()所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。