社区
Web 开发
帖子详情
一道很有趣的java题目(让我们的大脑思考起来)
王小明912
2010-06-04 01:40:38
在网上看到一道有趣的Java题目,具体要求是这样的:
有n张扑克牌,每张牌的取值范围是:2,3,4,5,6,7,8,9,10,J,Q,K,A。在这n张牌中找出顺子(5张及5张以上的连续的牌),并将这些顺子打印出来。
大家赶紧开动一下你们的大脑,谈谈你们的思路和想法。
...全文
969
78
打赏
收藏
一道很有趣的java题目(让我们的大脑思考起来)
在网上看到一道有趣的Java题目,具体要求是这样的: 有n张扑克牌,每张牌的取值范围是:2,3,4,5,6,7,8,9,10,J,Q,K,A。在这n张牌中找出顺子(5张及5张以上的连续的牌),并将这些顺子打印出来。 大家赶紧开动一下你们的大脑,谈谈你们的思路和想法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
78 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lihuan1106
2010-07-20
打赏
举报
回复
路过....学习!!
xyz451
2010-07-20
打赏
举报
回复
1,随机找出一张存在满足条件的牌
2,根据可以步骤1的结果推算出符合条件的2组结果
3,根据步骤2遍历原数组,根据第二章牌排除一组。纪录相关信息。
cwj01
2010-07-20
打赏
举报
回复
看了前面几十楼的回复,只是感觉SB真多,好在后面有几位达人,不然,我就觉得,CSDN上的都是乌合之众了
haoyuan0815
2010-06-26
打赏
举报
回复
受教了!谢谢楼上这些牛人!回家实验一把!
woi_life
2010-06-26
打赏
举报
回复
[Quote=引用 71 楼 vsun668899 的回复:]
我觉得大家好像是理解偏了呢,题意不应该是给一个随即的n张牌,然后从目标集里面找出连的5张以上的么?所以我觉得首先得随即生成n张牌从n张随即的牌里面挑出连续的牌数,我的大体思路是这样的你们写代码去吧:
step1.遍历一边n张牌,找出2-A的每张牌的张数。存到一个数组中
step2.先看7的张数和10的张数,先按其中较小的那一个的个数找个数遍,以它为中心往两边尽量的延伸,延伸到的张数减1,直到遇……
[/Quote]
我也感觉是这样,既然说了是扑克牌,那必然会有黑、红、梅、方四个花色,所以这方面是不是也要考虑进去呢?……
gwnszbd123
2010-06-26
打赏
举报
回复
范围有点广啊,不过楼上的都很牛,mark!
dragon45
2010-06-26
打赏
举报
回复
[Quote=引用 71 楼 vsun668899 的回复:]
我觉得大家好像是理解偏了呢,题意不应该是给一个随即的n张牌,然后从目标集里面找出连的5张以上的么?所以我觉得首先得随即生成n张牌从n张随即的牌里面挑出连续的牌数,我的大体思路是这样的你们写代码去吧:
step1.遍历一边n张牌,找出2-A的每张牌的张数。存到一个数组中
step2.先看7的张数和10的张数,先按其中较小的那一个的个数找个数遍,以它为中心往两边尽量的延伸,延伸到的张数减1,直到遇……
[/Quote]
不谋而合啊~哈哈
vsun668899
2010-06-25
打赏
举报
回复
我觉得大家好像是理解偏了呢,题意不应该是给一个随即的n张牌,然后从目标集里面找出连的5张以上的么?所以我觉得首先得随即生成n张牌从n张随即的牌里面挑出连续的牌数,我的大体思路是这样的你们写代码去吧:
step1.遍历一边n张牌,找出2-A的每张牌的张数。存到一个数组中
step2.先看7的张数和10的张数,先按其中较小的那一个的个数找个数遍,以它为中心往两边尽量的延伸,延伸到的张数减1,直到遇到零为止,再按另一个找,找完结束
amdgaming
2010-06-25
打赏
举报
回复
有空再来看看
dragon45
2010-06-25
打赏
举报
回复
我觉得首先是统计N张牌中,2,3,4,5,6,7,8,9,10,J,Q,K,A得张数。然后从张数最小(假设为M)的开始向两边排序,如果存在连续5张以上的就打印出(同时牌的张数都减去M),直到有牌的张数变为0。
我的思路,具体的算法希望高手给出。
boooch
2010-06-25
打赏
举报
回复
我觉得楼主的意思不是要对这些取排列组合,而且对N个元素,元素的取值范围是2,3,...K,A,这N个既定元素吧。
swit1983
2010-06-25
打赏
举报
回复
我觉得应该考虑到随机性,每次随机从数组中抽一个数。随机抽5次,然后判断是否连续,不连续就继续迭代。否则打印。
kdflove
2010-06-25
打赏
举报
回复
64楼什么意思?没了解
alidion
2010-06-25
打赏
举报
回复
题意不是这样的吧
doti_
2010-06-25
打赏
举报
回复
有N张牌,当然就有2张或者3张一样的牌。。
ycdzl
2010-06-25
打赏
举报
回复
public static void main(String[] args) {
String str = "2,3,4,5,6,7,8,9,10,J,Q,K,A";
String[] pai=str.split(",");
long start=System.currentTimeMillis();
for(int i=-1;i<pai.length;i++){
if(i==-1){
for(int j=4;j<=pai.length-1;j++){
System.out.print(pai[12]+" ");
for(int k=0;k<j;k++){
System.out.print(pai[k]+" ");
}
System.out.println();
}
}else{
for(int j=5;j<=pai.length-i;j++){
for(int k=0;k<j;k++){
System.out.print(pai[i+k]+" ");
}
System.out.println();
}
}
}
System.out.println(System.currentTimeMillis()-start+"毫秒");
}
A 2 3 4 5
A 2 3 4 5 6
A 2 3 4 5 6 7
A 2 3 4 5 6 7 8
A 2 3 4 5 6 7 8 9
A 2 3 4 5 6 7 8 9 10
A 2 3 4 5 6 7 8 9 10 J
A 2 3 4 5 6 7 8 9 10 J Q
A 2 3 4 5 6 7 8 9 10 J Q K
2 3 4 5 6
2 3 4 5 6 7
2 3 4 5 6 7 8
2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 10
2 3 4 5 6 7 8 9 10 J
2 3 4 5 6 7 8 9 10 J Q
2 3 4 5 6 7 8 9 10 J Q K
2 3 4 5 6 7 8 9 10 J Q K A
3 4 5 6 7
3 4 5 6 7 8
3 4 5 6 7 8 9
3 4 5 6 7 8 9 10
3 4 5 6 7 8 9 10 J
3 4 5 6 7 8 9 10 J Q
3 4 5 6 7 8 9 10 J Q K
3 4 5 6 7 8 9 10 J Q K A
4 5 6 7 8
4 5 6 7 8 9
4 5 6 7 8 9 10
4 5 6 7 8 9 10 J
4 5 6 7 8 9 10 J Q
4 5 6 7 8 9 10 J Q K
4 5 6 7 8 9 10 J Q K A
5 6 7 8 9
5 6 7 8 9 10
5 6 7 8 9 10 J
5 6 7 8 9 10 J Q
5 6 7 8 9 10 J Q K
5 6 7 8 9 10 J Q K A
6 7 8 9 10
6 7 8 9 10 J
6 7 8 9 10 J Q
6 7 8 9 10 J Q K
6 7 8 9 10 J Q K A
7 8 9 10 J
7 8 9 10 J Q
7 8 9 10 J Q K
7 8 9 10 J Q K A
8 9 10 J Q
8 9 10 J Q K
8 9 10 J Q K A
9 10 J Q K
9 10 J Q K A
10 J Q K A
15毫秒
aoli444
2010-06-25
打赏
举报
回复
有n张扑克牌,每张牌的取值范围是:2,3,4,5,6,7,8,9,10,J,Q,K,A。在这n张牌中找出顺子(5张及5张以上的连续的牌),并将这些顺子打印出来。
我觉得各位应该把题目的原意理解清楚。
n张牌是随机取的 ,不一定是排序好的,已不一定是连续的
ycdzl
2010-06-25
打赏
举报
回复
怎么没有 A2345 A23456 。。。。。
head_java_web
2010-06-25
打赏
举报
回复
wangcfxbg
也不错
gamer1
2010-06-25
打赏
举报
回复
题本身没有什么难度,建议大家吧运行时间也贴出来吧。
加载更多回复(58)
由浅入深学
Java
本课程名为《由浅入深学
Java
》,是专门面向零基础学员量身打造的一门课程!其目的是帮助有志于成为
Java
工程师的学员迈出实现理想的第一步--跨过
Java
语法这个门槛。课程共有三个板块,分别是《零基础学
Java
》、《零基础学
Java
习题精讲》和《
Java
高级语法》。《零基础学
Java
》的目标是带领零基础的学员学会
Java
语言的最基本语法,达到快速入门的目的。该课程主要讲解
Java
基本常识、
Java
基础语法、面向对象思想及相关语法细节,以及异常的概念和处理方法。学员掌握了基础语法之后,紧接着做的事情就是夯实理论基础以及提高实战能力。第二板块《零基础学
Java
习题精讲》就是为此目标而精心设计的。该课程分为两部分,分别是《选择问答篇》和《编程篇》。《选择问答篇》中精选了很多有代表性的
题目
,帮助学员进一步理解
Java
语法细节,并扫除那些掌握不扎实的知识漏洞。《编程篇》则精选了几十个经典编程题,帮助学员提升逻辑思维能力和解决问题的实战能力!掌握了
Java
基础语法之后,还要继续提升战斗力!第三板块《
Java
高级语法》已经来到了你的面前!这门课程是
Java
语法的进阶课程。主要讲解
Java
语言的高级语法:如位运算符、内部类、泛型、Lambda表达式等知识点。认真学习完本专题的三门课程,你的
Java
语法就能达到过关的水平,后续在学习
Java
API、
Java
WEB、Android开发、第三方框架的使用等高级课程的时候,你将不会再有“语法”问题!整个课程选用当前行业中使用最广泛的
Java
17为开发环境进行讲解。效果好不好,学了就知道!
java
有意思面试题_
一道
有趣
的
Java
面试题
一个鸡蛋从第N层及以上的楼层落下来会摔破?现在很多大型IT企业在面试时都喜欢问一些智力相关的
题目
,虽然智力面试题在面试笔试中占的比例不大,但很多时候,面试环节中智力题往往会成为我们拿offer的最大拦路虎。因为有些面试官认为通过智力题可以考查你的思维能力、抽象问题的能力。下面是
一道
很经典的智力型面试题,是一位
Java
老师的朋友去BAT面试中亲身见识过的
一道
题。各位来体验一下,看看自己的
大脑
是不是好...
掌握P5级
Java
面试技巧
HashMap底层原理,扩容机制,jdk8以后会使用红黑树优化?红黑树和二叉平衡树的区别,红黑树和B树,B+树的区别,Mysql二大引擎索引底层实现,HashMap在多线程环境中为何出错?ConcurrentHashMap底层实现,CAS,原子引用,ABA问题,volatile,如何解决HashMap出现的OOM问题?(WeakHashMap) HashMap是Map的一个实现类,它是以键值对存储数据的,Key-Value都是Map.Entry中的属性。当我们向HashMap中存放一个元素(k1,v1)
只要你要,只要我有!阿里技术官整理出来的
Java
面试+Xmind+学习视频全部开源分享!
写在前面 作为一名
Java
开发者,职业生涯规划使很重要的因素,一年、三年、五年、十年都是
一道
坎,如果一直温水煮青蛙,不用想,是一定不会有好的发展和去处的,当然,大厂也会与你无缘。程序员的技术栈的储备是很重要的,不能只有理论知识,要理论与实践相结合,每个版块都需要有相应的系统的的知识体系,都是不能放下的 。 而且近几年来,
Java
开发的职位竞争也相当的激烈,毕竟这个职位也是不用在乎出身,是很多人的福音,靠自己的努力就可以拿到很高的薪资,从此走向赢娶白富美之路的,哈哈 O(∩_∩)O!(皮一下)不过最近的金
【算法】三道算法题两道难度中等
一道
困难
上一篇是算法
题目
接下来继续学习下算法题,用
Java
解答,可能更能激发一下
大脑
思考
。
Web 开发
81,091
社区成员
341,718
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章