面试题目: 一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手中没牌。根据桌上的牌堆顺序,输出原先手中牌堆的顺序数组。
面试题目: 一副从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到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手里没有牌.最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组
研究一下这个面试题特此记录,题目:一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手里没有牌.最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组. 第一种:逆推一下 ...
- 一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手中没牌,最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组
题目:一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手上没牌,最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组.(题目来源于一篇知乎上的文章) 思路: 在原牌堆 ...
- 面试题:一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手中没牌,最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组
面试题:一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手中没牌,最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组 思路如下:由题意可知存在两种操作,1.摸牌:2 ...
- 扑克牌面试问题:从牌顶拿出一张牌放到桌子上,再从牌顶拿一张牌放在手上牌的底部,重复第一步、第二步的操作
前几天一同事去xx头条面试前端开发,遇到了一个面试问题,当时面试官是希望他通过当场思考以后说出答案,并说出解答的思路,问题是这样的: 我手中有一堆扑克牌, 但是观众不知道它的顺序. 1.第一步, 我从 ...
- BAT等公司高薪招聘Android开发面试题目集锦
整理过的50道面试题目 1.listView的优化方式 重用convertView viewHolder static class viewHolder 在列表里面有图片的情况下,监听滑动不加载图片 ...
- android面试题目
最近才开的博客,希望大家多多关注,andorid开发也做了3年有余了,也面试多家企业,借此机会分享一下,我们中遇到过的问题以及解决方案吧,希望能够对正在找工作的andoird程序员有一定的帮助.学完& ...
- Golang Study 三 map的顺序输出
GO语言中遍历map输出的时候是无序的,不同的遍历会有不同的输出结果,如果想要顺序输出的话,需要额外保存顺序,然后再从map中读取.随着Go语言的不断发展,官方或许会提供额外的顺序读取map方法,目前 ...
- python 两个浮点数按照从小到大顺序输出_PythonTip 50道题目(部分题解)
描述: 下过象棋的人都知道,马只能走'日'字形(包括旋转90°的日),现在想象一下,给你一个n行m列网格棋盘, 棋盘的左下角有一匹马,请你计算至少需要几步可以将它移动到棋盘的右上角,若无法走到,则输出 ...
- python利用列表计算斐波那契数列前30项并输出_python 题目:斐波那契数列计算;题目:站队顺序输出;题目:合法括号组合的生成;题目:用户登录(三次机会)...
斐波那契数列计算 B 描述 斐波那契数列如下: F(0) = 0, F(1) = 1 F(n) = F(n-1) + F(n-2) 编写一个计算斐波那契数列的函数,采用递归方式,输出不超过n的所有斐波 ...
最新文章
- 阿里2018营收2502亿元,云计算业务增幅超100%
- 部队文职计算机试题,2020军队文职人员考试:计算机基础模拟试题(1)
- ffmpeg avformat_open_input always returns “Protocol not found”
- gnuradio上怎么使用python文件_使用Python从PDF文件中提取数据
- LinuxQt工作笔记-查看程序工作目录
- .net pdf转图片_在客户端实现PDF转图片
- 快速接入阿里云应用配置管理工具 轻松开启企业效率新时代
- python之将python代码编译成.so
- Scrapy相关命令
- 第01期:salesforce开发环境的搭建
- 一个完整的person类
- java中国象棋编程思想_中国象棋网络对战平台系统.doc
- 023_fireshot
- hdu 3966 树链剖分
- 全网最详细的Intel CPU体系结构分析(内核源码)
- android对输入手机号码震动,浅析Android手机卫士之抖动输入框和手机震动
- 雷军赞赏有加,黑鲨游戏手机2打造“操控之王”
- 2012年中国各省市区GDP排行榜 附各主要城市GDP排行榜
- 哈佛体系结构 哈佛体系结构
- vs编译 error C2001: 常量中有换行符