1873. 计算特殊奖金

简介: 1873. 计算特殊奖金

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

表: Employees

+-------------+---------+
| 列名        | 类型     |
+-------------+---------+
| employee_id | int     |
| name        | varchar |
| salary      | int     |
+-------------+---------+
employee_id 是这个表的主键(具有唯一值的列)。
此表的每一行给出了雇员id ,名字和薪水。

编写解决方案,计算每个雇员的奖金。如果一个雇员的 id 是 奇数 并且他的名字不是以 'M' 开头,那么他的奖金是他工资的 100% ,否则奖金为 0 。

返回的结果按照 employee_id 排序。

返回结果格式如下面的例子所示。

示例 1:

输入:
Employees 表:
+-------------+---------+--------+
| employee_id | name    | salary |
+-------------+---------+--------+
| 2           | Meir    | 3000   |
| 3           | Michael | 3800   |
| 7           | Addilyn | 7400   |
| 8           | Juan    | 6100   |
| 9           | Kannon  | 7700   |
+-------------+---------+--------+
输出:
+-------------+-------+
| employee_id | bonus |
+-------------+-------+
| 2           | 0     |
| 3           | 0     |
| 7           | 7400  |
| 8           | 0     |
| 9           | 7700  |
+-------------+-------+
解释:
因为雇员id是偶数,所以雇员id 是2和8的两个雇员得到的奖金是0。
雇员id为3的因为他的名字以'M'开头,所以,奖金是0。
其他的雇员得到了百分之百的奖金。

解题思路

  • 判断employee_id是否为偶数
employee_id % 2 <> 0
  • 判读名字是否为’M’开头
SUBSTRING(name, 1, 1) <> 'M'
  • 如果一个雇员的 id 是 奇数 并且他的名字不是以 'M' 开头,那么他的奖金是他工资的 100% ,否则奖金为 0
CASE 
    WHEN employee_id % 2 <> 0 AND SUBSTRING(name, 1, 1) <> 'M' THEN salary
    ELSE 0
END AS bonus

AC代码

SELECT 
    employee_id,
    CASE 
        WHEN employee_id % 2 <> 0 AND SUBSTRING(name, 1, 1) <> 'M' THEN salary
        ELSE 0
    END AS bonus
FROM employees order by employee_id;

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

目录
相关文章
|
4月前
|
自然语言处理 JavaScript Java
【网站制作】如何用CodeBuddy+BBWEYY开发一个微软官方网站
【网站制作】如何用CodeBuddy+BBWEYY开发一个微软官方网站
115 0
|
5月前
|
存储 缓存 程序员
初级程序员必备的十大技能之计算机基础必备(一)
教程来源 http://fndvx.cn 本文系统讲解程序员必修的计算机基础,涵盖组成原理、操作系统、网络、数据库、编译原理五大核心。从冯·诺依曼结构、二进制与位运算(含权限系统实战),到内存层次与缓存优化,配原理图解与可运行代码,助你夯实内功、知其所以然。
|
机器学习/深度学习 人工智能 自然语言处理
数字化转型需要的技术:生成式AI时代的全栈能力图谱
本文探讨生成式AI推动下的数字化转型技术需求转变,从技术本质、实施路径、伦理规制三方面解构核心要素。技术本质从工具理性进化到能力体系,需建立模型思维、多模态交互和自主进化能力。实施路径分为认知重构、实验验证与迭代优化三个阶段。同时,文章介绍生成式人工智能认证(GAI认证)的战略价值,强调其在能力基准建立、技术合作及创新生态接入中的作用。最后,文章分析组织能力进化与未来技术前沿,如认知智能、具身智能和群体智能的演进方向,为企业提供全面的技术赋能与战略转型指导。
|
机器学习/深度学习 人工智能 自然语言处理
【自然语言处理】python之人工智能应用篇——文本生成技术
文本生成是指使用自然语言处理技术,基于给定的上下文或主题自动生成人类可读的文本。这种技术可以应用于各种领域,如自动写作、聊天机器人、新闻生成、广告文案创作等。
1298 8
|
网络协议 中间件 API
探索PHP的异步编程:Swoole框架的应用
在Web开发领域,PHP以其易用性和广泛的社区支持而闻名。然而,传统的PHP编程模型通常是同步的,这意味着在处理请求时,服务器必须等待任务完成才能响应。随着技术的发展,异步编程逐渐成为提升应用性能的关键。本文将深入探讨如何通过Swoole框架实现PHP的异步编程,从而优化并发处理能力,并提高应用的响应速度和扩展性。
|
存储 网络协议 安全
【NAS群晖drive异地访问】远程连接drive挂载电脑硬盘「内网穿透」
利用群晖的Drive套件与cpolar配合,让用户能在其他网络(非办公室局域网)上,访问位于办公室或家里的群晖Synology Drive,实现远程协同办公(或调取编辑家中群晖上的资料)的目的。现在,笔者就为大家详细介绍,如何对群晖Drive与cpolar进行设置,实现远程访问群晖Drive的目的。
3106 0
【NAS群晖drive异地访问】远程连接drive挂载电脑硬盘「内网穿透」
|
机器学习/深度学习 数据可视化
R语言逻辑回归分析连续变量和分类变量之间的“相关性“
R语言逻辑回归分析连续变量和分类变量之间的“相关性“
|
监控 网络协议 应用服务中间件
谈谈游戏服务器单区QPS的计算
谈谈游戏服务器单区QPS的计算
771 0
|
安全 算法 Java
Java 17 新功能介绍(LTS)
Java 17 新功能介绍(LTS)
1265 0
Java 17 新功能介绍(LTS)
|
JavaScript 前端开发 API
十分钟轻松入门 nw.js 实现桌面应用程序
十分钟轻松入门 nw.js 实现桌面应用程序
885 0
十分钟轻松入门 nw.js 实现桌面应用程序

热门文章

最新文章