摘要: 一、问题描述 牛客每次考试完,都会有一个成绩表(grade),如下: 第1行表示用户id为1的用户选择了C++岗位并且考了11001分 。。。 第8行表示用户id为8的用户选择了前端岗位并且考了9999分 请你写一个sql语句查询用户分数大于其所在工作(job)分数的平均分的所有grade的属性,并 阅读全文
posted @ 2021-02-04 23:47 小千北同学超爱写代码 阅读(205) 评论(1) 推荐(0) 编辑
摘要: 一、问题描述 构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中。CREATE TABLE employees_test(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE IN 阅读全文
posted @ 2021-02-04 23:06 小千北同学超爱写代码 阅读(122) 评论(1) 推荐(0) 编辑
摘要: 本题可以用EXISTS和IN两种方法: 使用含有关键字exists查找未分配具体部门的员工的所有信息。CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar 阅读全文
posted @ 2021-02-04 20:48 小千北同学超爱写代码 阅读(95) 评论(1) 推荐(0) 编辑
摘要: 针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引。CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date 阅读全文
posted @ 2021-02-04 20:41 小千北同学超爱写代码 阅读(176) 评论(2) 推荐(0) 编辑
摘要: 一、问题描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数) 二、代码实现 class Solution: def FirstNotRepeatingChar(self, s): 阅读全文
posted @ 2021-02-04 19:27 小千北同学超爱写代码 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 O(n). 二、代码实现 对第一个数进行判断,大于0才开始计入。 主要思想动态规划,就是如果前一个数大于0,那么就加上。 class Solution: def 阅读全文
posted @ 2021-02-04 19:02 小千北同学超爱写代码 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 一、问题 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0 二、代码实现 class Solution: def MoreThanHalfN 阅读全文
posted @ 2021-02-04 18:10 小千北同学超爱写代码 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 二、代码实现: class Solution: def Sum_Solution(self, n): if n ==0: return 0 e 阅读全文
posted @ 2021-02-04 17:15 小千北同学超爱写代码 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 二、代码实现 class Solution: def TreeDepth(self, pRoot): if pRoot is None: return 0 coun 阅读全文
posted @ 2021-02-04 17:04 小千北同学超爱写代码 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 将源二叉树转换成镜像二叉树,主要是左右节点互换 二、代码实现: class Solution: def Mirror(self, root): # write code here if not root: return root root.left,root.right=root.ri 阅读全文
posted @ 2021-02-04 16:58 小千北同学超爱写代码 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 一、问题分析 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。如输入{1,3,5},{2,4,6},输出{1,2,3,4,5,6} 首先比较两个链表的头节点,如果表1的头节点更小,那么就固定表1的头节点,接下来关注表1的next部分; 表1的next部分的 阅读全文
posted @ 2021-02-04 16:51 小千北同学超爱写代码 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 二、问题分析 假设现在已经跳到了第 n 个台阶,那么前一步可以从哪些台阶到达呢? 如果上一步跳 1 步到达第 n 个台阶,说明上一步在第 n-1 个台阶。已知跳到第n-1个台 阅读全文
posted @ 2021-02-04 16:26 小千北同学超爱写代码 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 一、旋转数组 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转,例如[45123]就是[12345]的一个旋转。 二、题目分析 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 先考虑递增数组的旋转,如[12345]的一个旋转[45123],可以知道旋转过后可以分成两组数 阅读全文
posted @ 2021-02-04 16:02 小千北同学超爱写代码 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 一、栈和队列 栈的思想:先进后出,所以在python里用append()和pop()就能实现栈的push压入和pop弹出了。append每次在列表的后面添加一个元素,pop每次弹出列表的最后一个元素,做到了先进后出。 队列的思想:先进先出。 所以要用栈来实现队列的思想如下: 1.如果列表A不为空,假 阅读全文
posted @ 2021-02-04 14:51 小千北同学超爱写代码 阅读(50) 评论(0) 推荐(0) 编辑