今日算法题 445. 两数相加 II

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。

进阶:

如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。

示例:

输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 8 -> 0 -> 7

//官方题解给出的使用栈先进后出的原则,自己解题思路为先将两个链表反转,相加后再将链表反转回去的方式
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode pro1 = null;ListNode temp = l1;while (temp != null){ListNode next = temp.next;temp.next = pro1;pro1 = temp;temp = next;}ListNode pro2 = null;ListNode temp2 = l2;while (temp2 != null){ListNode next = temp2.next;temp2.next = pro2;pro2 = temp2;temp2 = next;}ListNode result = new ListNode(-1);ListNode tempResult = result ;int flag = 0;while (pro1 != null ||  pro2 != null){int i = (pro1 == null ? 0 : pro1.val) + (pro2 == null ? 0 : pro2.val)+flag;tempResult.next = new ListNode(i%10) ;flag = 0 ;if(i>=10){flag  = 1;}if(pro1 != null){pro1 = pro1.next;}if(pro2 != null){pro2 = pro2.next;}tempResult = tempResult.next;}if(flag == 1){tempResult.next = new ListNode(1) ;}ListNode pro3 = null;ListNode tempResult3 = result.next ;while (tempResult3 != null){ListNode next = tempResult3.next;tempResult3.next = pro3;pro3 = tempResult3;tempResult3 = next;}return pro3;}

182. 查找重复的电子邮箱

//建表语句
Create table If Not Exists Person (Id int, Email varchar(255))
Truncate table Person
insert into Person (Id, Email) values ('1', 'a@b.com')
insert into Person (Id, Email) values ('2', 'c@d.com')
insert into Person (Id, Email) values ('3', 'a@b.com')

编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。

示例:
±—±--------+
| Id | Email |
±—±--------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
±—±--------+
根据以上输入,你的查询应返回以下结果:

±--------+
| Email |
±--------+
| a@b.com |
±--------+
说明:所有电子邮箱都是小写字母。

SELECT Email FROM person GROUP BY email HAVING COUNT(email) > 1

183. 从不订购的客户

//建表语句
Create table If Not Exists Customers (Id int, Name varchar(255))
Create table If Not Exists Orders (Id int, CustomerId int)
Truncate table Customers
insert into Customers (Id, Name) values ('1', 'Joe')
insert into Customers (Id, Name) values ('2', 'Henry')
insert into Customers (Id, Name) values ('3', 'Sam')
insert into Customers (Id, Name) values ('4', 'Max')
Truncate table Orders
insert into Orders (Id, CustomerId) values ('1', '3')
insert into Orders (Id, CustomerId) values ('2', '1')

某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。
Customers 表:
±—±------+
| Id | Name |
±—±------+
| 1 | Joe |
| 2 | Henry |
| 3 | Sam |
| 4 | Max |
±—±------+
Orders 表:
±—±-----------+
| Id | CustomerId |
±—±-----------+
| 1 | 3 |
| 2 | 1 |
±—±-----------+
例如给定上述表格,你的查询应返回:
±----------+
| Customers |
±----------+
| Henry |
| Max |
±----------+

SELECT NAME AS Customers FROM customers WHERE id NOT in (SELECT customerId FROM orders GROUP BY customerId)

184. 部门工资最高的员工

Create table If Not Exists Employee (Id int, Name varchar(255), Salary int, DepartmentId int);
Create table If Not Exists Department (Id int, Name varchar(255));
Truncate table Employee;
insert into Employee (Id, Name, Salary, DepartmentId) values ('1', 'Joe', '70000', '1');
insert into Employee (Id, Name, Salary, DepartmentId) values ('2', 'Jim', '90000', '1');
insert into Employee (Id, Name, Salary, DepartmentId) values ('3', 'Henry', '80000', '2');
insert into Employee (Id, Name, Salary, DepartmentId) values ('4', 'Sam', '60000', '2');
insert into Employee (Id, Name, Salary, DepartmentId) values ('5', 'Max', '90000', '1');
Truncate table Department;
insert into Department (Id, Name) values ('1', 'IT');
insert into Department (Id, Name) values ('2', 'Sales');

Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id。
±—±------±-------±-------------+
| Id | Name | Salary | DepartmentId |
±—±------±-------±-------------+
| 1 | Joe | 70000 | 1 |
| 2 | Henry | 80000 | 2 |
| 3 | Sam | 60000 | 2 |
| 4 | Max | 90000 | 1 |
±—±------±-------±-------------+
Department 表包含公司所有部门的信息。
±—±---------+
| Id | Name |
±—±---------+
| 1 | IT |
| 2 | Sales |
±—±---------+
编写一个 SQL 查询,找出每个部门工资最高的员工。例如,根据上述给定的表格,Max 在 IT 部门有最高工资,Henry 在 Sales 部门有最高工资。
±-----------±---------±-------+
| Department | Employee | Salary |
±-----------±---------±-------+
| IT | Max | 90000 |
| Sales | Henry | 80000 |
±-----------±---------±-------+

