扑克牌顺子 44

转换为看一个排序数组中0多还是间隔的数字多的问题

?
?

先排序

?
?

然后遍历统计数组中0的个数

?
?

可以把等于0放到for循环条件里

?
?

减少遍历次数

?
?

然后从第一个不为0的index开始,比较相邻两个之间的差距

?
?

然后实现往后移index1=index2,index2++
?

package isContinuous44;

?
?

import java.util.Arrays;

?
?

public class IsContinuous44 {

static boolean isContinuous(int[] array){

Arrays.sort(array);

int numOf0=0;

int numOfDif=0;

//????????????????for(int i=0;i<array.length;i++){

//????????????????????????if(array[i]==0) numOf0++;

//????????????????}

//improve

for(int i=0;i<array.length&&array[i]==0;i++){

numOf0++;

}

int index1=numOf0;

int index2=index1+1;

while (index2<array.length) {

if (array[index1]==array[index2]) {

return false;

}

numOfDif+=array[index2]-array[index1]-1;

index1=index2;

index2++;

}

return (numOf0>numOfDif?true:false);

?
?

}

public static void main(String[] args) {

// TODO Auto-generated method stub

int[] array={0,4,6,0,7,8,10};

System.out.println(isContinuous(array));

}

?
?

}

时间: 2024-08-09 14:48:40

扑克牌顺子 44的相关文章

剑指Offer解题报告(Java版)——扑克牌顺子 44

? ? 分析问题 ? ? 这个题目的关键点在于大小王可以看作任意的数字,那么我们就把这个任意的数字看作0也未尝不可,因为扑克牌中1-15都有数字,所以可以用0代表大小王 ? ? 这样我们就将问题转换成了从0-15中抽5个数字,看是否连续的问题,由于0可以看作任意数字,所以我们可以用0去补那些空缺的数,比如0,1,3也算是连续的 ? ? 要记住关键点还是这个任意数字上,考虑一个问题,就是如果这5个数中0的个数大于等于空缺数,那么坑一定能补上,所以一定是连续的,如果0的个数小于空缺数,那么0的个数不

笔试算法题(21):将stack内外颠倒 &amp; 判断扑克牌顺子

出题:要求用递归将一个栈结构的元素内外颠倒: 分析: 本题再次说明系统栈是程序员最好的帮手,但递归度较高所以时间复杂度较大,可以使用空间换时间的方法(额外数组保存栈元素,然后逆向压入): 第一层递归(清空栈元素,并使用系统栈保存):[1,2,3,4,5],栈顶元素为1,将1弹出之后,递归处理[2,3,4,5]: 第二层递归(将栈顶元素插入到栈底,同样使用系统栈保存):当[2,3,4,5]已经逆序之后,需要将1插入到栈底,所以将1作为参数传递到递归调用中,之后递归处理2和[3,4,5]: 解题:

扑克牌顺子(剑指offer)

扑克牌顺子 参与人数:817时间限制:1秒空间限制:32768K 通过比例:26.57% 最佳记录:0 ms|0K(来自  淩亂) 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!"红心A,黑桃3,小王,大王,方片5","Oh My God!"不是顺子.....LL不高兴了,他想了想,决定大\

剑指offer系列源码-扑克牌顺子

题目1355:扑克牌顺子 时间限制:2 秒内存限制:32 兆特殊判题:否提交:1415解决:398 题目描述: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!"红心A,黑桃3,小王,大王,方片5","Oh My God!"不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A

【剑指offer】扑克牌顺子

题目链接:扑克牌顺子 题意:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13.上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“So

【剑指Offer】44、扑克牌顺子

题目描述: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13.上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“So Lucky!”

剑指offer45:扑克牌顺子

1 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13.上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“So Lucky!

扑克牌顺子

题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!"红心A,黑桃3,小王,大王,方片5","Oh My God!"不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13.上面的5张牌就可以变成"1,2,3,4,5"

剑指offer:扑克牌顺子

http://wiki.jikexueyuan.com/project/for-offer/question-forty-four.html 题目:从扑克牌中随机抽 5 张牌,判断是不是一个顺子, 即这 5 张牌是不是连续的.2-10 为数字本身, A 为 1. J 为 11.Q 为 12. 为 13.小王可以看成任意数字. 首先把数组排序, 记录非0的最小值和最大值, 如果连起来则需要满足: 1)数组中不能有重复值(没有对子) 2)max-min<=4 public static boolea