首页 > 其他分享 >626. 换座位 - 力扣(LeetCode)

626. 换座位 - 力扣(LeetCode)

时间:2024-12-11 22:01:40浏览次数:11  
标签:insert 626 into Seat 力扣 values student LeetCode id

  1. 626. 换座位 - 力扣(LeetCode)

  2. 目标

    1. 输入

      输入:座位表
      idstudent
      1Abbot
      2Doris
      3Emerson
      4Green
      5Jeames
    2. 输出

      输出:新座位表
      idstudent
      1Doris
      2Abbot
      3Green
      4Emerson
      5Jeames
  3. 分析

    编写解决方案来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。

    按 id 升序 返回结果表。
    输入:座位表输出:新座位表
    idstudentidstudent
    1Abbot1Doris
    2Doris2Abbot
    3Emerson3Green
    4Green4Emerson
    5Jeames5Jeames
    将id为奇数的学生换为下一行的学生,偶数的学生换为上一行的学生,则如果最后一个同学的数量是奇数则为nullidstudentnew_student查询新座位,如果新位置是null则输出为原同学idstudent
    1AbbotDoris1Doris
    2DorisEmerson2Abbot
    3EmersonGreen3Green
    4GreenJeames4Emerson
    5Jeames5Jeames
  4. 实现

    DROP TABLE IF EXISTS Seat;
    Create table If Not Exists Seat (id int, student varchar(255));
    Truncate table Seat;
    insert into Seat (id, student) values ('1', 'Abbot');
    insert into Seat (id, student) values ('2', 'Doris');
    insert into Seat (id, student) values ('3', 'Emerson');
    insert into Seat (id, student) values ('4', 'Green');
    insert into Seat (id, student) values ('5', 'Jeames');
    SELECT * FROM Seat;
    SELECT *,if(id%2=0,lag(student,1) OVER (),lead(student,1) OVER ())new_student
    FROM Seat
    ORDER BY id;
    WITH t1 AS ( SELECT *,if(id%2=0,lag(student,1) OVER (),lead(student,1) OVER ())new_student
    FROM Seat
    ORDER BY id )
    SELECT id,if(new_student IS NULL ,student,new_student)student
    FROM t1;

  5. 小结

        lag,lead查询

标签:insert,626,into,Seat,力扣,values,student,LeetCode,id
From: https://blog.csdn.net/2301_78665414/article/details/144367941

相关文章

  • 每日力扣打卡93.复原IP地址
    题目:有效IP地址正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。例如:"0.1.2.201"和"192.168.1.1"是有效IP地址,但是"0.011.255.245"、"192.168.1.312"和"192.168@1.1"是无效IP地址。给定一个只包含数字的字符串s,用以表......
  • LeetCode - Hot100 - 1.两数之和
    前言本专栏主要通过“LeetCode热题100”,来捡起自己本科阶段的算法知识与技巧。语言主要使用c++/java。题目描述1.两数之和题目链接:https://leetcode.cn/problems/two-sum/?envType=study-plan-v2&envId=top-100-liked给定一个整数数组nums和一个整数目标值target,......
  • LeetCode | 斐波那契数
    Problem:509.斐波那契数题目斐波那契数(通常用F(n)表示)形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2),其中n>1给定n,请计算F(n)。示例1:输入:n=2输出:1解......
  • (nice!!!)(LeetCode 热题 100) 76. 最小覆盖子串(哈希表、滑动窗口、双指针)
    题目:76.最小覆盖子串思路:用哈希表来记录字符串t中字符出现的情况。然后用双指针来实现滑动窗口,找到最小的字符串即可。时间复杂度为0(m+n),细节看注释。classSolution{public:stringminWindow(strings,stringt){ //哈希表unordered_map<char......
  • leetcode面试经典 150 题第三题(26. 删除有序数组中的重复项)#更适合新手学习
     题目:26.删除有序数组中的重复项-力扣(LeetCode)给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。考虑 nums 的唯......
  • LeetCode:2717、半有序队列
    题目:给你一个下标从0开始、长度为n的整数排列nums。如果排列的第一个数字等于1且最后一个数字等于n,则称其为半有序排列。你可以执行多次下述操作,直到将nums变成一个半有序排列:选择nums中相邻的两个元素,然后交换它们。返回使nums变成半有序排列所需的最......
  • leetcode61:旋转链表
    原题地址:61.旋转链表-力扣(LeetCode)题目描述给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例1:输入:head=[1,2,3,4,5],k=2输出:[4,5,1,2,3]示例2:输入:head=[0,1,2],k=4输出:[2,0,1]解题思路明确旋转规则:每次旋转,将......
  • 代码随想录算法训练营第四十三天|LeetCode300.最长递增子序列、LeetCode674.最长连续
    前言打卡代码随想录算法训练营第49期第四十三天 (๑ˉ∀ˉ๑)首先十分推荐学算法的同学可以先了解一下代码随想录,可以在B站卡哥B站账号、代码随想录官方网站代码随想录了解,卡哥清晰易懂的算法教学让我直接果断关注,也十分有缘和第49期的训练营大家庭一起进步。LeetCode300......
  • 力扣-图论-8【算法学习day.58】
    前言###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!习题1.引爆最多的炸弹题目链接:2101.引爆最多的炸弹-力扣(Le......
  • 力扣周赛427
    力扣周赛427......