SELECTdep1. NAME AS Department,emp1. NAME AS Employee,emp1.Salary AS Salary
FROMEmployee emp1
LEFT JOIN Department dep1 ON emp1.DepartmentId = dep1.id
WHERE (emp1.Salary ,emp1.DepartmentId)in (SELECT  MAX(emp.Salary),emp.DepartmentId FROM Employee emp  GROUP BY emp.DepartmentId) AND dep1.id != '' ;

185. 部门工资前三高的所有员工

Create table If Not Exists Employee (Id int, Name varchar(255), Salary int, DepartmentId int);
Create table If Not Exists Department (Id int, Name varchar(255));
Truncate table Employee;
insert into Employee (Id, Name, Salary, DepartmentId) values ('1', 'Joe', '85000', '1');
insert into Employee (Id, Name, Salary, DepartmentId) values ('2', 'Henry', '80000', '2');
insert into Employee (Id, Name, Salary, DepartmentId) values ('3', 'Sam', '60000', '2');
insert into Employee (Id, Name, Salary, DepartmentId) values ('4', 'Max', '90000', '1');
insert into Employee (Id, Name, Salary, DepartmentId) values ('5', 'Janet', '69000', '1');
insert into Employee (Id, Name, Salary, DepartmentId) values ('6', 'Randy', '85000', '1');
insert into Employee (Id, Name, Salary, DepartmentId) values ('7', 'Will', '70000', '1');
Truncate table Department;
insert into Department (Id, Name) values ('1', 'IT');
insert into Department (Id, Name) values ('2', 'Sales');

Employee 表包含所有员工信息,每个员工有其对应的工号 Id,姓名 Name,工资 Salary 和部门编号 DepartmentId 。
±—±------±-------±-------------+
| Id | Name | Salary | DepartmentId |
±—±------±-------±-------------+
| 1 | Joe | 85000 | 1 |
| 2 | Henry | 80000 | 2 |
| 3 | Sam | 60000 | 2 |
| 4 | Max | 90000 | 1 |
| 5 | Janet | 69000 | 1 |
| 6 | Randy | 85000 | 1 |
| 7 | Will | 70000 | 1 |
±—±------±-------±-------------+
Department 表包含公司所有部门的信息。
±—±---------+
| Id | Name |
±—±---------+
| 1 | IT |
| 2 | Sales |
±—±---------+
编写一个 SQL 查询,找出每个部门获得前三高工资的所有员工。例如,根据上述给定的表,查询结果应返回:
±-----------±---------±-------+
| Department | Employee | Salary |
±-----------±---------±-------+
| IT | Max | 90000 |
| IT | Randy | 85000 |
| IT | Joe | 85000 |
| IT | Will | 70000 |
| Sales | Henry | 80000 |
| Sales | Sam | 60000 |
±-----------±---------±-------+
解释:
IT 部门中,Max 获得了最高的工资,Randy 和 Joe 都拿到了第二高的工资,Will 的工资排第三。销售部门(Sales)只有两名员工,Henry 的工资最高,Sam 的工资排第二。

