当前位置: 首页 > news >正文

[LeetCode] 626. 换座位

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

其中纵列的 id 是连续递增的。小美想改变相邻俩学生的座位 ?

示例:

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

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

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

注意:

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

解答思路:

对照上表及其查询结果可以得知,当原id为奇数时,交换座位后的id变为id+1,当原id为偶数时,交换座位后的id变为id-1,另一个方面需要考虑的是,学生人数为奇数时,最后一个学生的id不变,故应当用子查询确定学生的人数,然后分情况讨论即可。

Mod()返回除操作的余数(取模)
如:mod(id, 2) = 1 ===> 返回id号是奇数的id

# Write your MySQL query statement below
select (case
      when mod(id,2)!=0 and id!=counts then id+1
      when mod(id,2)!=0 and id=counts then id
      else id-1 end)as id,student
      from seat,(select count(*)as counts from seat)as seat_counts
 order by id;
参考链接:Mysql| Mysql函数,聚集函数的介绍与使用(Lower,Date,Mod,AVG,…)

相关文章:

  • 七夕节程序员应有的表白方式
  • 如何用命令将本地项目上传到github
  • Java中十六进制与十进制相互转换
  • 把eclipse中Java Web项目导入到IntelliJ IDEA 并且配置Tomcat(亲测可用)
  • Intellij IDEA(2018版)常用快捷键大全
  • tomcat运行war包,生成的文件中文乱码
  • Swiper4.x使用之图片只有一张时不进行轮播,多张才进行轮播
  • [LeetCode] 178. 分数排名
  • MySQL下载安装教程和修改密码(亲测有用)
  • 免费的外网映射工具Ngrok 国内版,满足基本的开发测试需求
  • 阿里云申请免费SSL证书-阿里云云盾证书 - Digicert+Symantec 免费型DV SSL
  • Nginx上配置SSL证书
  • Nginx配置SSL证书实现HTTPS访问
  • Spring Boot 入门
  • SpringBoot2整合Thymele时,静态资源加载不出来
  • 【Leetcode】101. 对称二叉树
  • 【347天】每日项目总结系列085(2018.01.18)
  • mysql 数据库四种事务隔离级别
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • React as a UI Runtime(五、列表)
  • vue 个人积累(使用工具,组件)
  • 百度小程序遇到的问题
  • 闭包,sync使用细节
  • 复习Javascript专题(四):js中的深浅拷贝
  • 检测对象或数组
  • 解析 Webpack中import、require、按需加载的执行过程
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 异常机制详解
  • 用mpvue开发微信小程序
  • 优化 Vue 项目编译文件大小
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #define与typedef区别
  • $$$$GB2312-80区位编码表$$$$
  • $GOPATH/go.mod exists but should not goland
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (day 12)JavaScript学习笔记(数组3)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (function(){})()的分步解析
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (二)斐波那契Fabonacci函数
  • (二)换源+apt-get基础配置+搜狗拼音
  • (分享)自己整理的一些简单awk实用语句
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (十六)Flask之蓝图
  • (一) springboot详细介绍
  • (一)appium-desktop定位元素原理
  • (转)http-server应用
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .apk文件,IIS不支持下载解决
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查