- 博客(39)
- 收藏
- 关注
原创 牛客SQL22 统计各个部门的工资记录数
原题链接 1.三表连接再筛选条件 select d.dept_no,d.dept_name,count(s.salary)as sum from departments as d,dept_emp as d2,salaries as s where d.dept_no=d2.dept_no and s.emp_no=d2.emp_no group by d.dept_no,d.dept_name order by d2.dept_no asc; sunm和count函数区别: Sum(列) 是求和,把所有
2021-08-19 13:25:40
305
原创 牛客SQL12获取每个部门中当前员工薪水最高的相关信息
原题链接 解题思路: 使用GROUP BY子句后,select 语句中只能出现group by语句中出现的字段,或者聚合函数,所以这里无法同时出现dept_no,emp_no.所以要用两张表解决. select uni.dept_no,uni.emp_no,max_salary.salary from (select d.dept_no,s.emp_no,s.salary from dept_emp as d inner join salaries as s on d.emp_no=s.emp_no and
2021-08-18 12:52:17
338
原创 剑指10 矩形覆盖
原题链接 题目分析: 用n个21的小矩形覆盖2n大小的大矩形 规律:n=1时,f(n)=1 n=2时,f(n)=2 n=3时,f(n)=3 n=4时,f(n)=5 … f(n)=f(n-1)+f(n-2)
2021-08-16 19:08:24
245
原创 牛客SQL8 找出所有员工当前薪水salary情况
原题链接 1.order by+distinct去重 select distinct salary from salaries where to_date='9999_01_01' order by salary desc; order by 用于排序,一般与asc升序或desc降序一起使用(默认升序). 例:select * from table order by column desc;(表示根据column降序查询) group by 用于分类汇总,一般与聚合函数(比如avg平均、sum合计、max
2021-08-11 23:39:22
242
原创 剑指9 跳台阶扩展问题
原题链接 公式推导: f(n)=f(n-1)+f(n-2)+…+f(1) f(n-1)=f(n-2)+…f(1) 得:f(n)=2*f(n-1) 1.递归法 class Solution: def jumpFloorII(self, number): # write code here if number==0 or number==1: return 1 return self.jumpFloorII(number-1)*2
2021-08-10 23:41:53
158
原创 剑指34 第一个只出现一次的字符
原题链接 1.使用哈希表 class Solution: def FirstNotRepeatingChar(self, s): # write code here ls=[0]*256 for i in s: ls[ord(i)]+=1#ord()函数返回字符串对应ASCII值或者Unicode 数值 for i in s: if ls[ord(i)]==1:
2021-08-05 15:42:30
134
原创 Linux 下载文件
下载单个文件 wget https://files.pythonhosted.org/packages/bb/35/169eec194bf1f9ef52ed670f5032ef2abaf6ed285cfadcb4b6026b800fc9/xgboost-1.4.2-py3-none-manylinux2010_x86_64.whl 下载文件时经常会出现因为网络等他问题,下了部分后就中断了,可以使用wget -c 重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着
2021-07-30 13:38:38
330
原创 剑指 跳台阶
原题链接 1.跳0阶时,有0种跳法;跳一阶时,有一种跳法;跳两阶时,有两种跳法; 2.跳n阶时,有从n阶到n-1阶或n-2两种跳法;即f(n)=f(n-1)+f(n-2) 跟斐波那契数列比较像,但是初始值多了一个f(2)=2 class Solution: def jumpFloor(self, number): # write code here num_list = [0,1,2] if number<=2: retu
2021-07-20 16:34:13
139
原创 剑指 斐波那契数列
原题链接 题目分析: 斐波那契数列公式为:f[n] = f[n-1] + f[n-2], 初始值f[0]=0, f[1]=1,目标求f[n] 1.直接根据公式使用递归,一般会导致运行超时 class Solution: def Fibonacci(self, n): # write code here if n==0 or n==1: return n return self.Fibonacci(n-1)+self.Fibona
2021-07-09 11:27:21
181
原创 剑指 旋转数组的最小数字
原题链接 题目大意: 对于一个非递减数组,数组最开始的若干个元素搬到数组的末尾,比如[3,4,5,1,2]旋转前的数组为[1,2,3,4,5]。即将其分割成两个有序数组。可以直接使用顺序遍历,时间复杂度为O(n)。 class Solution: def minNumberInRotateArray(self, rotateArray): # write code here first=0 last=len(rotateArray)-1
2021-07-01 20:59:33
113
原创 剑指 python重建二叉树
原题链接 1.使用递归方法 # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回构造的TreeNode根节点 def reConstructBinaryTree(self, pre, tin): # write code here
2021-06-25 10:19:53
146
原创 剑指 用两个栈实现队列
原题链接 class Solution: def __init__(self): self.stack1=[] self.stack2=[] def push(self, node):#进栈进1栈 # write code here self.stack1.append(node) def pop(self):#若栈2为空,先push再pop;若栈2不为空,则直接pop # return xx
2021-06-24 10:21:09
123
原创 剑指 从尾到头打印链表
原题链接 1.使用栈 class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): # write code here temp=[] result=[] while listNode: temp.append(listNode.val)#进栈 listNode=lis
2021-06-19 15:15:16
159
原创 剑指 替换空格
原题链接 class Solution: def replaceSpace(self , s ): result='' for item in s.split(' '): result+=item result+='%20' return result[:-3] split用法 str.split(’ ‘, 1 ); # 以空格为分隔符,分隔成两个 字符串添加 (1).join()方法 (.join()
2021-06-19 10:28:58
127
原创 剑指 二维数组中的查找
原题链接 对于矩阵的二分查找法 class Solution: def Find(self,target,array): row=len(array)-1 col=len(array[0])-1 i=0 #二分查找点选择左下角或右上角的点 j=col while i<=row and j>=0: if target>array[i][j]:#找到比val值大的点
2021-06-18 15:38:00
113
原创 牛客SQL 查找薪水记录超过15次的员工号emp_no以及其对应的记录次数t
原题链接 select * from( select emp_no,count(distinct salary) as t from salaries group by emp_no #GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组 )T1 where t>15 count用法 SELECT COUNT(*) FROM table_name;#COUNT(*) 函数返回表中的记录数 SELECT COUNT(DISTINCT column_name
2021-06-03 15:19:23
214
原创 牛客SQL 查找所有已经分配部门的员工的last_name和first_name以及dept_no
原题链接 select e.last_name,e.first_name,d.dept_no from dept_emp d,employees e where d.emp_no=e.emp_no select e.last_name,e.first_name,d.dept_no from dept_emp d inner join employees e #等值连接,返回有交集的列 on d.emp_no=e.emp_no select e.last_name,e.
2021-06-02 17:15:27
241
原创 牛客 删除链表的倒数第n个节点
力扣19 牛客链接 快慢指针法 class Solution: def removeNthFromEnd(self , head , n ): fast=head newHead=ListNode(None)#创建头节点可以解决空链表的问题 newHead.next=head pre=newHead for i in range(n): fast=fast.next while f
2021-06-01 15:08:30
210
原创 牛客SQL 查找入职员工时间排名倒数第三的员工所有信息
原题链接 select * from employees order by hire_date desc limit 2,1 不使用limit select e1.* from employees as e1 where ( select count(distinct e2.hire_date) from employees as e2 #distinct用于返回唯一不同的值,COUNT(*)函数返回在给定的选择中被选的行数 where e2.hire_da
2021-05-27 10:10:49
153
原创 牛客SQL 入门 入职最晚的员工信息
原题链接 select*from employees where hire_date=(select max(hire_date)from employees); select*from employees order by hire_date desc#ORDER BY默认从小到大排序,desc从大到小排序 limit 0,1;#在limit后面添加的第一个数字m代表显示结果集中的前m行,第二个数字n则代表的是从m+1行开始数n行进行显示 select*from employe
2021-05-26 16:40:52
145
原创 python力扣 383赎金信
原题链接 class Solution: def canConstruct(self, ransomNote: str, magazine: str) -> bool: str=[0]*26 for i in magazine: str[ord(i)-97]+=1 for j in ransomNote: str[ord(j)-97]-=1 for k in str:
2021-04-01 10:19:06
272
原创 python 力扣454四数相加 II
原题链接 class Solution: def fourSumCount(self, A, B, C, D) -> int: dict={} for i in A:#遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到dict中 for j in B: if i+j in dict: dict[i+j]+=1 else:
2021-03-31 12:29:32
301
3
原创 python 力扣 202快乐数
原题链接 class Solution: def isHappy(self, n: int) -> bool: s=set() while n not in s:#如果出现重复一定不是 next=0 for i in str(n): next+=int(i)*int(i)#求和 if next==1: return True
2021-03-28 20:47:39
302
原创 python 349两个数组的交集
原题链接 参考c++代码 class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { unordered_set<int> result_set; // 存放结果 unordered_set<int> nums_set(nums1.begin(), nums1.
2021-03-27 17:03:00
206
原创 python力扣 242有效的字母异位词
原题链接 class Solution: def isAnagram(self, s: str, t: str)-> bool: if len(s)!=len(t): return False set=[0]*26#定义包含26个英文字母的数组(数组就是简单的哈希表,但是大小受限) for i in range(len(s)): set[ord(s[i])-97]+=1#定义数组索引,小写a-z对应
2021-03-26 13:08:39
219
原创 python力扣142环形列表2
原题链接 class Solution: def detectCycle(self, head: ListNode) -> ListNode: fast=head slow=head while fast and fast.next: fast=fast.next.next slow=slow.next#快慢指针法判断是否有环 if (fast==slow):#快慢指针相遇点
2021-03-22 10:10:27
298
原创 python力扣206反转链表
原题链接 1.双指针反转 class Solution: def reverseList(self, head: ListNode) -> ListNode: pre=None cur=head while cur:#当cur==Null时循环结束 tmp=cur.next cur.next=pre pre=cur cur=tmp re
2021-02-06 01:08:35
501
原创 python 力扣707设计链表
原题链接 class ListNode(object): def __init__(self, val=None, next=None): self.val = val self.next = next class MyLinkedList: def __init__(self): self.head=ListNode(0)#虚拟头节点设置 def get(self, index: int) -> int:#获取链表中第 i
2021-02-02 15:41:59
290
1
原创 python力扣203移除链表元素
原题链接 class Solution: def removeElements(self, head: ListNode, val: int) -> ListNode: node = ListNode(None) node.next = head#设置虚拟结点 p = node while p.next: if p.next.val != val: p = p.next
2021-01-21 01:01:05
431
原创 python 力扣35数组搜索插入位置
原题链接 class Solution(object): def searchInsert(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ left=0 right=len(nums) while left<right:#二分法查找
2021-01-19 21:21:40
227
原创 python 力扣59螺旋矩阵II
原题链接 模拟顺时针画矩阵过程 class Solution(object): def generateMatrix(self, n): """ :type n: int :rtype: List[List[int]] """ res= [[0 for _ in range(n)] for _ in range(n)]#构建二维数组矩阵 mid=n//2#python中//除法结果取整 l
2021-01-19 00:29:35
307
原创 python 力扣209长度最小的子数组
原网链接 滑动窗口:就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果 class Solution: def minSubArrayLen(self, s, nums): """ :type s: int :type nums: List[int] :rtype: int """ i=0#i滑窗起始位置 sum=0 result= float('inf')#
2021-01-18 13:55:09
302
原创 python27列表移除元素
原网页题目 双指针法 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作,双指针法是将时间复杂度O(n^2)的解法优化为 O(n)的解法 class Solution: def removeElement(self, nums, val): """ :type nums: List[int] :type val: int :rtype: int """ slowIndex=0
2021-01-16 19:02:05
162
原创 python 力扣1两数之和
网页链接 1.第一版 class Solution(object): def twoSum(self, nums, target): count=len(nums) for i in range(0,count-1): for j in range(i+1,count): if nums[i]+nums[j]==target: list.append(i)
2021-01-13 17:20:12
302
原创 蛋白质二级结构预测工具psipred安装使用
参考网页 参考网页 参考网页 Overview 在linux系统中安装,使用uniref50数据库。 1.下载安装包 psipred http://bioinfadmin.cs.ucl.ac.uk/downloads/psipred/old_versions/psipred3.5.tar.gz blast ftp://ftp.ncbi.nih.gov/blast/executables/legacy.NOTSUPPORTED/2.2.26/blast-2.2.26-x64-linux.tar.gz unir
2020-12-21 11:21:07
7367
4
原创 Linux安装使用blast
参考网页 1.下载blast版本 balst下载界面 2.解压安装 tar -zxvf ncbi-blast-2.11.0+-x64-linux.tar.gz #解压文件 mv ncbi-blast-2.11.0+ blast #重命名压缩文件为blast echo "PATH=$PATH:~/刚刚传输的路径/blast/bin" >> ~/.bashrc echo "PATH=$PATH:~/home/19mxynenu/blast/bin" >> ~/.bashrc #配置环
2020-12-17 14:10:50
2620
原创 python 力扣49字母异位词分组
原题链接 class Solution(object): def groupAnagrams(self, strs): result=[] dict={} #创建空字典 for str in strs: string=''.join(sorted(str)) if string in dict: dict[string].append(str)
2020-12-16 11:16:29
294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