面试题目: 一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手中没牌。根据桌上的牌堆顺序,输出原先手中牌堆的顺序数组。

import java.util.LinkedList;
import java.util.Queue;/*** 思路是一直还原扑克牌的前一次状态,从最后两张牌开始,将牌桌上最后两张牌拿在手里(顺序就是牌桌上的顺序)。* 第一步还原前一次操作:把底下那张扑克牌置顶;第二步还原,将桌面上牌组的最后一张牌插入到手中牌堆顶部。对* 应的放牌顺序中(1.从牌堆顶取一张放桌子上;2.再取一张放牌堆底)重复这两步操作直到牌桌上没有牌。* 要频繁地插入和将底部元素置顶,所以用到了队列Queue和链表LinkedList。* Created by Administrator on 2019/9/17 0017.*/
public class Poke {public static void main(String[] args) {int[] a = {1,3,5,4,2};System.out.println(sort(a));}public static LinkedList<Integer> sort(int[] a) {int n = a.length;LinkedList<Integer> list = new LinkedList<>();Queue<Integer> queue = new LinkedList<>();list.add(a[n-2]);list.add(a[n-1]);int i = n-3;while(i>=0) {int len = list.size();for(int j=0;j<len-1;j++) {queue.add(list.remove(0));}while(!queue.isEmpty()) {list.add(queue.poll());}len = list.size();for(int j=0;j<len;j++) {queue.add(list.remove(0));}list.add(a[i]);while(!queue.isEmpty()) {list.add(queue.poll());}i--;}return list;}}

面试题目: 一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手中没牌。根据桌上的牌堆顺序,输出原先手中牌堆的顺序数组。相关推荐

  1. 一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手里没有牌.最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组

    研究一下这个面试题特此记录,题目:一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手里没有牌.最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组. 第一种:逆推一下 ...

  2. 一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手中没牌,最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组

    题目:一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手上没牌,最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组.(题目来源于一篇知乎上的文章) 思路: 在原牌堆 ...

  3. 面试题:一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手中没牌,最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组

    面试题:一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手中没牌,最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组 思路如下:由题意可知存在两种操作,1.摸牌:2 ...

  4. 扑克牌面试问题:从牌顶拿出一张牌放到桌子上,再从牌顶拿一张牌放在手上牌的底部,重复第一步、第二步的操作

    前几天一同事去xx头条面试前端开发,遇到了一个面试问题,当时面试官是希望他通过当场思考以后说出答案,并说出解答的思路,问题是这样的: 我手中有一堆扑克牌, 但是观众不知道它的顺序. 1.第一步, 我从 ...

  5. BAT等公司高薪招聘Android开发面试题目集锦

    整理过的50道面试题目 1.listView的优化方式 重用convertView viewHolder static class viewHolder 在列表里面有图片的情况下,监听滑动不加载图片 ...

  6. android面试题目

    最近才开的博客,希望大家多多关注,andorid开发也做了3年有余了,也面试多家企业,借此机会分享一下,我们中遇到过的问题以及解决方案吧,希望能够对正在找工作的andoird程序员有一定的帮助.学完& ...

  7. Golang Study 三 map的顺序输出

    GO语言中遍历map输出的时候是无序的,不同的遍历会有不同的输出结果,如果想要顺序输出的话,需要额外保存顺序,然后再从map中读取.随着Go语言的不断发展,官方或许会提供额外的顺序读取map方法,目前 ...

  8. python 两个浮点数按照从小到大顺序输出_PythonTip 50道题目(部分题解)

    描述: 下过象棋的人都知道,马只能走'日'字形(包括旋转90°的日),现在想象一下,给你一个n行m列网格棋盘, 棋盘的左下角有一匹马,请你计算至少需要几步可以将它移动到棋盘的右上角,若无法走到,则输出 ...

  9. python利用列表计算斐波那契数列前30项并输出_python 题目:斐波那契数列计算;题目:站队顺序输出;题目:合法括号组合的生成;题目:用户登录(三次机会)...

    斐波那契数列计算 B 描述 斐波那契数列如下: F(0) = 0, F(1) = 1 F(n) = F(n-1) + F(n-2) 编写一个计算斐波那契数列的函数,采用递归方式,输出不超过n的所有斐波 ...

最新文章

  1. 阿里2018营收2502亿元,云计算业务增幅超100%
  2. 部队文职计算机试题,2020军队文职人员考试:计算机基础模拟试题(1)
  3. ffmpeg avformat_open_input always returns “Protocol not found”
  4. gnuradio上怎么使用python文件_使用Python从PDF文件中提取数据
  5. LinuxQt工作笔记-查看程序工作目录
  6. .net pdf转图片_在客户端实现PDF转图片
  7. 快速接入阿里云应用配置管理工具 轻松开启企业效率新时代
  8. python之将python代码编译成.so
  9. Scrapy相关命令
  10. 第01期:salesforce开发环境的搭建
  11. 一个完整的person类
  12. java中国象棋编程思想_中国象棋网络对战平台系统.doc
  13. 023_fireshot
  14. hdu 3966 树链剖分
  15. 全网最详细的Intel CPU体系结构分析(内核源码)
  16. android对输入手机号码震动,浅析Android手机卫士之抖动输入框和手机震动
  17. 雷军赞赏有加,黑鲨游戏手机2打造“操控之王”
  18. 2012年中国各省市区GDP排行榜 附各主要城市GDP排行榜
  19. 哈佛体系结构 哈佛体系结构
  20. vs编译 error C2001: 常量中有换行符

热门文章

  1. 近日移动硬盘和硬盘盒的选购
  2. K3Cloud BOS设计 Python 插件 弹出列表
  3. springcloud Eureka服务注册和发现
  4. shell教程(脚本 运行 传递 )
  5. Windows延缓写入失败
  6. Java IO流详尽解析
  7. ai前世识别_AI人脸识别前世今生app下载
  8. 计算机二级试题第四套答案,2014计算机二级VF试题及答案解析(第四套)
  9. 【毕业季·进击的技术er】业务和技术同等重要 · 职场人工作一年的经验之谈
  10. 驱动程序9--实模式,保护模式,虚拟8086模式