2020年4月14日相关推荐

  1. python 判断该地址 文件创建时间2020年10月14日14时25分32秒 文件最后一次访问时间 文件最后一次修改时间

    #1.判断该地址 #1.文件名 #2.文件路径 #3.文件扩展名 #4.文件创建时间2020年10月14日14时25分32秒 #5.文件最后一次访问时间 #6.文件最后一次修改时间 #7.文件的大小( ...

  2. 2020 年 1 月 14 日外延支持结束后继续接收安全更新的过程

    2020 年 1 月 14 日外延支持结束后继续接收安全更新的过程 适用于: Windows 7 Service Pack 1Windows Server 2008 R2 Service Pack 1 ...

  3. 【财经期刊FM-Radio|2020年11月14日】

    title: [财经期刊FM-Radio|2020年11月14日] 微信公众号: 张良信息咨询服务工作室 [今日热点新闻一览↓↓] 能源股创最大周涨幅,欧美股市反弹连涨两周,中概新能源车盘中大逆转跌落 ...

  4. 神武服务器维护时间表,《神武4》2020年2月14日维护更新内容一览

    亲爱的玩家: 感谢您对<神武4>的支持与热爱,我们于2月14日对游戏内容进行了更新维护. 本周重点更新内容: 1.新增的鸿雁传书活动: 2.生存大挑战规则调整: 3.提高了双技能护符的概率 ...

  5. 周怎么换算成月_嘉会班三年级第十六周(2020年12月14日—12月18日)

    周一湿水彩课上,我们一起油印了九九消寒图. 周二课堂迎来了六位家长并留下了很中肯的教学建议. 周三我跟孩子们请假溜出去买冬至零食,孩子们迫不及待地准了假.中午和孩子们做了桔子灯还有青椒灯/ 周四早晨, ...

  6. 人工智能行业每日必读(2020年1月14日)

    清华北大互相开放部分课程 AI技术在列 1月14日消息,据报道,清华大学与北京大学两校教务部门研究决定互相开放部分本科课程.今年春季学期起,互相开放部分本科课程且互认学分,其中北大开放27门课程,以人 ...

  7. 2020年9月14日运行代码总结

    由于研究ns3gym的使用,官网案例不足,需要运行别人的代码,在本机上运行成功,但在仿真机过程中出现一类列问题.一开始以为环境配置问题,升级环境与python3.6,但在python3.6.12的安装 ...

  8. 2020年11月14日

    leetcode刷题记录 1122.数组的相对排序 思路 先对原数组进行排序,再创建一个数组用于记录元素是否被按照数组2进行排序,最后将不在数组2中的元素按照升序进行排序即可 代码 /*** Note ...

  9. 林大OJ习题 2020年1月14日

    n个数求和 #include <stdio.h> #include <stdlib.h>int main() {long long sum,n,i;while(scanf(&q ...

最新文章

  1. 设备履历管理系统php开源,航空机载设备履历本管理制作系统诞生记
  2. win10开启telnet客户端
  3. 用putty中的pscp命令拷贝文件
  4. 反垃圾邮件,需要全面了解各种方案
  5. scala to java_Scala 2.13 以后Java集合与Scala集合互相转换
  6. 读《NoSQL精粹》前三章有感
  7. vivado2018.3添加IP库
  8. 给定一个数组,寻找次大的数 (1)
  9. Phpstudy 隐藏后门远程代码执行
  10. IAR Embedded WorkBench FOR 8051破解
  11. 跨境电商无货源自发货铺货ERP店群管理软件
  12. 为什么包装类型间的相等判断应该用 equals
  13. 测试攻击机伪装成目标机 IP 给目标机发送攻击报文是否成功
  14. 面试官常问的 web前端 问题(二)
  15. 计算机室内设计绘图论文,分析设计手绘图对室内设计师的作用研究
  16. k易语言html导入超级列表框,易语言超级列表框导入TXT内容的方法分享!
  17. Android 热修复 Tinker Gradle Plugin解析
  18. cfa一级需要计算机吗,CFA一级考试计算机怎么使用?
  19. LINUX下安装VMD
  20. ROS 2 Humble Hawksbill 命令基础

热门文章

  1. 这届618:掀起直播盛世
  2. Excel RTD函数入门
  3. 4、selenium3的安装
  4. python毕业设计能做什么工作_用python可以做什么毕业设计项目|融资公司的主要业务...
  5. android获取整体存储空间大小,Android 获取剩余存储空间
  6. 网页优化(布局优化、图片优化)
  7. 在Python中如何方便的制作个性化的词云图
  8. 最好的网络拓扑制作软件
  9. java基础项目-抽奖机-模拟双色球-大乐透
  10. gpu云服务器运行游戏_GPU云服务器可以挂在大型游戏吗