打牌里面经常出现的5张牌,一个顺子带一对,给你五张牌,比如:1,2,2,2,3 或者 5,6,7,4,4 或者 2,4,3,5,5 或者 7,5,9,6,9 ,这种情况就符合一个顺子带一对,则返回 true;反之比如:1,3,4,6,6 或者 1,5,5,3,4 这种返回false,请你在不能使用任何数组原生方法,只能使用循环和赋值的情况下完成。

public class test7 {
//判断是否为一个顺子带一对的方法
public static boolean test(int [] a) {
int index = -1;//用来记录对子中第一个元素的下标
int [] sequence = new int [a.length-2];//用来存放顺子 //首先对数组进行排序,这里使用的选择排序
selectSort(a); //将数组从小到大排好序后,双重循环找到重复元素出现的下标
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length-1; j++) {
if(a[j+1]==a[j]) {
index = j;
}
}
} //根据下标,去除一个对子,将剩下的元素存放到一个新的数组,这个数组仍然是有序的
for (int i = 0,j=0; i < a.length; i++) {
if(i!=index&&i!=(index+1)) {
sequence[j] = a[i];
j++;
}
} //调用判断是否为顺子的方法
return isSequence(sequence);
} //选择排序的方法
public static void selectSort(int [] a) {
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length-1; j++) {
if(a[j+1]<a[j]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
} //判断是否为顺子的方法
public static boolean isSequence(int [] a) {
boolean flag = true;
for (int i = 0; i < a.length-1; i++) {
if(a[i+1]-a[i]!=1) {
flag = false;
break;
}
}
return flag;
} //主方法测试,成功
public static void main(String[] args) {
int [] a1 = {1,2,2,2,3,4};
int [] a2 = {5,6,7,4,4};
int [] a3 = {2,4,3,5,5};
int [] a4 = {7,5,9,6,9};
int [] a5 = {1,5,5,3,4};
int [] a6 = {2,1,3,4,6,6}; System.out.println(test(a1) == true? "顺子加对子":"非顺子加对子");
System.out.println(test(a2)== true? "顺子加对子":"非顺子加对子");
System.out.println(test(a3)== true? "顺子加对子":"非顺子加对子");
System.out.println(test(a4)== true? "顺子加对子":"非顺子加对子");
System.out.println(test(a5)== true? "顺子加对子":"非顺子加对子");
System.out.println(test(a6)== true? "顺子加对子":"非顺子加对子");
}
}

Java算法面试题 一个顺子带一对的更多相关文章

  1. Java算法面试题(史上最强、持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  2. java算法面试题:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个, 如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉的半个”。

    package com.swift; import java.util.Scanner; public class Hanzi_jiequ { public static void main(Stri ...

  3. java算法面试题:设计一个快速排序。双路快速排序,简单易于理解。

    package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Compar ...

  4. java算法面试题:有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数 按值的降序排序,如果值相同则按键值的字母顺序

    package com.swift; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; publi ...

  5. Java算法面试题:编写一个程序,将e:\neck目录下的所有.java文件复制到e:\jpg目录下,并将原来文件的扩展名从.java改为.jpg

    package com.swift; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; i ...

  6. java算法面试题:编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。

    package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...

  7. java算法面试题:排序都有哪几种方法?请列举。用JAVA实现一个快速排序。选择冒泡快速集合至少4种方法排序

    package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Compar ...

  8. java算法面试题:写一个Singleton出来

    package com.swift; public class Singleton { public static void main(String[] args) { /* * 写一个Singlet ...

  9. java算法面试题

    前言:线上面试题与大家分享,并记录求职道路的酸甜苦辣,特此留念. 李雷和韩梅梅坐前后排,上课想说话怕被老师发现,所以改为传小纸条.为了不被老师发现他们纸条上说的是啥,他们约定了如下方法传递信息:将26 ...

随机推荐

  1. 浏览器重绘(repaint)和回流(reflow)的那点事

    第一次听到重绘和回流是在鹅厂实习面试,那个时候对浏览器没有任何的概念,所以面试官说到这个问题的时候整个人都蒙圈了.下面是近期学习总结: 重绘(repaint)和回流(reflow) 文档初次加载时,H ...

  2. Flask05 cookie、类视图、方法视图、自己的404页面

    1 什么是cookie 就是网站存放到你浏览器中的一部分固定内容:当你下次访问我这个网站的时候,你会把之前我存放到你浏览器中的数据带回来给我        你要先登录(用户名.密码) ->   ...

  3. Storm在zookeeper上的目录结构

    storm操作zookeeper的主要函数都定义在命名空间backtype.storm.cluster中(即cluster.clj文件中). backtype.storm.cluster定义了两个重要 ...

  4. CCS中如何新建Platform以及调用

    新建Platform: Debug模式下,选择tools -> RTSC Tools -> Platform -> New,根据自己的需要选择Platform保存的路径以及对应的芯片 ...

  5. 【转】webservice

    一.WebService概念 Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它 ...

  6. cf831D(dp)

    题目链接: http://codeforces.com/contest/831/problem/D 题意: 有 n 个人和 k 把钥匙, 数组 a 为 n 个人的初始位置, 数组 b 为 k 把钥匙的 ...

  7. (转)System.Web.Mvc.UrlHelper的学习与使用

    转载自http://www.cnblogs.com/longgel/archive/2010/02/06/1664884.html 上一次学习了HtmlHelper帮助类,这次我们学习一下UrlHel ...

  8. Android Gradle 学习笔记(五):Gradle 任务 Task

    在之前的学习中,我们了解到Gradle的构建工作都是由Task组合完成的.本节我们就来介绍一下 Task - 任务. 一.多种方式创建任务 在Gradle中,我们可以有很多种方式来创建任务.为什么有这 ...

  9. Exadata 上关于SAS盘的小秘密

    案例概述 一个X3-2 的Exadata临时客户,ORACLE原厂工程师在进行onecommand初始化的过程中,执行到第6步,calibrate检测存储节点磁盘性能时报错,后续工作无法继续.而由于一 ...

  10. BZOJ 2462 [BeiJing2011]矩阵模板 矩阵哈希

    昨天卡了一天常数...然后发现吧$unsigned\space long\space long$改成$unsigned$就可以过了$qwq$ 先把每一行的前缀哈希求出,然后再竖着把每个前缀哈希值哈希起 ...