首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电梯运行顺序

电梯运行顺序
EN

Code Golf用户
提问于 2023-02-22 16:55:43
回答 5查看 1.5K关注 0票数 12

有一栋楼有无限多的楼层,而你是电梯里唯一能运载无限多人的乘客。你要回家了,但在电梯到达你的楼层之前,电梯会在另一层停下来,让人们进入电梯并输入他们的目的地楼层。您的程序应该正确地处理地板订单。

您将获得3个输入(输入顺序并不重要,但您需要指定预期的输入顺序):

  • 整数--人们进入电梯的楼层数。
  • 整数-你的目标楼层
  • 整数数组-输入人员的目标层

您必须输出一个整数数组,其中包含正确排序的楼层数(包括您的楼层数)。

正确的顺序是这个顺序,首先你的移动方向的楼层按有序的顺序移动,然后与你的方向相反的楼层以相反的顺序排列。

  • 人们进入的楼层是电梯已经停止的楼层,因此这层楼不应按未来目的地的顺序排列(输出数组)。
  • 输入数组中不会有任何重复项。
  • 目标层将不在输入数组中。

例如,假设电梯停在一楼,您的目的地是3楼,人们进入[4,-2,-5,2,-4,1,5]

所以必须是[1,3,4,5,-2,-4,-5]的输出

测试用例:(随意添加更多测试用例)

代码语言:javascript
复制
0, 3, [4,-2,-5,2,-4,1,5] --> [1,2,3,4,5,-2,-4,-5]

0, -3, [4,-2,-5,2,-4,1,5] --> [-2,-3,-4,-5,1,2,4,5]

5, 10 [1,3,7,9,11,-3,-10] --> [7,9,10,11,3,1,-3,-10]

每种编程语言中最短的代码获胜!

EN

回答 5

Code Golf用户

发布于 2023-02-22 22:59:44

R,47字节

代码语言:javascript
复制
\(e,d,l,m=c(d,l))m[order(!(m<e)-(e<d),(m-e)^2)]

在网上试试!

约拿的回答复制的方法

以前:R,56个字节

代码语言:javascript
复制
\(e,d,l,u=e<d,`+`=sort)c(c(d,l[i<-!(l>e)-u])+!u,l[!i]+u)

在网上试试!

使用decreasing参数sort来控制排序顺序。

票数 6
EN

Code Golf用户

发布于 2023-02-22 18:32:32

JavaScript (ES6),62字节

期望(stopFloor, myFloor, array)

代码语言:javascript
复制
(p,q,a)=>[...a,q].sort((a,b)=>((a<p)-(b<p))*(q-p)+(a-p)/(a-b))

在网上试试!

票数 3
EN

Code Golf用户

发布于 2023-02-23 01:19:45

木炭,34字节

代码语言:javascript
复制
⊞ζηW⁻ζυ⊞υ⌊ι≔⮌Φυ‹ιθζI⎇‹ηθ⁺ζ⁻υζ⁺⁻υζζ

在网上试试!链接是详细的代码版本。解释:

代码语言:javascript
复制
⊞ζη

将目标楼层添加到列表中。

代码语言:javascript
复制
W⁻ζυ⊞υ⌊ι

按升序对所有楼层进行排序。

代码语言:javascript
复制
≔⮌Φυ‹ιθζ

将起始楼层以下的楼层提取出来,并将其反转。

代码语言:javascript
复制
I⎇‹ηθ⁺ζ⁻υζ⁺⁻υζζ

将它们从按顺序排列的楼层列表中删除,然后根据您的旅行方向将它们连接到起点或终点。

票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/258137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档