刷题
文章平均质量分 55
记录刷题思路,答案。牛客、Leetcode
知里-
这个作者很懒,什么都没留下…
展开
-
牛客SQL编程SQL65-SQL71
SQL65.现在有一个需求,让你统计正常用户发送给正常用户邮件失败的概率:解题思路:第一步排除表中黑名单用户,用流程控制语句和sum函数求失败的次数,再除以发送的总次数select date,format(sum(if(type="no_completed",1,0))/count(type),3)from email ejoin user u1 on e.send_id=u1.idjoin user u2 on e.receive_id=u2.idwhere u1.is_blacklist=0原创 2021-07-22 22:34:20 · 288 阅读 · 0 评论 -
牛客SQL编程SQL57-SQL64
SQL57.使用含有关键字exists查找未分配具体部门的员工的所有信息。CREATE TABLE employees (emp_no int(11) NOT NULL,birth_date date NOT NULL,first_name varchar(14) NOT NULL,last_name varchar(16) NOT NULL,gender char(1) NOT NULL,hire_date date NOT NULL,PRIMARY KEY (emp_no));CREA原创 2021-07-20 05:25:15 · 260 阅读 · 0 评论 -
牛客SQL编程SQL46-SQL55
SQ46.在audit表上创建外键约束,其emp_no对应employees_test表的主键id。解题思路:在哪个表上创建外键约束,改变这个表,关联另一个表的主键alter table auditadd foreign key(EMP_no)references employees_test(ID);SQL48.请你写出更新语句,将所有获取奖金的员工当前的(salaries.to_date=‘9999-01-01’)薪水增加10%。(emp_bonus里面的emp_no都是当前获奖的所有员工)原创 2021-07-19 23:48:44 · 138 阅读 · 0 评论 -
剑指offer刷题记录JZ18-JZ20
JZ18.操作给定的二叉树,将其变换为源二叉树的镜像。解题思路:遍历二叉树,同时调换各结点左右子树的位置,知道叶结点BFS搜索,一层一层地访问 public TreeNode Mirror (TreeNode pRoot) { // write code here if(pRoot==null) return null; Queue<TreeNode> queue=new LinkedList<>()原创 2021-05-23 13:26:23 · 202 阅读 · 0 评论 -
剑指offer做题记录JZ12-JZ14
JZ12. 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0解题思路一:暴力解法,base循环自乘n次解题思路二:快速幂。使用递归如果exponent为奇数,如果exponent为偶数```javapublic class Solution { public double Power(double base, int exponent) { if(exponent&原创 2021-05-19 21:36:58 · 58 阅读 · 0 评论 -
牛客SQL编程SQ35-SQ39
SQ35.对于表actor插入如下数据,如果数据已经存在,请忽略(不支持使用replace操作)insert ignore into ,如果数据已存在,会忽略该语句replace into,如果数据已存在,会执行更新操作insert ignore into actorvalues('3','WD','GUINESS','2006-02-15 12:34:33');SQ36.请你创建一个actor_name表,并且将actor表中的所有first_name以及last_name导入该表.解题思路原创 2021-04-17 11:22:21 · 163 阅读 · 0 评论 -
牛客SQL编程SQ29-SQ34
SQ29.使用join查询方式找出没有分类的电影id以及名称解题思路:对film表和film_category表做左连接,找出category_id为null的数据select f.film_id,f.title from film f left join film_category fcon f.film_id=fc.film_idwhere fc.category_id is null;SQL30.你能使用子查询的方式找出属于Action分类的所有电影对应的title,descriptio原创 2021-04-16 09:27:39 · 158 阅读 · 0 评论 -
牛客SQL编程SQ23-SQL28
SQL23.对所有员工的薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列用dense_rank()函数按照salary降序,再以t_rank升序排序,相同工资以emp_no升序排序,t_rank在前,emp_no在后,顺序不可以变select emp_no,salary,dense_rank() over (order by salary desc) as t_rankfrom salariesorder by t_rank,emp_no排序窗口函数ra原创 2021-03-29 15:51:54 · 346 阅读 · 1 评论 -
牛客SQL编程SQL10-SQL22
SQL10.请你找出所有非部门领导的员工emp_no查找出dept_manager表中的emp_no,使用not in关键字查找出非部门领导的员工。not in中可以写能返回连个值的select语句,但是不能包含null,否则返回的结果为空。select emp_no from employeeswhere emp_no not in(select emp_no from dept_manager);还可以用左连接,然后查询dept_no为null的记录。select e.emp_no fro原创 2021-03-29 10:36:37 · 223 阅读 · 2 评论 -
剑指offer做题记录JZ9-JZ11
JZ9.一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路一:青蛙跳到第n级台阶的跳法总数与前面如何跳到第一级,如何跳到第二级,… ,如何跳到第n-1级都有关,即把之前(n-1)种状态的跳法总数都加起来,就是跳到第n级台阶的跳法总数。把之前(n-1)种跳法总数都存在数组里,再遍历数组,一一取出相加。import java.util.*;public class Solution { public int jumpFloor原创 2021-03-27 11:10:34 · 78 阅读 · 0 评论 -
剑指offer做题记录JZ5-JZ8
JZ5.用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路:执行push操作时,将元素压入栈1;执行pop操作时,判断栈2是否为空,如果为空,将栈1所有元素压入栈2后,栈2执行pop操作,如果不为空,栈2直接执行pop操作。import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack原创 2021-03-26 23:54:05 · 84 阅读 · 0 评论 -
剑指offer做题记录JZ2-JZ4
JZ2.请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路一:重新创建一个三倍字符串大小的字符数组,用charAt()方法提取字符作比较,如果不为空格,加入字符数组,如果为空格,则替换为"%20"import java.util.*;public class Solution { public String replaceSpace (String s) { /原创 2021-03-26 17:48:22 · 89 阅读 · 0 评论 -
剑指OFEER做题记录
JZ51.在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任一一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1解题思路一:从第一个数组的元素去循环查找后面的元素是否有和该元素相等的元素,有则输出元素。没有就找第二个元素后面是否有元素与其相等import java.util.*;public class Solution原创 2021-03-25 01:22:28 · 82 阅读 · 0 评论 -
牛客SQL编程题1-7
SQL1.请你查找employees里最晚入职员工的所有信息;.考虑到可能 会有多个员工在同一天入职,且不知道人数。用MAX查出入职时间这一列的最大值,即最晚入职时间。SELECT MAX(hire_date) FROM employees再从职员表中查出入职时间为这天的员工SELECT * FROM employees WHERE hire_date = (SELECT MAX(hire_date) FROM employees)SQL2.请你查找employees里入职员工时间排原创 2021-03-24 16:17:17 · 406 阅读 · 1 评论