当前位置: 首页 > article >正文

Java | Leetcode Java题解之第470题用Rand7()实现Rand10()

题目:

题解:

class Solution extends SolBase {
    public int rand10() {
        int a, b, idx;
        while (true) {
            a = rand7();
            b = rand7();
            idx = b + (a - 1) * 7;
            if (idx <= 40) {
                return 1 + (idx - 1) % 10;
            }
            a = idx - 40;
            b = rand7();
            // get uniform dist from 1 - 63
            idx = b + (a - 1) * 7;
            if (idx <= 60) {
                return 1 + (idx - 1) % 10;
            }
            a = idx - 60;
            b = rand7();
            // get uniform dist from 1 - 21
            idx = b + (a - 1) * 7;
            if (idx <= 20) {
                return 1 + (idx - 1) % 10;
            }
        }
    }
}

http://www.kler.cn/news/342374.html

相关文章:

  • 最新golang语言面试题总结(四)
  • RabbitMQ消息接收类Receiver
  • 细说QT各种线程锁的特点和用法
  • JAVA学习-练习试用Java实现“反转链表 II”
  • C#中,重载(overload) 重写(override)的应用说明
  • Ubuntu安装nvidia显卡驱动
  • [云] DockerCoins 练习笔记
  • HUAWEI_HCIA_实验指南_Lib1.6_配置通过FTP进行文件操作
  • TadTR(TIP 2022)视频动作检测方法详解
  • Spring Boot与事务钩子函数:深度解析与应用实践
  • Python 如何使用 Redis 作为缓存
  • [Algorithm][贪心][可被三整除的最大和][距离相等的条形码][重构字符串]详细讲解
  • 如何利用phpstudy创建mysql数据库
  • FreeSWITCH 分机网关路由
  • 在 Ubuntu 下通过 Docker 部署 FTP 服务器
  • Flutter平台嵌入器
  • 【Linux】线程与线程安全知识总结
  • Python如何创建异步上下文管理器
  • 远程控制 远程桌面 teamview 源代码 定制 贴牌
  • 【万字长文】Word2Vec计算详解(一)CBOW模型