GVKun编程网logo

[Swift]LeetCode626. 换座位 | Exchange Seats(换座位视频)

3

对于[Swift]LeetCode626.换座位|ExchangeSeats感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍换座位视频,并为您提供关于626.ExchangeSeats-(Lee

对于[Swift]LeetCode626. 换座位 | Exchange Seats感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍换座位视频,并为您提供关于626. Exchange Seats-(LeetCode之Database篇)、Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏、Consecutive Available Seats --leetcode、Exchange 2013 UM集成:Exchange 配置的有用信息。

本文目录一览:

[Swift]LeetCode626. 换座位 | Exchange Seats(换座位视频)

[Swift]LeetCode626. 换座位 | Exchange Seats(换座位视频)

SQL架构

1 Create table If Not Exists seat(id int,student varchar(255))
2 Truncate table seat
3 insert into seat (id,student) values (1,Abbot)
4 insert into seat (id,student) values (2,Doris)
5 insert into seat (id,student) values (3,Emerson)
6 insert into seat (id,student) values (4,Green)
7 insert into seat (id,student) values (5,Jeames)

Mary is a teacher in a middle school and she has a table seat storing students‘ names and their corresponding seat ids.

The column id is continuous increment. 

Mary wants to change seats for the adjacent students. 

Can you write a sql query to output the result for Mary? 

+---------+---------+
|    id   | student |
+---------+---------+
|    1    | Abbot   |
|    2    | Doris   |
|    3    | Emerson |
|    4    | Green   |
|    5    | Jeames  |
+---------+---------+

For the sample input,the output is: 

+---------+---------+
|    id   | student |
+---------+---------+
|    1    | Doris   |
|    2    | Abbot   |
|    3    | Green   |
|    4    | Emerson |
|    5    | Jeames  |
+---------+---------+

Note:
If the number of students is odd,there is no need to change the last one‘s seat.

小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。

其中纵列的 id 是连续递增的

小美想改变相邻俩学生的座位。

你能不能帮她写一个 sql query 来输出小美想要的结果呢? 

示例:

+---------+---------+
|    id   | student |
+---------+---------+
|    1    | Abbot   |
|    2    | Doris   |
|    3    | Emerson |
|    4    | Green   |
|    5    | Jeames  |
+---------+---------+

假如数据输入的是上表,则输出结果如下:

+---------+---------+
|    id   | student |
+---------+---------+
|    1    | Doris   |
|    2    | Abbot   |
|    3    | Green   |
|    4    | Emerson |
|    5    | Jeames  |
+---------+---------+

注意:

如果学生人数是奇数,则不需要改变最后一个同学的座位。

Runtime: 152 ms

 1 # Write your MysqL query statement below
 2 select 
 3     (case when id % 2 = 0 then id - 1
 4         when id % 2 = 1 and id <> c.cnt then id + 1
 5         else id
 6      end) as id,student
 7 from 
 8     seat, 9     (select count(id) as cnt from seat) as c
10 order by id

253ms

 1 # Write your MysqL query statement below
 2 SELECT 
 3     (CASE
 4         WHEN MOD(id,2) != 0 AND counts != id THEN id + 1
 5         WHEN MOD(id,2) != 0 AND counts = id THEN id
 6         ELSE id - 1
 7     END) as id, 8     student
 9 FROM 
10     seat,11     (SELECT COUNT(*) as counts
12     FROM seat) as seat_counts
13 ORDER BY id ASC;

255ms

1 # Write your MysqL query statement below
2 select * from (
3 select case when b.Id is null then a.Id else b.Id end as Id,a.student from seat a left join seat b on a.Id+1=b.Id where mod(a.id,2)=1
4 union 
5 select b.Id,a.student from seat a left join seat b on a.Id-1=b.Id where mod(a.id,2)=0
6 ) a order by a.id

257ms

1 select
2     case
3         when id%2=1 and id=(select max(id) from seat) then id
4         when id%2=1 then id+1
5         else id-1 end as id,6     student
7 FROM seat
8 order by id

258ms

1 # Write your MysqL query statement below
2 select case 
3     when mod(id,2) =1 and id = (select max(id) as sid from seat)  then id  
4     when mod(id,2) =1 then id+1 
5     else id-1 end as id,student
6 from seat
7 order by id

260ms

1 SELECT
2     (CASE WHEN id%2=0 THEN id-1 
3      WHEN id%2=1 AND id<(select max(id) FROM seat) THEN id+1 
4     ELSE id
5     END) as id
6 ,student
7 FROM seat
8 ORDER BY id;

626. Exchange Seats-(LeetCode之Database篇)

626. Exchange Seats-(LeetCode之Database篇)

问题表述


数据库表如下:

id student
1 Abbot
2 Doris
3 Emerson
4 Green
5 Jeames

现在要通过SQL语句将表变换成如下:

id student
1 Doris
2 Abbot
3 Green
4 Emerson
5 Jeames

即id不变,奇数位和偶数位交换位置,如果表的总行数为奇数,则最后一行不变。

问题解决


首先看到这个问题,我就想SQL里面是不是有什么置换函数之类的,结果去查了查,并没有这样的函数。在我尝试了各种select方法后,还是没能将这题解出来…最后还是去讨论区看了看大神们的解答,看完各种答案后瞬间豁然开朗。

这题的解题思路其实并不是想办法将student的列置换,而是通过操作id列来达到置换的效果。

比较通过的解法就是下面这种:

select
if(id < (select count(*) from seat), if(id mod 2=0, id-1, id+1), if(id mod 2=0, id-1, id)) as id, student
from seat
order by id asc

其中IF函数的用法:

格式:IF(Condition,A,B)
意义:当Condition为TRUE时,返回A;当Condition为FALSE时,返回B。

所以上面的SQL语句就是,先对id进行操作。先计算总行数,最后一行如果是奇数id不变,如果是偶数id减1,其余行id为奇数的让id加1,id为偶数的让id减1,最后再对id做升序操作,就可以得到结果了。

其中还有一种解法:

/* get all the even numbered rows as odd numbered rows */
SELECT s1.id - 1 as id, s1.student
FROM Seat s1
WHERE s1.id MOD 2 = 0

UNION

/* get all the odd numbered rows as even numbered rows */
SELECT s2.id + 1 as id, s2.student
FROM Seat s2
WHERE s2.id MOD 2 = 1 AND s2.id != (SELECT MAX(id) FROM Seat)
/* Just don''t get the last row as we will handle it in the next UNION */

UNION

/* get the last row if odd and don''t change the id value */
SELECT s3.id, s3.student
FROM Seat s3
WHERE s3.id MOD 2 = 1 AND s3.id = (SELECT MAX(id) FROM Seat)

/* Order the result by id */
ORDER BY id ASC;

思路都和第一种方法大同小异。

Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏

Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏

Acer Swift 3是宏碁推出的笔记本电脑,具有轻薄时尚等元素,这里为大家带来 Acer Swift 3笔记本上手图赏 ,一起来看看。

14英寸1920*1080的显示屏幕、2.5GHz的英特尔酷睿酷睿i3、i5-7200u/i7处理器、图形128mb英特尔高清显卡620、8GB/256GB的SSD、Windows Hello、指纹识别器,处理速度快可媲美MacBook,售价仅为1398美元(约£1090/1760美元),性价比方面还是不错的。

以上就是 Acer Swift 3笔记本上手图赏 相关内容,希望对你有帮助。

Consecutive Available Seats --leetcode

Consecutive Available Seats --leetcode

Consecutive Available Seats
Several friends at a cinema ticket office would like to reserve consecutive available seats.
Can you help to query all the consecutive available seats order by the seat_id using the following cinema table?
| seat_id | free |
|---------|------|
| 1       | 1    |
| 2       | 0    |
| 3       | 1    |
| 4       | 1    |
| 5       | 1    |
Your query should return the following result for the sample case above.
| seat_id |
|---------|
| 3       |
| 4       |
| 5       |
Note:
The seat_id is an auto increment int, and free is bool (''1'' means free, and ''0'' means occupied.).
Consecutive available seats are more than 2(inclusive) seats consecutively available.


solution:
select distinct a.seat_id
from cinema a join cinema b
  on abs(a.seat_id - b.seat_id) = 1
  and a.free = true and b.free = true
order by a.seat_id
;

note:
join
full join
inner join
right join
left join

Exchange 2013 UM集成:Exchange 配置

Exchange 2013 UM集成:Exchange 配置

LyncServer2013与ExchangeServer2013统一消息集成的Exchange方面配置。

其实UM并非什么新鲜玩意儿了,但在LyncServer2013和ExchangeServer2013中,把它们集成好、作为UC的一点东西还是蛮好的,毕竟语音邮件、听邮件等功能对于多数的用户来说还是比较好玩、新鲜的,就如同我们用的很多的、微信一样。好了废话就不多说了,下面开始今天的内容,首先我们必须部署好ExchangeServer2013和LyncServer2013,这是毫无疑问的。

然后我们打开EAC,也就是网页版的EMC,在统一消息选项卡中单击“+”来新建一个UM拨号计划。

Exchange 2013 UM集成:Exchange 配置

拨号计划主要是设置分机号长度,这里的分机号其实与我们Lync的集成没有多大关系,因为我们与Lync做了集成之后主要是使用SIPURL进行拨号,换句话说我们每个用户的邮箱地址就是UM的分机号,但这里我们仍然需要对分机号的长度进行一个配置。

Exchange 2013 UM集成:Exchange 配置

完成之后,我们使用EMS,执行以下命令来设置UM拨号计划的工作模式为双重模式:

Set-UMService-identityExch-DialPlansLync-UMStartupModedual

Exchange 2013 UM集成:Exchange 配置

然后我们再对Exch2013的UMCR功能进行配置,也使其在双重工作模式下工作:

Set-UMCallRouterSettings-Server"exch.contoso.com"-UMStartupModedual

其中的server参数是指的是我们前端服务器所在的服务器。

Exchange 2013 UM集成:Exchange 配置

然后我们需要做一条UM拨号计划的配置,以实现UM的Lync拨号计划可以被Lync呼叫到:

Set-UMDialPlan"Lync"-ConfiguredInCountryOrRegionGroups"Anywhere,*,*"-AllowedInCountryOrRegionGroups"Anywhere"

Exchange 2013 UM集成:Exchange 配置

然后打开服务管理单元,找到UM服务,把它重启或停止,效果都一样,因为没有配置证书,它已经没办法正常启动了。

Exchange 2013 UM集成:Exchange 配置

如果是选择重启动,那么出现1067进程意外终止是正常的。

Exchange 2013 UM集成:Exchange 配置

顺便把UMCR服务也重启或停止了。

Exchange 2013 UM集成:Exchange 配置

然后把我们的证书的服务调整一下,在EAC的服务器选项卡中,找到相应的证书,然后编辑其属性。

Exchange 2013 UM集成:Exchange 配置

在服务选项卡中把UM服务选上。

Exchange 2013 UM集成:Exchange 配置

这时会出现一个警告,告知我们正在改变UM的证书配置。

Exchange 2013 UM集成:Exchange 配置

这时咱们就可以去启动UM服务了,正常情况下UM服务就可以正常启动了。

Exchange 2013 UM集成:Exchange 配置

然后还是在证书界面,我们继续选择UM呼叫路由器功能,因为我们也需要对其进行配置。

Exchange 2013 UM集成:Exchange 配置

然后这时会提示我们该如何操作,但由于我们是与Lync进行集成,所以不需要对网关做单独配置。

Exchange 2013 UM集成:Exchange 配置

然后我们对之前创建的UM拨号计划进行配置。

Exchange 2013 UM集成:Exchange 配置

在UM拨号计划中的UM自动助理,单击“+”创建新的UM自动助理。这里简单的说一下为什么需要建立自动助理,但这并非与Lync集成所必须的,但它确实非常有意义。

Exchange 2013 UM集成:Exchange 配置

自动助理或自动助理菜单系统将呼叫者转接到某个用户或部门的分机,而不需要接待员或接线员干预。在许多自动助理系统中,按“零”或说“零”可以接通接待员或接线员。某些自动助理系统使用纯留言信息菜单和语音菜单,使组织可以提供办公时间、办公地点、招聘信息以及对其他常见问题的解答。播放留言之后,呼叫者将被转接到接待员或话务员,也可以返回主菜单。

Exchange 2013 UM集成:Exchange 配置

除了对全局创建的自动助理之外,我们还可以配置一个OutlookVoiceAccess号码,用于每个用户可以通过语音读取电子邮件、收听语音邮件、与其Outlook日历交互、访问其个人联系人以及执行各种任务,例如配置其OutlookVoiceAccesspIN和录制语音邮件问候语。

在UM拨号计划界面单击配置。

Exchange 2013 UM集成:Exchange 配置

在OutlookVoiceAccess选项卡,我们可以为Outlook语音访问设置一个号码,该号码一定是E.164格式的。

Exchange 2013 UM集成:Exchange 配置

完成之后,我们打开EMS,将目录切换至Exchange的安装位置下的scripts目录中。然后运行exchucutil.ps1脚本来配置与Lync做集成。

Exchange 2013 UM集成:Exchange 配置

如果命令成功完成,那么会显示非常多的结果。我们主要关心的是最右侧的configured结果为true

Exchange 2013 UM集成:Exchange 配置

在这边我们会看到dialplans的结果是notfound,这是一个正常的结果。在ExchangeServer2013这边的配置就已经完成了,对于UM这一块还是非常有意义的,所以在做了Lync集成之后,效果将会更好。今天的内容就到这里,如果大家有什么问题,欢迎随时提出。

关于[Swift]LeetCode626. 换座位 | Exchange Seats换座位视频的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于626. Exchange Seats-(LeetCode之Database篇)、Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏、Consecutive Available Seats --leetcode、Exchange 2013 UM集成:Exchange 配置等相关知识的信息别忘了在本站进行查找喔。

本文标签: