自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 187.重复的DNA序列

187.重复的DNA序列线性时间窗口切片 + HashSet 线性时间窗口切片 + HashSet 思想: 沿着长度为N的字符串移动长度为L的窗口,将每次移动得到的结果记录下来,如果在记录表中出现这样的字符,则记录在输出表中。否则在记录表中登记该结果。 class Solution(object): def findRepeatedDnaSequences(self, s): N=len(s);L=10 #这里设置成set(),后面使用的参数设置为add.

2021-05-28 21:51:16 197

原创 Leetcode.328.奇偶链表.python

Leetcode.328.奇偶链表一、拼接奇数链表与偶数链表二、 一、拼接奇数链表与偶数链表 先将奇数节点和偶数节点分离。 奇数节点和偶数节点的头节点分别为:evenhead=head.next,odd=head,even=evenhead. 更新奇数节点的时候,odd.next=even.next, odd=odd.next. 更新偶数节点的时候,even.next=odd.next, even=even.next. 分离完毕的条件是:even/even.next=None. 最后,将奇偶链表连接起来od

2021-05-15 11:10:37 322

原创 Leetcode.203.移除链表元素.python

Leetcode.移除链表元素指针(哨兵节点) 指针(哨兵节点) 哨兵节点解密了 哨兵节点的提出是为了避免遇到需要删除头节点的情况。其主要目的是使链表标准化,如使链表永不为空、永不无头、简化插入和删除。 建立两个指针,一个指向当前节点,一个指向前一个节点。 class Solution(object): def removeElements(self, head, val): Newhead=ListNode(0,head) prev,cur=Newhead,head

2021-05-09 20:29:58 242

原创 Leetcode.206.反转链表.python

Leetcode.206.反转链表双指针递归 双指针 和之前283.移动零的想法类似。 固定两个指针,一个指针处理以及反转的部分,一个指向待反转的部分。 首先建立已经处理部分的指针的初始值:prev=None; 建立待处理部分的指针cur; 为了防止指针转向后丢失待处理节点之后的部分,首先在链表转向前,使用一个参数保存目前处理节点之后的部分。 class Solution(object): def reverseList(self, head): prev=None

2021-05-09 19:09:35 208

原创 Leetcode.33.搜索旋转排序数组.python

Leeicode.搜索旋转排序数组字典方法二分法 字典方法 暴力解法 class Solution(object): def search(self, nums, target): dictn={} for i,ele in enumerate(nums): if ele==target: return i return -1 二分法 重要的是分清target的位置,在前半段还是后半段 1.单凭

2021-05-08 22:11:53 153

原创 Leetcode.278.第一个错误的版本.python

Leetcode.第一个错误的版本二分法 二分法 由题意可知:前面的部分都是正确的版本,从第一个错误版本之后的全是错误版本。 如果isBadVersion(mid),返回的结果是True,说明找过头的,错误的版本在mid之前(包含mid),r=mid; 如果isBadVersion(mid),返回的结果是False,说明还没有找到,错误的版本在mid之后(不包含mid),l=mid+1 class Solution(object): def firstBadVersion(self, n):

2021-05-08 21:09:42 107

原创 Leetcode.162.最大峰值.python

Leetcode.最大峰值.python二分法 二分法 和153寻找最小值类似,这里是寻找极值,只需要任意一个极值即可,和两边对比即可。 如果nums[mid]>nums[mid+1],峰值在mid左侧(包含md),r=mid; 如果nums[mid]<nums[mid+1],峰值在mid右侧(不包含mid),即l=mid+1. 上述分析适用于三种种情况。 1.在开端取得峰值,使用前半部分分析来解释。 2.在结尾处取得峰值,使用后半部分分析解释 3.在中间取得峰值,结合进行分析 class S

2021-05-08 20:53:34 348

原创 Leetcode.153.寻找旋转排序数组中的最小值.python

Leetcode.寻找排序数组中的最小值快慢指针 快慢指针 这里使用的是nums[mid]<nums[r]是因为,当上式满足的时候,最小值点一定落在mid左侧(包含mid),故r=mid。 而如果nums[mid]>nums[r],则最小值一定在mid右侧(不包含mid),故l=mid+1。 如果按照nums[mid]>nums[l],只能判断最小值一定在mid左侧(不包含mid),故l=mid+1,但是当nums[mid]<nums[l]时候,不能保证判断最小值在mid左侧还是右

2021-05-08 20:10:06 175

原创 Leetcode.283.移动零.python

Leetcode.移动零.python快慢指针 快慢指针 使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。 在头节点位置分别建立快慢指针,快指针先行,如果快指针指向的节点值不为0,则将快慢指针节点进行交换, 交换后的慢指针进行移动,表示已经处理好之前的元素。 如果快指针指向的元素不为0,继续移动快指针。 class Solution(object): def moveZeroes(self, nums): l,r=0,0 #只有交换后左指

