题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J~K为11,12,13,而大小王可以看成任意数字。(网易要求必须用C完成,可以用C库函数)

java代码:

  1. //扑克牌中的顺子。通过测试
  2. //随机5张牌,大小王代表任意数
  3. import java.util.*;
  4. public class PlayingCards{
  5. public static void main(String[] args){
  6. int data[]={5,7,8,9,0};
  7. System.out.println(playingCards(data));
  8. }
  9. public static boolean playingCards(int data[]){
  10. if(data==null||data.length<1){
  11. return false;
  12. }
  13. int gap = 0;
  14. int kings = 0 ;
  15. Arrays.sort(data);
  16. for(int i=0; i<data.length&&data[i]==0; i++){
  17. kings++;
  18. }
  19. int j=kings;
  20. while(j<data.length-1){
  21. if(data[j]==data[j+1]){
  22. return false;
  23. }
  24. gap+=data[j+1]-data[j]-1;//!!! +=
  25. j++;
  26. }
  27. return (kings>=gap)?true:false;
  28. }
  29. }

c代码:

  1. #include <iostream>
  2. #include <stdio.h>
  3. using namespace std;
  4. //自己写的代码,大小王看成是0
  5. int compare(const void *arg1, const void *arg2)
  6. {
  7. return *(int*)arg1-*(int*)arg2;
  8. }
  9. void isContinuous(int *array,int size)
  10. {
  11. if(array==NULL||size<)
  12. {
  13. cout<<"wrong input!"<<endl;
  14. return;
  15. }
  16. qsort(array,size,sizeof(int),compare);//C的库函数,排序,时间复杂度O(nlogn)
  17. int gap=;
  18. int king=;
  19. for(int i=;i<size;i++)
  20. {
  21. if(array[i]==){
  22. king++;
  23. }
  24. else if(i<size-)
  25. {
  26. if(array[i]==array[i+])//有相同点数的时候,不可能是顺子
  27. {
  28. cout<<"not continuous!"<<endl;
  29. return;
  30. }
  31. else
  32. {
  33. gap+=(array[i+]-array[i]-);
  34. }
  35. }
  36.  
  37. }//for
  38. if(gap>king)
  39. {
  40. cout<<"not continuous!"<<endl;
  41. return;
  42. }
  43. else
  44. {
  45. cout<<"is continuous!"<<endl;
  46. return;
  47. }
  48. }
  49. int main(){
  50. int array[]={,,,,};
  51. isContinuous(array,sizeof(array)/sizeof(int));
  52. }

扑克牌中的顺子(网易2014.3.16笔试offerP226)的更多相关文章

  1. 剑指 Offer 61. 扑克牌中的顺子 + 简单题 + 思维

    剑指 Offer 61. 扑克牌中的顺子 Offer_61 题目描述 java代码 package com.walegarrett.offer; /** * @Author WaleGarrett * ...

  2. 剑指 Offer 61. 扑克牌中的顺子

    剑指 Offer 61. 扑克牌中的顺子 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2-10为数字本身,A为1,J为11,Q为12,K为13,而大.小王为 0 ,可以看成任意 ...

  3. 剑指offer-第六章面试中的各项能力(扑克牌中的顺子)

    //扑克牌的顺子 //题目:在一个扑克牌中随机的抽5张牌,看是不是顺子.大小王为0,A为1,J为11,Q为12,K为13.其他数字为自己本身. //思路:大小王可以代表任意一个数字,因此我们在看是不是 ...

  4. 【Offer】[61] 【扑克牌中的顺子】

    题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2~10 为数字本身,A为1, J为11, Q为12,K为13,而大 ...

  5. 《剑指offer》面试题61. 扑克牌中的顺子

    问题描述 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2-10为数字本身,A为1,J为11,Q为12,K为13,而大.小王为 0 ,可以看成任意数字.A 不能视为 14. 示例 ...

  6. 剑指offer——71扑克牌中的顺子

    题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决 ...

  7. 约瑟夫环(CVTE、网易2014.3.16笔试题offerP228)

    题目:0,1,2,……,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 法一:用环形链表模拟圆圈的经典算法(时间复杂度O(nm),空间复杂 ...

  8. 超体.特效中英字幕.Lucy.2014.BD1080P.X264.AAC.English&Mandarin.CHS-ENG

    资源名称 其它信息 资源大小 BT下载 超体.Lucy.2014.BD-MP4-原创翻译中英双语字幕.mp4 seeders: / leechers: 511.15MB 下载 [飘域家园]移动迷宫.T ...

  9. Linux c字符串中不可打印字符转换成16进制

    本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的 ...

随机推荐

  1. Web前端学习书籍

    <Head First HTML5 Programming> 介绍如何利用HTML5来搭建Web应用,包含JavaScript内容. <CSS禅意花园>: 不是入门的书籍,对C ...

  2. java:Topic About(猴子吃桃,快速排序,选择排序,插入排序)

    1. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只 ...

  3. react native配置ip真机测试

    首先保证真机和pc 保证在同一个网络下 根据红色错误判断自己是什么情况 例如 提示无法连接远程服务,说明你的不在同一网络下 提示500 可能配置的ip不对 设置ip方法 摇晃手机 ---> De ...

  4. 【Ruby on Rails 学习三】Ruby 基本数据类型(类、类的实例、对象)

    数字.文本.范围.符合.True.False.Nil 1为什么是一个类的对象,使用methods方法可以查看一个对象的所有函数(方法) $ irb irb(main)::> => irb( ...

  5. 深入理解java:4.3. 框架编程之MyBatis原理深入解析

    1 引言 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架.再而论述Mybatis作为一个数据持久层框架本身有待改进之处. 2 ...

  6. 软件设计分为结构化设计(SD)

    软件设计分为结构化设计(SD)与面向对象设计(OOD). 其中结构化设计SD是一种面向数据流的方法,它以SRS(软件需求规格说明书)和SA(结构化分析)阶段所产生的和数据字典等文档为基础,是一个自顶向 ...

  7. [转贴]linux lsof命令详解

    linux lsof命令详解 https://www.cnblogs.com/sparkbj/p/7161669.html 简介 lsof(list open files)是一个列出当前系统打开文件的 ...

  8. [转帖].NET Core单文件发布静态编译AOT CoreRT

    .NET Core单文件发布静态编译AOT CoreRT https://www.cnblogs.com/linezero/p/CoreRT.htm .NET Core单文件发布静态编译AOT Cor ...

  9. Zookeeper群起脚本启动失败及查看状态出现:Error contacting service. It is probably not running

    1.问题: 群起脚本启动后查看jps没有出现:QuorumPeerMain Zookeeper正常启动但是群起脚本查状态出现:Error contacting service. It is proba ...

  10. 设计模式之单例模式(Singleton Pattern)

    单例模式是最简单的设计模式之一.属于创建型模式,它提供了一种创建对象的最佳方式.使应用中只存在一个对象的实例,并且使这个单实例负责所有对该对象的调用.这种模式涉及到一个单一的类,该类负责创建自己的对象 ...