自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-04-09

爬取链家小区数据以及对应经纬度(小区名称在高德里面有对应的才可爬到(大部分都可以))下面是代码了,需要改的备注上有写,先爬取链家数据,建完表以后,在爬取高德数据。注意链家的页数不要写超出范围,不然会报错。高德key申请网址 : https://console.amap.com/dev/id/chooseimport requestsimport time,datetimeimport csvimport jsonimport refrom lxml import htmlimpor

2021-04-09 17:19:29 157

原创 pandas连接数据库建立DataFrame表

首先导pymyspl,pandas的包然后创建一个字典,将数据库内的一些属性写入字典。写一个带办的sql语句,代码基本就是,创建连接 --> 创建游标 --> 执行代办的sql语句 --> 用游标查出所有的表的内容 --> 建立DataFrame --> 关闭游标,关闭连接代码如下import pymysql #导入两个包import pandas as pdcc = { "host" : "localhost", .

2020-07-27 19:23:09 462

原创 BST树

BST树二叉排序树(Binary Sort Tree)又称二叉查找树。它或者是一棵空树;或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于左子树所在树的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于右子树所在树的根结点的值;(3)左、右子树也分别为二叉排序树;二叉排序树(B树)的查找时间复杂度与树的深度的有关。步骤:若根结点的关键字值等于查找的关键字,成功。否则:若小于根结点的关键字值,递归查左子树。若大于根结点的关键字值,递归查右子树。若

2020-07-12 13:21:57 127

原创 索引的各种操作

索引最左匹配:所谓最左原则指的就是如果你的 SQL 语句中用到了联合索引中的最左边的索引,那么这条 SQL语句就可以利用这个联合索引去进行匹配,值得注意的是,当遇到范围查询(>、<、between、like)就会停止匹配。假设,我们对(a,b)字段建立一个索引,也就是说,你where后条件为a = 1a = 1 and b = 2是可以匹配索引的。但是要注意的是~你执行b= 2 and a =1也是能匹配到索引的,因为Mysql有优化器会自动调整a,b的顺序与索引顺

2020-07-12 13:00:54 514

原创 优先队列

class PriorityQueue: def __init__(self): self.array = [] #定义一个数组 self.size = 0 #数组的大小 def enqueue(self, data): #数组添加值 self.array.append(data) # 列表一样 用append加值 self.size += 1 self.heapify_up() #调用下面的 heapi

2020-07-09 19:58:36 70

原创 一条SQL语句执行得很慢的原因有哪些?(索引)

待处理的数据过多,导致过度容器爆满当我们要在数据库中更新或者插入数据的时候,这些是待处理的字段,会储存到一个临时的容器(redo log 日记),待空闲时才会将这些待处理的数据一条一条的同步到磁盘,而当数据库不断更新,数据庞大的时候,容器被填满,所以为了数据不丢失,会停止其他的操作,全身心的将数据同步到磁盘,这时候sql的语句执行的就会很慢。需要的表被占用当你在执行一个语句的时候,应到的表刚好被别人占用,并且加了锁,或者所需要的某一行被加锁,这样只能等他解锁了。只能等!!!如果要判断是否真的在等待锁

2020-07-05 23:48:16 380

原创 力扣142(入环点),快慢指针

class Solution: def detectCycle(self, head: ListNode) -> ListNode: s = head #定义s和f在开头 f = head while f and f.next: #当f和f的下一个位置不为空的时候 s = s.next #s向前走一步 f = f.next.next #f向前走两步 if s == f: #

2020-06-30 10:06:21 152

原创 力扣9(回文数),扩散指针

def huiwenshu(strs): if len(strs) < 2: #当字符串的长度小于2的时候,返回字符串 return strs maxlen = 0 maxstr = "" for i in range(len(strs)): jishu = ss(strs,i,i) #将数据传给ss函数,返回奇数的回文数 oushu = ss(strs,i,i+1) #将数据传给ss函数,返回偶数的回文数

2020-06-30 09:29:45 111

