算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
今天和大家聊的问题叫做 换座位,我们先来看题面:
https://leetcode.cn/problems/exchange-seats/
编写SQL查询来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。
按 id 升序 返回结果表。
查询结果格式如下所示。
示例
解题
主要思路:
若id是偶数,减1
若id是奇数,加1
如果总数是奇数,最后一个不换
# Write your MySQL query statement below
select
case
when id%2=0 then id-1
when id=(select count(id) from Seat) then id
else id+1
end as id,
student
from Seat
order by id;
上期推文: