- 博客(39)
- 收藏
- 关注
原创 牛客SQL22 统计各个部门的工资记录数
原题链接1.三表连接再筛选条件select d.dept_no,d.dept_name,count(s.salary)as sumfrom departments as d,dept_emp as d2,salaries as swhere d.dept_no=d2.dept_noand s.emp_no=d2.emp_nogroup by d.dept_no,d.dept_nameorder by d2.dept_no asc;sunm和count函数区别:Sum(列) 是求和,把所有
2021-08-19 13:25:40
199
原创 牛客SQL12获取每个部门中当前员工薪水最高的相关信息
原题链接解题思路:使用GROUP BY子句后,select 语句中只能出现group by语句中出现的字段,或者聚合函数,所以这里无法同时出现dept_no,emp_no.所以要用两张表解决.select uni.dept_no,uni.emp_no,max_salary.salaryfrom(select d.dept_no,s.emp_no,s.salaryfrom dept_emp as d inner join salaries as son d.emp_no=s.emp_noand
2021-08-18 12:52:17
228
原创 剑指10 矩形覆盖
原题链接题目分析:用n个21的小矩形覆盖2n大小的大矩形规律:n=1时,f(n)=1n=2时,f(n)=2n=3时,f(n)=3n=4时,f(n)=5…f(n)=f(n-1)+f(n-2)
2021-08-16 19:08:24
160
原创 牛客SQL8 找出所有员工当前薪水salary情况
原题链接1.order by+distinct去重select distinct salary from salarieswhere 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
154
原创 剑指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
98
原创 剑指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
75
原创 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
169
原创 剑指 跳台阶
原题链接1.跳0阶时,有0种跳法;跳一阶时,有一种跳法;跳两阶时,有两种跳法;2.跳n阶时,有从n阶到n-1阶或n-2两种跳法;即f(n)=f(n-1)+f(n-2)跟斐波那契数列比较像,但是初始值多了一个f(2)=2class Solution: def jumpFloor(self, number): # write code here num_list = [0,1,2] if number<=2: retu
2021-07-20 16:34:13
80
原创 剑指 斐波那契数列
原题链接题目分析:斐波那契数列公式为: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
111
原创 剑指 旋转数组的最小数字
原题链接题目大意:对于一个非递减数组,数组最开始的若干个元素搬到数组的末尾,比如[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
58
原创 剑指 python重建二叉树
原题链接1.使用递归方法# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: # 返回构造的TreeNode根节点 def reConstructBinaryTree(self, pre, tin): # write code here
2021-06-25 10:19:53
98
原创 剑指 用两个栈实现队列
原题链接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
76
原创 剑指 从尾到头打印链表
原题链接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
101
原创 剑指 替换空格
原题链接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
85
原创 剑指 二维数组中的查找
原题链接对于矩阵的二分查找法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
71
原创 牛客SQL 查找薪水记录超过15次的员工号emp_no以及其对应的记录次数t
原题链接select * from(select emp_no,count(distinct salary) as t from salaries group by emp_no #GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组 )T1where t>15count用法SELECT COUNT(*) FROM table_name;#COUNT(*) 函数返回表中的记录数SELECT COUNT(DISTINCT column_name
2021-06-03 15:19:23
142
原创 牛客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_noselect e.last_name,e.first_name,d.dept_no from dept_emp d inner join employees e #等值连接,返回有交集的列 on d.emp_no=e.emp_noselect e.last_name,e.
2021-06-02 17:15:27
126
原创 牛客 删除链表的倒数第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
138
原创 牛客SQL 查找入职员工时间排名倒数第三的员工所有信息
原题链接select * from employees order by hire_date desc limit 2,1不使用limitselect 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
106
原创 牛客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
80
原创 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
140
原创 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
182
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
184
原创 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
121
原创 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
141
原创 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
197
原创 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
400
原创 python 力扣707设计链表
原题链接class ListNode(object): def __init__(self, val=None, next=None): self.val = val self.next = nextclass MyLinkedList: def __init__(self): self.head=ListNode(0)#虚拟头节点设置 def get(self, index: int) -> int:#获取链表中第 i
2021-02-02 15:41:59
195
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
307
原创 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
152
原创 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
199
原创 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
186
原创 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
94
原创 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
182
原创 蛋白质二级结构预测工具psipred安装使用
参考网页参考网页参考网页Overview在linux系统中安装,使用uniref50数据库。1.下载安装包psipred http://bioinfadmin.cs.ucl.ac.uk/downloads/psipred/old_versions/psipred3.5.tar.gzblastftp://ftp.ncbi.nih.gov/blast/executables/legacy.NOTSUPPORTED/2.2.26/blast-2.2.26-x64-linux.tar.gzunir
2020-12-21 11:21:07
5547
3
原创 Linux安装使用blast
参考网页1.下载blast版本balst下载界面2.解压安装tar -zxvf ncbi-blast-2.11.0+-x64-linux.tar.gz #解压文件 mv ncbi-blast-2.11.0+ blast #重命名压缩文件为blastecho "PATH=$PATH:~/刚刚传输的路径/blast/bin" >> ~/.bashrcecho "PATH=$PATH:~/home/19mxynenu/blast/bin" >> ~/.bashrc #配置环
2020-12-17 14:10:50
2330
原创 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
191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人