原创 力扣477(计算两个数组的汉明距离总和)位运算

本体运用位运算,通过遍历列表的每一个元素,并将每一个元素的每一位(0~32)&1 ,得出0和1 个个数,将0个个数和1 的个数相乘即为汉明距离

2020-06-29 11:43:53 273

原创 双指针 ,栈,队列的定义

双指针对撞指针:指针的初始位置在开头和结尾,通过指针的向中心移动,将整个数组的取值都遍历一遍,达到取到数组内每一个值得效果。例如,求数组内的两个数的和等于给定值等。分离指针 :在两个数组内分别遍历的两个指针。例如,合并列表,去两个列表的交集等。快慢指针:两个指针初始位置在开头,快指针移动,遍历数组,慢指针将符合条件的值从头赋值,达到将需要的值都移动到前面。例如,移动零,列表去重等。栈一个竖向的存储容器,从顶部插入数据,从顶部删除数据,像一个子弹夹。数组和链表队列一个横向的存储容器,

2020-06-28 13:50:15 265

原创 力扣704(二分查找)两种方法(二分法,递归法)

def ss(val , nums , left ,right):#定义if right > 0 : mid = left + (right - left) // 2 if val == nums[mid]: return mid elif val > nums[mid]: return ss(val , nums , left+1 , right) #给定义的未知量重新定义 else: return ss(val

2020-06-26 17:24:59 292

原创 力扣88(合并有序数组),分离指针方法

def s(lis1,lis2):#定义l1 =len(lis1)-1l2 =len(lis2)-1lis3 = [None] * (l1+l2+2)k = l1+l2+1while l1>=0 and l2 >=0: #将l1 或 l2运行结束 ll1 = lis1[l1] ll2 = lis2[l2] if ll1 >= ll2 : lis3[k] = ll1 l1-=1 else: lis3[k

2020-06-26 17:20:13 149

原创 链表的 压栈,弹栈,大小 和 None与否 python

class prin: #定义一个输出函数def __init__(self,head): self.head =head self.next= Nonedef __repr__(self): return f"{self.head}"class zhan:定义链表的压栈,弹栈,大小是否为空def __init__(self): self.head = None self.size = 0def yazhan(self,x): shu = prin

2020-06-26 14:40:17 113

原创 力扣349(取交集并去重)分离指针法

def intersection(nums1,nums2):nums1.sort()nums2.sort()i = 0j = 0set_ = set()while i<len(nums1) and j <len(nums2): w = nums1[i] q = nums2[j] if w > q : j+=1 elif q>w: i+=1 else: set_.add(w)

2020-06-26 14:35:03 153 1

原创 力扣283(移动零),快慢指针

class Solution:def moveZeroes(self, nums): s = 0 f = 0 while f < len(nums): if nums[f] == 0: f += 1 else: nums[s] = nums[f] s += 1 f += 1 for i in range(s, len(nums)):

2020-06-26 14:13:52 175

原创 栈(栈内数据的添加(压栈),删除(弹栈),查询大小,查询是否为空等操作)

class zhan:def __init__(self): self.stack = [] self.size = 0def __str__(self): return str(self.stack)def __bool__(self): return bool(self.stack)def yazhan(self,shu): self.stack.append(shu) self.size +=1def tanzhan(self): if

2020-06-26 14:11:56 294

原创 力扣1(两数之和)三种方法(双指针)(暴力解决法)(字典储存)

class ss:def top(self,lis,shu): l = 0 r = len(lis) - 1 while r > l: pp = lis[l] + lis[r] if pp == shu : print(lis[l],lis[r]) l += 1 r -= 1 elif pp > shu: r-=1

2020-06-26 14:09:18 353

原创 链表节点的添加,插入和追加

class node:def __init__(self,dd): self.dd =dd self.next = Nonedef __repr__(self): return f"{self.dd}"class lin:def __init__(self): self.head = None def insert_h(self,dd): nw = node(dd) if self.head is not None: nw.

2020-06-19 14:40:24 606

空空如也

空空如也

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

TA关注的人

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