- 浏览: 778456 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
萨琳娜啊:
Java读源码之Netty深入剖析网盘地址:https://p ...
Netty源码学习-FileRegion -
飞天奔月:
写得有趣 ^_^
那一年你定义了一个接口 -
GoldRoger:
第二个方法很好
java-判断一个自然数是否是某个数的平方。当然不能使用开方运算 -
bylijinnan:
<script>alert("close ...
自己动手实现Java Validation -
paul920531:
39行有个bug:"int j=new Random ...
java-蓄水池抽样-要求从N个元素中随机的抽取k个元素,其中N无法确定
package com.ljn.base; import java.util.Arrays; import java.util.Random; public class ContinuousPoker { /** * Q67 扑克牌的顺子 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。 * 2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。 */ private static final int[] poker = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, }; private static final int MAX = 5; private static final int MAX_VAL = 13; public static void main(String[] args) { // test 1.Specific data for test. int[][] testData = { { 7, 8, 0, 10, 11 }, { 7, 8, 0, 0, 11 }, { 8, 9, 9, 10, 11 }, { 7, 8, 9, 10, 11 }, { 0, 8, 0, 10, 11 }, }; for (int[] pokerSelected : testData) { test(pokerSelected); } // test 2.Imitate the real situation:Select 5 poker randomly. int[] pokerSelected = randomSelect(poker, MAX); test(pokerSelected); } public static void test(int[] pokerSelected) { System.out.println(Arrays.toString(pokerSelected)); boolean continuous = isContinuous(pokerSelected); System.out.println("continuous is " + continuous); } /* * 1)确认5张牌中除了0,其余数字没有重复的(可以用表统计的方法); * 2) * 满足这样的逻辑:(max,min分别代表5张牌中的除0以外的最大值最小值) 如果没有0,则max-min=4,则为顺子,否则不是 * 如果有一个0,则max-min=4或者3,则为顺子,否则不是 如果有两个0,则max-min=4或者3或者2,则为顺子,否则不是 * * 最大值和最小值在第1步中就可以获得 */ public static boolean isContinuous(int[] x) { int[] existTimes = new int[MAX_VAL + 1]; boolean result = false; int len = x.length; int max = x[0], min = x[0]; int zeroCount = 0; for (int i = 0; i < len; i++) { existTimes[x[i]]++;// record the number of occurrences if (x[i] == 0) { zeroCount++; } else { if (x[i] > max || max == 0) max = x[i]; if (x[i] < min || min == 0) min = x[i]; } } for (int i = 1; i < MAX_VAL; i++) {// i starts from 1,exclude '0' if (existTimes[i] > 1) {// duplicate non-zero element return false; } } if (zeroCount == 0) { if (max - min == MAX - 1) result = true; } else if (zeroCount == 1) { if (max - min == MAX - 1 || max - min == MAX - 2) result = true; } else if (zeroCount == 2) { if (max - min == MAX - 1 || max - min == MAX - 2 || max - min == MAX - 3) result = true; } return result; } /* * @param count how many elements you want to pick * * @param data the data array */ public static int[] randomSelect(int[] data, int count) { int[] result = new int[count]; int len = data.length; for (int i = 0; i < count; i++) { Random random = new Random(); int pos = random.nextInt(len); result[i] = data[pos];// pick out the element data[pos] = data[len - 1];// and replace it with the last element len--; } return result; } }
评论
3 楼
bylijinnan
2013-04-09
aprilfore 写道
初始化min时若值为0,则后面if(x[i]<min)min=x[i];操作无效
确实是个bug
多谢指正 改过来了
2 楼
aprilfore
2013-04-08
初始化min时若值为0,则后面if(x[i]<min)min=x[i];操作无效
1 楼
aprilfore
2013-04-08
那个测试样例是{0,8,0,10,11},貌似返回false啊
发表评论
-
百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
2012-12-21 18:17 4051import java.util.Arrays; ... -
java-56-动态规划-最长公共子序列
2012-03-12 00:14 2930http://zhedahht.blog.163.com/bl ... -
java-60-在O(1)时间删除链表结点
2012-03-12 00:12 1960public class DeleteNode_O1_ ... -
java-57-用两个栈实现队列&&用两个队列实现一个栈
2012-03-11 11:25 10754import java.util.ArrayList; ... -
java-26-左旋转字符串
2012-03-11 11:23 3049public class LeftRotateString ... -
java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶
2012-03-08 20:41 4948import java.util.Stack; pu ... -
java-54- 调整数组顺序使奇数位于偶数前面
2012-03-06 21:09 3663import java.util.Arrays; imp ... -
java-63-在字符串中删除特定的字符
2012-03-05 16:47 2294public class DeleteSpecific ... -
java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132
2012-03-05 10:38 6155import java.util.Arrays; imp ... -
java-69-旋转数组的最小元素。把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素
2012-02-29 10:30 3504public class MinOfShiftedAr ... -
java-67- n个骰子的点数。 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
2012-02-28 00:00 6394public class ProbabilityOfD ... -
java-71-数值的整数次方.实现函数double Power(double base, int exponent),求base的exponent次方
2012-02-27 21:43 3005public class Power { /* ... -
java-73-输入一个字符串,输出该字符串中对称的子字符串的最大长度
2012-02-27 16:14 5786public class LongestSymmtri ... -
java-75-二叉树两结点的最低共同父结点
2012-02-27 11:27 1518import java.util.LinkedList; ... -
java-74-数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字
2012-02-11 10:56 2470public class OcuppyMoreThan ... -
java-17-在一个字符串中找到第一个只出现一次的字符
2012-02-11 10:04 5837public class FirstShowOnlyO ... -
java-50-输入两棵二叉树A和B,判断树B是不是A的子结构
2012-02-10 23:26 1947思路来自:http://zhedahht.blog.163.c ... -
java-51-输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
2012-02-10 10:55 4245public class PrintMatrixClo ... -
java-61-在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差. 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5,
2012-02-09 23:08 2186思路来自:http://zhedahht. ... -
java-37.有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接
2012-01-27 22:46 2298public class MaxCatenate { ...
相关推荐
php代码-从扑克牌中随机抽取5张牌,判断是不是一个顺子
扑克牌的顺子.md
java基础面试题扑克牌顺子本资源系百度网盘分享链接
如果i与i+1位置的元素相差恰好为1,那么说明此时恰为递增,故不需要用尝试用0来填充,如果否则记录下此时二者之间需要用多少张牌填充,即为$nums[i + 1]
61. 扑克牌顺子题目链接题目描述五张牌,其中大小鬼为癞子,牌面为 0。判断这五张牌是否能组成顺子。解题思路// 统计癞子数量// 使用癞子去补全不连续的顺子。
61. 扑克牌顺子题目链接题目描述五张牌,其中大小鬼为癞子,牌面为 0。判断这五张牌是否能组成顺子。解题思路// 统计癞子数量// 使用癞子去补全不连续的顺子。
其中 2~10 为数字本身,A 用 1 表示,J 用 11 表示,Q 用 12 表示,K 用 13 表示,大小王用 0 表示,且大小王可以替换任意数字。解题思路
1.3.6. 在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b 52 1.3.7. n 个数字(0,1,…,n-1)形成一个圆圈 .................................................. 53 1.3.8. 定义 Fibonacci ...
Leetcode 面试题61. 扑克牌中的顺子问题描述面试题61. 扑克牌中的顺子 - 力扣(LeetCode)算法解法1: 使用set排序。解法1:实现解法1
题目:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!...
js代码-扑克牌中的顺子-力扣61
扑克核心源码,所有video poker牌型和玩法,包括牌型(对子,两对,三张,葫芦三带二,四带一,顺子,同花,同花顺,皇家同花顺,天降皇家同花顺,天生皇家同花顺,4 2s thru 4s,JACKS OR BETTER)支持通配牌,赖子...
A 不能视为示例 1:输入: [1,2,3,4,5]示例 2:输入: [0,0,1,2,5]限制:数组长度为 5数组的数取值为 [0, 13] .bool is
不要急于提交,自己测试几个用例避免错误。 4. 良好的代码风格。命名规则,缩进对齐习惯。能够单元测试用例。 5. 项目介绍原则STAR:situation、task、action、result 6. 所需的素质:扎实的基础知识、能写高质量的代码...
德州扑克,牌面大小比较基础Demo,无基础...一手牌有5张。根据花色和数字的不同,其大小按照以下规则决定。 满足下面规则的手牌会大于满足上面规则的手牌。 同花顺>铁支>葫芦>同花>顺子>三条>两对>对子>散牌
示例 1:输入: [1,2,3,4,5]示例 2:输入: [0,0,1,2,5]限制:数组长度为 5数组的数取值为 [0, 13] .解析满足两个条件2、除0外