- 博客(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 228
原创 pandas连接数据库建立DataFrame表
首先导pymyspl,pandas的包然后创建一个字典,将数据库内的一些属性写入字典。写一个带办的sql语句,代码基本就是,创建连接 --> 创建游标 --> 执行代办的sql语句 --> 用游标查出所有的表的内容 --> 建立DataFrame --> 关闭游标,关闭连接代码如下import pymysql #导入两个包import pandas as pdcc = { "host" : "localhost", .
2020-07-27 19:23:09 502
原创 BST树
BST树二叉排序树(Binary Sort Tree)又称二叉查找树。它或者是一棵空树;或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于左子树所在树的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于右子树所在树的根结点的值;(3)左、右子树也分别为二叉排序树;二叉排序树(B树)的查找时间复杂度与树的深度的有关。步骤:若根结点的关键字值等于查找的关键字,成功。否则:若小于根结点的关键字值,递归查左子树。若大于根结点的关键字值,递归查右子树。若
2020-07-12 13:21:57 160
原创 索引的各种操作
索引最左匹配:所谓最左原则指的就是如果你的 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 619
原创 优先队列
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 94
原创 一条SQL语句执行得很慢的原因有哪些?(索引)
待处理的数据过多,导致过度容器爆满当我们要在数据库中更新或者插入数据的时候,这些是待处理的字段,会储存到一个临时的容器(redo log 日记),待空闲时才会将这些待处理的数据一条一条的同步到磁盘,而当数据库不断更新,数据庞大的时候,容器被填满,所以为了数据不丢失,会停止其他的操作,全身心的将数据同步到磁盘,这时候sql的语句执行的就会很慢。需要的表被占用当你在执行一个语句的时候,应到的表刚好被别人占用,并且加了锁,或者所需要的某一行被加锁,这样只能等他解锁了。只能等!!!如果要判断是否真的在等待锁
2020-07-05 23:48:16 424
原创 力扣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 198
原创 力扣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 133
原创 力扣477(计算两个数组的汉明距离总和)位运算
本体运用位运算,通过遍历列表的每一个元素,并将每一个元素的每一位(0~32)&1 ,得出0和1 个个数,将0个个数和1 的个数相乘即为汉明距离
2020-06-29 11:43:53 338
原创 双指针 ,栈,队列的定义
双指针对撞指针:指针的初始位置在开头和结尾,通过指针的向中心移动,将整个数组的取值都遍历一遍,达到取到数组内每一个值得效果。例如,求数组内的两个数的和等于给定值等。分离指针 :在两个数组内分别遍历的两个指针。例如,合并列表,去两个列表的交集等。快慢指针:两个指针初始位置在开头,快指针移动,遍历数组,慢指针将符合条件的值从头赋值,达到将需要的值都移动到前面。例如,移动零,列表去重等。栈一个竖向的存储容器,从顶部插入数据,从顶部删除数据,像一个子弹夹。数组和链表队列一个横向的存储容器,
2020-06-28 13:50:15 296
原创 力扣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 353
原创 力扣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 173
原创 链表的 压栈,弹栈,大小 和 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 133
原创 力扣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 194 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 270
原创 栈(栈内数据的添加(压栈),删除(弹栈),查询大小,查询是否为空等操作)
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 335
原创 力扣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 457
原创 链表节点的添加,插入和追加
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 657
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人