扑克牌中的顺子(网易2014.3.16笔试offerP226)
题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J~K为11,12,13,而大小王可以看成任意数字。(网易要求必须用C完成,可以用C库函数)
java代码:
//扑克牌中的顺子。通过测试
//随机5张牌,大小王代表任意数
import java.util.*;
public class PlayingCards{
public static void main(String[] args){
int data[]={5,7,8,9,0};
System.out.println(playingCards(data));
}
public static boolean playingCards(int data[]){
if(data==null||data.length<1){
return false;
}
int gap = 0;
int kings = 0 ;
Arrays.sort(data);
for(int i=0; i<data.length&&data[i]==0; i++){
kings++;
}
int j=kings;
while(j<data.length-1){
if(data[j]==data[j+1]){
return false;
}
gap+=data[j+1]-data[j]-1;//!!! +=
j++;
}
return (kings>=gap)?true:false;
}
}
c代码:
#include <iostream>
#include <stdio.h>
using namespace std;
//自己写的代码,大小王看成是0
int compare(const void *arg1, const void *arg2)
{
return *(int*)arg1-*(int*)arg2;
}
void isContinuous(int *array,int size)
{
if(array==NULL||size<)
{
cout<<"wrong input!"<<endl;
return;
}
qsort(array,size,sizeof(int),compare);//C的库函数,排序,时间复杂度O(nlogn)
int gap=;
int king=;
for(int i=;i<size;i++)
{
if(array[i]==){
king++;
}
else if(i<size-)
{
if(array[i]==array[i+])//有相同点数的时候,不可能是顺子
{
cout<<"not continuous!"<<endl;
return;
}
else
{
gap+=(array[i+]-array[i]-);
}
} }//for
if(gap>king)
{
cout<<"not continuous!"<<endl;
return;
}
else
{
cout<<"is continuous!"<<endl;
return;
}
}
int main(){
int array[]={,,,,};
isContinuous(array,sizeof(array)/sizeof(int));
}
扑克牌中的顺子(网易2014.3.16笔试offerP226)的更多相关文章
- 剑指 Offer 61. 扑克牌中的顺子 + 简单题 + 思维
剑指 Offer 61. 扑克牌中的顺子 Offer_61 题目描述 java代码 package com.walegarrett.offer; /** * @Author WaleGarrett * ...
- 剑指 Offer 61. 扑克牌中的顺子
剑指 Offer 61. 扑克牌中的顺子 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2-10为数字本身,A为1,J为11,Q为12,K为13,而大.小王为 0 ,可以看成任意 ...
- 剑指offer-第六章面试中的各项能力(扑克牌中的顺子)
//扑克牌的顺子 //题目:在一个扑克牌中随机的抽5张牌,看是不是顺子.大小王为0,A为1,J为11,Q为12,K为13.其他数字为自己本身. //思路:大小王可以代表任意一个数字,因此我们在看是不是 ...
- 【Offer】[61] 【扑克牌中的顺子】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2~10 为数字本身,A为1, J为11, Q为12,K为13,而大 ...
- 《剑指offer》面试题61. 扑克牌中的顺子
问题描述 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2-10为数字本身,A为1,J为11,Q为12,K为13,而大.小王为 0 ,可以看成任意数字.A 不能视为 14. 示例 ...
- 剑指offer——71扑克牌中的顺子
题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决 ...
- 约瑟夫环(CVTE、网易2014.3.16笔试题offerP228)
题目:0,1,2,……,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 法一:用环形链表模拟圆圈的经典算法(时间复杂度O(nm),空间复杂 ...
- 超体.特效中英字幕.Lucy.2014.BD1080P.X264.AAC.English&Mandarin.CHS-ENG
资源名称 其它信息 资源大小 BT下载 超体.Lucy.2014.BD-MP4-原创翻译中英双语字幕.mp4 seeders: / leechers: 511.15MB 下载 [飘域家园]移动迷宫.T ...
- Linux c字符串中不可打印字符转换成16进制
本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的 ...
随机推荐
- squid代理docker
http://www.dockone.io/article/1380https://www.cnblogs.com/lixiaolun/p/7449017.html 为docker设置代理 创建目录 ...
- flex布局使用方法简要汇总
近期因为使用inline-block,在项目部署后出现了一点小问题,几番解决未果,遂使用flex布局,于是借此机会对flex布局的用法做一个简要的汇总. 遇到的bug如下: 本想两个div使用inli ...
- css换行用省略号代替
css换行用省略号代替,也可以说是长标题的文章可以使用简单的CSS样式实现省略号控制显示. 一般的文字截断(适用于内联与块): .text-overflow{ display:block;/*内联对象 ...
- ansible自动化运维管理工具
1.Ansible介绍 1)Ansible:Ansible的核心程序 2)Host Inventory:(默认路径:/etc/ansible/hosts)记录了每一个由Ansible管理的主机信息,信 ...
- springboot基于方法级别注解事务的多数据源切换问题
springBoot多数据源配置 配置读数据源 @Component @ConfigurationProperties(prefix = "jdbc.read") @Propert ...
- excel常用快捷键和技巧
1. Ctrl+方向键,对单元格光标快速移动,移动到数据边缘(空格位置). 2. Ctrl+方向键,对单元格光标快速移动,移动到数据边缘(空格位置). 3. Ctrl+A,选择整张表. 4. Ctrl ...
- C++中的数据类模板
1,预备知识: 1,模板参数可以是数值型参数(非类型参数): 1,代码示例: template <typename T, int N> void func() { T a[N]; // 使 ...
- mysql整理-常用sql语句
一.常用sql show variables like 'character_set_client';#查询字符集 show databases;#列出所有的服务器上的数据库alter create ...
- svn下载项目的时候出现 Path to certificate
svn关联的时候出现这种情况,并且有svn的账号的时候,可以找setting中Version Control 中的Subversion中celar 一下即可,然后再重新下载就会让你重新输入用户名和密码 ...
- Mysql 事件记录 | performance_schema全方位介绍
Mysql 事件记录 | performance_schema全方位介绍 | 导语 在上一篇 初相识|performance_schema全方位介绍 中,我们详细介绍了performance_sche ...