2021-05-08 18:43:29 167

原创 Leetcode.142.环形链表II.python

leetcode.环形链表II.python快慢指针 快慢指针 在已经判定是否存在环形链表的基础上进行操作 class Solution(object): def detectCycle(self, head): l=head;r=l #只要r可以顺利遍历,l就一定可以 while r and r.next: l=l.next r=r.next.next if r == l:

2021-05-08 18:23:08 155

原创 Leetcode.141.环形链表.python

leetcode.141.环形链表.python快慢指针)哈希表 快慢指针) 首先特殊情况:空链表与长度为1的链表必没有环 快慢指针:快指针每次走两步,慢指针每次走一步 如果有环形表,快慢指针终究会相遇,但是未必在终点相遇 class Solution(object): def hasCycle(self, head): l=head if l == None or l.next==None: return False r=

2021-05-08 18:12:22 160

原创 Leetcode.19.删除链表的倒数第n个节点.python

Leetcode.python.删除链表的倒数第N个节点自己解法(长度)栈 自己解法(长度) 首先获取链表长度l; 寻找链表长度l与倒数第n个节点中n的关系; index=l-n; 删除index位置节点即可。 细节: 长度为0的时候直接返回head(空链表); index=0的时候,相当于删除头节点。 class Solution(object): def length(self, head): length = 0 while head:

2021-05-08 15:54:05 282

原创 Leetcode 160.相交链表

Leetcode 相交链表使用python的三种解法自己解法哈希表方法快慢指针方法 使用python的三种解法 自己解法 拿到题之后,可以想到长链表比短链表要先多走差值步,两者才能同时到达相交点: 自定义链表长度函数 ; 求链表长度差值 ; 让较长的链表先行 ; 返回交点 。 class Solution(object): def length(self,head): cur=head l=0 while cur: l+=1

2021-05-08 14:19:48 122

原创 MySQL排序查询,常见函数,分组查询,连接查询

排序查询/常见函数/分组查询/连接查询排序查询常见函数分组函数分组查询连接查询 排序查询 语法 select 查询列表 from 表 where 筛选条件 order by 排序列表 特点 asc/desc; 排序支持单个字段、多个字段、别名、函数; order by一般放在查询语句最后(除limit之外) 常见函数 字符函数 concat substr instr upper lower replace length trim lpad rpad 数学函数 ceil round mod

2021-03-29 19:19:15 131

原创 MySQL语法规范

MySQL语法规范 不区分大小写,但是建议关键字大写,表名、列名小写。 每条命令用分号或\g结尾。 每条命令根据需要可以缩进或换行。 注释: 单行注释: #注释文字 单行注释: --注释文字 多行注释: /* 注释文字 */ ...

2021-03-06 20:59:27 201

原创 MySQL常见命令

MySQL的常见命令 查看数据库 show database; 进入某个数据库 use test; show tables; show tables from mysql; 目前还在test库,仅仅在test库中查询mysql的tables 查看自己在哪一个库: select database(); 创建table 由于目前仍在test库,创建的table也在test库中。 create table 表名( -> id int, -> name varchar(20)); 查看tes

2021-03-06 18:10:34 114

原创 MySQL的进入与退出

MySQL的进入与退出 这里写目录标题MySQL的进入与退出启动和停止登录与退出 启动和停止 1.首先要保证MySQL保证运行状态 以管理员身份打开命令提示符: 运行:net start mysql(这里是安装时自定义的服务名) 结束:net stop mysql(这里是安装时自定义的服务名) 登录与退出 前提是MySQL已经运行 1.MySQL自带的MySQL 5.5 Command Line Client输入密码即登录成功 (不建议,不够灵活,仅限于root用户) 2.同样是管理员

2021-03-06 17:30:27 154

原创 SQL第一课 了解及安装MySQL

学习SQL第一天一、保存数据的容器二、数据库的概念1.术语2.读入数据总结前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 一、保存数据的容器 1.内存(数组, 集合) 2.文件(永久存储数据,但是不方便查询) 3.数据库(实现数据持久化,管理系统完善,易于查询) 二、数据库的概念 1.术语 DB(database): 存储数据的仓库,数据库。 DBMS(database management system): 数据库是通过DBMS创建和操作的容器,数据库管理系统。 SQL (str

2021-03-01 17:29:52 269

原创 Leetcode(14.最长公共前缀)

Leetcode(14.最长公共前缀) Python 最长公共前缀 编写函数查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。如下: 输入:strs = ["flower","flow","flight"] 输出:‘fl' 输入:strs = ["dog","racecar","car"] 输出:"" 标准答案 Class Solution(object): def LongestCommonPrefix(self, strs): result = "" for i in

2021-02-27 19:22:51 127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除