01 2023 档案
摘要:题目描述 有一个订单信息表(order_info),请你写出一个sql语句查询在2025-10-15以后状态为购买成功的C++课程或者Java课程或者Python的订单, 并且按照order_info的id升序排序 思路 有一个函数:DATEDIFF(d1,d2) 语句 计算日期 d1->d2 之间
阅读全文
摘要:题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数返回,而是存储在数组
阅读全文
摘要:题目描述 有一个成绩表(grade),请你写一个sql语句查询各个岗位分数的平均数,并且按照分数降序排序,结果保留小数点后面3位(3位之后四舍五入) 思路 group by中的select 查询的字段必须是 分组字段,或者 聚合函数 round(字段, num):保留num小数的函数 代码 sele
阅读全文
摘要:题目描述 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。 返回 已排序的链表 。 方法1 双指针方式 描述 指针p去找寻是否为相同的节点 如果不是,则在cur后边进行添加,防止重复出现 如果是,直接跳过,遍历下一个节点 存在问题:不需要创建Set对象来存储重复值
阅读全文
摘要:题目描述 请你统计一下牛客每个用户最近登录是哪一天。有一个登录(login)记录表, 请你写出一个sql语句查询每个用户最近一天登录的日子,并且按照user_id升序排序 思路 每个用户最近一天也就是说需要将user_id分组,取 max(date),最后根据user_id升序即可 代码 selec
阅读全文
摘要:题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 方法1 递归 描述 如果是在第0节或者第1节台阶,就只有1种方式 而其他节为前一节和前两节的和,所以用递归 但是当数值比较大的时候,会超出时间 代码 package ea
阅读全文
摘要:题目描述 有一个person表,主键是id,有一个任务(task)表如下,主键也是id 请你找到每个人的任务情况,并且输出出来,没有任务的也要输出,而且输出结果按照person的id升序排序 思路 1.本题使用左连接不是所有人都有任务,没有任务的显示为null 2.连接条件为person表中的id和
阅读全文
摘要:题目描述 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 方法1 描述 由于 x 平方根的整数部分 ans 是满足 k2
阅读全文
摘要:题目描述 积分(grade)表, id为用户主键id,number代表积分情况,让你写一个sql查询,积分表里面出现三次以及三次以上的积分,查询结果 注意:若有多个符合条件的number,则按number升序排序输出。 思路 1.首先使用group by对number分组聚合; 2.用count对分
阅读全文
摘要:题目描述 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 方法1 描述 考虑一个最朴素的方法:先将 a 和 b 转化成十进制数,求和后再转化为二进制数。 代
阅读全文
摘要:replace 用函数修改行数据 1、使用replace sql UPDATE titles_test SET emp_no = REPLACE(emp_no, 10001, 10005) WHERE id = 5; 2、使用insert 有遇到重复主键了就进行更新emp_no的值 INSERT I
阅读全文
摘要:ALTER用法 ALTER TABLE 表名 ADD 列名/索引/主键/外键等; ALTER TABLE 表名 DROP 列名/索引/主键/外键等; ALTER TABLE 表名 ALTER 仅用来改变某列的默认值; ALTER TABLE 表名 RENAME 列名/索引名 TO 新的列名/新索引名
阅读全文
摘要:SQL239 将titles_test表名修改为titles_2017 题目描述 将titles_test表名修改为titles_2017。 思路 关于MySQL中ALTER TABLE 的命令用法 ALTER TABLE 表名 ADD 列名/索引/主键/外键等; ALTER TABLE 表名 DR
阅读全文
摘要:66. 加一 题目描述 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 方法 数学 如果存在目标值,直接返回 否则一直搜索,最后返回leftindex。 如
阅读全文
摘要:SQL238 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005 题目描述 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用replace实现,直接使用update会报错。 思路 1、使用repla
阅读全文
摘要:58. 最后一个单词的长度 题目描述 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 方法 从字符串最后开始遍历 从第一个不等于空字符开始计数,如果再为空结束 代码 package ea
阅读全文
摘要:SQL237 将所有to_date为9999-01-01的全部更新为NULL 题目描述 将所有to_date为9999-01-01的全部更新为NULL,且 from_date更新为2001-01-01。 思路 表更新语句结构: UPDATE 表名 SET 字段=值 WHERE 过滤条件 代码 upd
阅读全文
摘要:35. 搜索插入位置 题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。 如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 方法 二分查找 如果存在目标值,直接返回 否则一直搜索,最后返回leftindex。 如果最
阅读全文
摘要:SQL236 删除emp_no重复的记录,只保留最小的id对应的记录。 题目描述 删除emp_no重复的记录,只保留最小的id对应的记录。 思路 1.找出每个emp_no里对应的最小id。2.删除除1里记录的所有数据。 如果直接使用 delete from titles_test where id
阅读全文
摘要:27. 移除元素 题目描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 方法1 思
阅读全文
摘要:SQL228 批量插入数据 题目描述 请你对于表actor批量插入如下数据(不能有2条insert语句哦!) 方法 对表批量插入数据。Mysql insert into 表名 values(v1,v2,..),values(v1,v2,...),... 代码 insert into actor(ac
阅读全文
摘要:21. 合并两个有序链表 题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 方法 暴力算法 先判断是否有一个为空,有则直接返回另一个即可 新创建一个链表存储排序后的结果集 将都不会null的值进行比较,存放 最后如果某个链表不会空,直接放在结
阅读全文
摘要:SQL226 将employees表的所有员工的last_name和first_name拼接起来 题目描述 现有员工表employees 请将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分。 方法 对于concat函数 语法为: co
阅读全文
摘要:20. 有效的括号 题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。 方法 java,建立一个新的栈,然后遍
阅读全文
摘要:SQL211 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary 题目描述 有一个薪水表salaries 请你获取薪水第二多的员工的emp_no以及其对应的薪水salary, 若有多个员工的薪水为第二多的薪水,则将对应的员工的emp_no和salary全部输出,并按emp_no升序排
阅读全文
摘要:14. 最长公共前缀 题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 方法 暴力算法 先判断字符串数组是否有为空,为空直接返回空 令第一个字符串作为基准进行比较 设置一个长度,作为最后最长公共前缀的长度 循环判断,选取最小长度 代码 package
阅读全文
摘要:SQL209 查找employees表emp_no与last_name的员工信息 题目 有一个员工表employees,请你查找employees表所有emp_no为奇数,且last_name不为Mary的员工信息,并按照hire_date逆序排列 方法 思路 奇数即 emp_no余2为1即可,利用
阅读全文
摘要:JZ86 在二叉树中找到两个节点的最近公共祖先 题目 给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。 注:本题保证二叉树中每个节点的val值均不相同。 方法 BFS,非递归方法 思路 算法实现 看到6和7公共祖先有5和3,
阅读全文
摘要:SQL204 获取所有非manager的员工emp_no 题目 有一个员工表employees,有一个部门领导表dept_manager,请你找出所有非部门领导的员工emp_no 方法1 子查询 select emp_no from employees where emp_no not in ( s
阅读全文
摘要:JZ85 连续子数组的最大和(二) 题目 输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,找到一个具有最大和的连续子数组。 1.子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组 2.如果存在多个最大和的连
阅读全文
摘要:SQL202 找出所有员工当前薪水salary情况 题目 请你找出所有员工具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示 解 方法1 select salary from salaries Group by salary order by salary DESC 方法2 sel
阅读全文
摘要:JZ84 二叉树中和为某一值的路径(三) 题目 给定一个二叉树root和一个整数值 sum ,求该树有多少路径的的节点值之和等于 sum 。 1.该题路径定义不需要从根节点开始,也不需要在叶子节点结束,但是一定是从父亲节点往下到孩子节点 2.总节点数目为n 3.保证最后返回的路径个数在整形范围内(即
阅读全文
摘要:查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t 知识点 where 和having 用法: 1、where、聚合函数、having在from后面的执行顺序:where>聚合函数(sum,min,max,avg,count)>having 2、若引入聚合函数来对group by结果进
阅读全文
摘要:JZ78 把二叉树打印成多行 题目 给定一个节点数为 n 二叉树,要求从上到下按层打印二叉树的 val 值,同一层结点从左至右输出,每一层输出一行, 将输出的结果存放到一个二维数组中返回。 例如:给定的二叉树是{1,2,3,#,#,4,5} [ [1], [2,3], [4,5] ] 方法 非递归层
阅读全文
摘要:JZ76 删除链表中重复的结点 题目 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 例如,给定的二叉树是{1,2,3,#,#,4,5} 该二叉树之字形层序遍历的结果是 [ [1], [3,2], [4,5] ] 方法 非递归层次遍历 思路 算法实现
阅读全文
摘要:JZ76 删除链表中重复的结点 题目 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5 方法1 哈希表进行删除 思路 算法实现 LinkedHashMap实现顺序插入,不过查
阅读全文