626. 换座位 难度:中等

1、题目描述

在这里插入图片描述
在这里插入图片描述
来源:力扣(LeetCode)

2、解题思路

1# 其实就是两两编号互换,对每个数,奇数就加1,偶数就减1,然后排序
select *,if(id%2=1,id+1,id-1) as jude from seat order by jude
2# 上述的方式,如果id总数是奇数,最后的数不成对,就会出现最后一个数没有排列好
例如:1/2/3/4/5,就会变成2/1/4/3/6
3# 最后重新弄一下排名作为id
select round((@i:=@i+1),0) as id

3、提交记录

select s1.id,s2.student
from seat s1 left join
(
select round((@i:=@i+1),0) as id,student
from(
select *,if(id%2=1,id+1,id-1) as jude
from seat
order by jude)a,(select @i:=0)b) s2
on s1.id=s2.id

228ms

发布了90 篇原创文章 · 获赞 3 · 访问量 4944

猜你喜欢

转载自blog.csdn.net/weixin_43329319/article/details/97613006