原文:《剑指offer》 面试题43 n个骰子的点数 (java)

引言:写这篇文章的初衷只是想做个笔记,因为这道题代码量有点大,有点抽象,而书上并没有详细的注释。为了加深印象和便于下次复习,做个记录。 原题:把n个骰子扔到地上,所有骰子朝上一面的点数之后为s. 输入n,打印出s所有可能的值出现的概率。 每个骰子 个面,点数从 到 解法一:基于递归,时间效率不高 递归的思想一般是分而治之,把n个骰子分为第一个和剩下的n 个。先计算第一个骰子每个点数出现的次数,再计 ...

2017-05-23 22:30 1 3223 推荐指数:

查看详情

Offer面试题43n骰子点数

题目: 把n骰子仍在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 思路: s可能出现的值的范围为:n--6*n 1、全排列 回溯法枚举n骰子(6面)的全排列,然后计算每一次排列所有值的和,并统计该和的出现的次数,除以6^n(全排列的全部可能性 ...

Thu Jul 30 00:10:00 CST 2015 0 2862
offer(第二版)》面试题60——n骰子点数

一.题目描述   把n骰子仍在地上,所有的骰子朝上的一面的点数之和为s,输入n,打印出s所有可能的值出现的概率。 二.题解   《offer》上给出的两种方法,尤其是代码,晦涩难懂且没有注释。而n骰子的问题实质就是一个动态规划问题,所以文本主要从动态规划的角度来求解这个问题 ...

Sat Jul 28 04:05:00 CST 2018 2 1581
Javaoffer(60) n骰子点数

本文参考自《offer》一书,代码采用Java语言。 更多:《OfferJava实现合集 题目   把n骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 思路   对于n骰子,要计算出每种点数和的概率,我们知道投掷n骰子 ...

Fri Nov 16 18:25:00 CST 2018 0 1204
求1~n整数中1出现的次数(《offer面试题43)

题意:   给定一个整数n,求1~nn个整数中十进制表示中1出现的次数。 思路:   方法1:最直观的是,对于1~n中的每个整数,分别判断n中的1的个数,具体见《offer》。这种方法的时间复杂度为O(N*logN),当N比较大的时候,一般会超时。   方法2:这种类别的题目 ...

Thu Apr 26 04:00:00 CST 2018 0 3597
面试题043】n骰子点数

面试题043】n骰子点数 题目: 把n骰子扔在地上,所有骰子朝上一面的点数之和为s, 输入n,打印出s的所有可能的值出现的概率。 n骰子的总点数,最小为n,最大为6n,根据排列组合的知识 ...

Sun Jun 01 22:26:00 CST 2014 0 2699
Offer》各面试题总结

目录 前言 面试题4 二维数组的查找 一维二分法 二维查找法 面试题5:替换空格 伪新建数组法 从后往前法 面试题6:从尾到头打印链表 面试题7:重建二叉树 题解 ...

Sat Feb 01 08:29:00 CST 2020 0 689
Offer面试题:11.打印1到最大的n位数

一、题目:打印1到最大的n位数 题目:输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。 二、不同的解法 2.1 不假思索的解法   最容易想到的办法是先求出最大的n位数,然后用一个循环从1开始逐个打印 ...

Thu Aug 27 08:46:00 CST 2015 0 2577
offer面试题32----从1到n整数中1出现的次数

题目:输入一个整数n,求从1到nn个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。 解法一:不考虑时间效率的解法(略) ps:我感觉是个程序员都能想到这第一种解法,时间复杂度O(nlogn)。这个方法没有什么意义 ...

Mon May 15 06:01:00 CST 2017 2 7004
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM