题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
用一个HashMap,把所有计算的和都存进去,如果出现多次,那么对应的value++;那么我们就可以知道每个值到此出现了多少次;可以使用递归来做
Map p = new HashMap();
public void getCount(int n,int he){
if(n==0){
if(p.get(he)!=null){
p.put(he,p.get(he)+1);
}else{
p.put(he,1);
}
return;
}
for(int i=1;i<=6;i++){
get(n-1,he+i);
}
}
递归往往很多重复计算。。。。
因为第n个位置是n-1,n-6位置的值晋升过来的,而第n位置也会晋升到n+1...n+6
所以可以使用下面的代码
int[] a1 = new int[5*6+1] ;
for (int i = 0; i < a1.length; i++) {
a1[i]=0;
}
for (int i = 1; i <=6; i++) {
a1[i]=1;
}
// {0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
int[] a2 = new int[5*6+1];// {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,0};
for (int i = 0; i < a2.length; i++) {
a2[i]=0;
}
for (int n = 2; n <= 4; n++) {//第2个到第4个筛子加入
for (int i = 1 ; i <= (6 * n); i++) {//加入几个筛子,就遍历到加入的最大的数(2个骰子的和最大为12)
a2[i] = 0; //记录计算过程
for (int j = 1; j <= 6; j++) {
if (i - j >= 1)
a2[i] += a1[i - j]; //a2[i]中记录了i-1到i-6的结果和
}
}
for (int i = 0; i < a2.length; i++) {
a1[i]=a2[i];
}
for (int i = 0; i < a1.length; i++) {
System.out.print(a1[i] + " ");
}
System.out.print("\n");
}
分享到:
相关推荐
《程序员面试题精选100题—何海涛》是一份详实的IT面试准备资料,由何海涛整理发布,旨在帮助应届毕业生和求职者准备面向微软、谷歌等知名科技公司的面试。此资料不仅收录了精选的100道面试题目,还提供了详细的解题...
本资源是程序员面试题精选100题,涵盖了算法、数据结构、操作系统、计算机网络、数据库等多个领域。今天,我们将深入分析其中的一道题目,即将二元查找树转换成排序的双向链表。 知识点一:二元查找树(Binary ...
对于程序员面试,理解并能熟练应用这类问题的解决方案,展示了解数据结构和算法的能力,是评估应聘者编程技能的重要标准。同时,能清晰解释和分析递归过程,也是考察逻辑思维和问题解决能力的关键。
具体来说,文档中详细讨论了一个在程序员面试中常见的算法问题:如何将二元查找树(Binary Search Tree,BST)转换为一个排序的双向链表。这是一个涉及树的遍历、指针操作、递归思维的经典算法问题。下面将详细介绍...
------------------------------------- java程序员早期面试题汇总 BAT经典面试题汇总.pdf Java常考面试题.pdf java面试题(题库全)....程序员面试题精选100题.pdf ... -------------------------------------
【程序员面试题精选100题【数据结构 /算法】】是针对求职程序员精心挑选的一系列面试题目,涵盖了数据结构和算法两大核心领域。这些题目旨在帮助应聘者提高面试技巧,提升对技术的理解,以便在激烈的就业市场竞争中...
程序员面试题精选100题.rar
程序员面试题精选100题 本文档概述了程序员面试题精选100题,涵盖了C++面试题和笔试题,其中有一道典型的题目是将二元查找树转换成排序的双向链表。 知识点一:二元查找树(Binary Search Tree) * 二元查找树是...
本题要求将二叉查找树转化为一个排序的双向链表,这一转换不仅考验应聘者对二叉树特性的理解,同时也考察了其对链表操作的熟练程度。 #### 1.2 题目描述 题目要求输入一棵二叉查找树,并将其转换为一个排序的双向...
程序员面试题精选 C++ 算法 微软 google 程序员面试题精选 C++ 算法 微软 google
在IT行业中,数据结构与算法是程序员面试中的常见考点。二元查找树(Binary Search Tree, BST)是一种特殊的二叉树结构,它的每个节点具有以下特性:左子树上的所有节点值均小于它的根节点值;右子树上的所有节点值均...
简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选...
例如,本文提到的《程序员面试题精选100题》就旨在为即将进入职场的程序员提供一系列经典的技术面试题目,帮助他们系统地复习相关知识和技术要点,从而提升面试表现。 #### 4. 具体案例分析:将二叉查找树转化为...