自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python 二叉树深度遍历、广度遍历

广度遍历 (bfs):将每一层按从左到右的顺序输出def bfs(root:TreeNode): if root==None: return queue=[root] while queue!=[] cur=queue.pop(0) # 队列按照同一层 左节点-右节点 的顺序弹出 print(cur.item) if cur.left: queue.append(cur.left) # 队列按照同一层 左节点-右节点 的顺序存入 if cur.right

2020-10-30 15:35:25 124

原创 leetcode.20 有效的括号

class Solution: def isValid(self, s): while '{}' in s or '()' in s or '[]' in s: s = s.replace('{}', '') s = s.replace('[]', '') s = s.replace('()', '') return s == ''原理是将符合条件的括号用 ’ ’ 替代例如:" {[]} “

2020-09-19 20:37:00 85

原创 python 二分查找

二分查找只能针对有序数组def binary_search(array,item): n=len(array) point=n//2 while n>=1: if array[point]==item: return True elif array[point]<item: return binary_search(array[point+1:],item) else:

2020-08-22 23:02:10 87

原创 python归并排序,从小到大

归并排序和快速排序有一定相似,快速排序是将原始数组依据 mid_value 值,逐渐拆分至每一个元素,而归并排序是首先将数组迭代拆分,拆分至每一个元素后,再将左右元素相互比较,之后逐渐将小数组段拼接起来。假设一个数组为 array=[1,5,3,8,4,8,2,2]首先对该数组进行拆分,第一次拆分:left_array = [1,5,3,8]right_array = [4,8,2,2]第二次拆分:left_array = [1,5]right_array = [3,8]第三次拆分:lef

2020-08-19 21:12:26 319

原创 python快速排序,从小到大

快速排序的主要原理是设置一个基准值,利用游标将比基准值小的数移到数组左边,比基准值大的数移到数组右边,再将基准值放在中间。将基准值左右两边的数组利用迭代,分别进行相同操作,最后得到完整序列假设一个数组为 array=[4,2,8,7,1,3,9]选定基准值为4,mid_value=4,游标 low = 0,high = 6first 从左向右移动,low 从右向左移动,采用填坑的思路,先移动 highhigh= 6,array[high]= 9,满足条件,继续移动;high= 5,array[h

2020-08-17 22:15:35 1445

原创 python双向链表相关函数

定义一个双向链表class DoubleLinklist(object): def __init__(self,node): self._head=node和单向链表一样,第一个节点的 pre 部分不需要定义双向链表相关函数2.1 头插法 add(item) def add(self,item): node=Node(item) cur=self._head node.next=cur self..

2020-08-13 13:25:54 184

原创 python单循环链表相关函数

定义一个单循环链表class SingleCycleLinkList(object): def __init__(self,node): self._head=node if node!=None: node.next=self._head单循环链表相关函数2.1 求长度 length( ) def length(self): cur=self._head count=0 .

2020-08-10 16:33:29 156

原创 python单链表相关函数(2)

…接上篇3.3 单链表删除函数 remove_item( item),item 表示删除的内容 def remove_item(self,item): cur=self._head pre=None while(cur!=None): if cur.item!=item: pre=cur cur=cur.next else:

2020-08-05 19:03:50 141

原创 python单链表相关函数(1)

创建一个节点对象class Node(object): def __init__(self, item): self.item = item self.next = None 创建一个链表对象class SingleLinklist(object): def __init__(self, node): self._head = node该链表的头节点为 Node 类对象,在创建链表之前要先定义一个 No.

2020-08-04 15:56:04 375

原创 python希尔排序,从小到大

希尔排序的原理是按照一定的间距 d 将数组中的元素分组,进行分别插入排序,再逐步缩小 d 的值,反复进行插入排序,最后按照正确顺序输出。假设一个数组为 array=[2,5,3,9,1,4,7,0],共8个元素采用二分法确定每次排序的间距 d ,则 d =4,2,1当 d=4 时,原数组分为(2,1)(5,4)(3,7)(9,0)四组,按照判断大小并交换顺序为(1,2)(4,5)(3,7)(0,9),之后的数组array=[1,4,3,0,2,7,5,9]当 d=2 时,上述数组分为(1,3,2

2020-07-30 14:25:31 417

原创 python插入排序,从小到大

插入排序原理:假设原数组为array=[4,6,2,7,6,9,1]1.交换后array=[4,6,2,7,6,9,1]2.1交换后array=[4,2,6,7,6,9,1]2.2交换后array=[2,4,6,7,6,9,1]3.交换后array=[2,4,6,7,6,9,1]4.1交换后array=[2,4,6,6,7,9,1]……以此类推,第 i 次大循环时将从左往右第 i+1 个元素依次与从左往右的 i 个元素比较,满足条件则交换次序。import numpy as np

2020-07-27 19:39:48 364

原创 python选择排序,从小到大

选择排序原理:假设原数组为 array=[2,6,7,5,8,4,9]1.交换后array=[2,6,7,5,8,4,9]2.1交换后array=[2,5,7,6,8,4,9]2.2交换后array=[2,4,7,6,8,5,9]3.1交换后array=[2,4,6,7,8,5,9]3.2交换后array=[2,4,5,7,8,6,9]……以此类推,可以看到,在第 i 次大循环后,可以确定从左往右第 i 个数的位置。import numpy as npdef selecti

2020-07-26 14:01:16 749

原创 python冒泡排序,从小到大

import numpy as nparray = np.random.randint(0, 11, 6)生成随机数组=============================冒泡排序基本原理:假设原数组为array=[1,5,3,6,4,8,2]1.1交换后array=[1,3,5,6,4,8,2]1.2交换后array=[1,3,5,4,6,8,2]1.3交换后array=[1,3,5,4,6,2,8]每一次大循环后将最大的一个数放在最后2.1交换后array=[1,3,

2020-07-24 15:32:51 2102

原创 正则表达式(1)------元字符

" \ +数字 "(1)表示第n个元组中的内容xu_hao_1=re.search(r'a(bca)\1','abcabca')print(xu_hao_1) #abcabca(bca)\1==bcabca;xu_hao_2=re.search(r'(a)(bca)\2','abcabca')print(xu_hao_2) #abcabcax...

2020-03-26 00:03:26 184

空空如也

空空如也

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

TA关注的人

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