自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 删除k个数字后的最小值

问题描述:给出一个整数,从该整数中去掉K个数字,要求剩下的数字形成的新整数尽可能小。问题分解:转化为先去掉一个数字问题。删除的不仅仅是最大的数字,而且是删除高位的数字。如何把高位的数字降低呢?把原整数的所有数字从左到右进行比较,如果发现某一位数字大于它右边的数字,那么删除该数字,因为右面的大数字顶替小数字位置,新整数值变小。def remove_k_digits(num, k): for i in range(0, k): has_cut = False # 从左向右遍历,找到比自己右侧

2022-04-08 11:05:17 247 1

原创 全排列的下一个数

全排列1.从后查看逆序区域,找到逆序区域的前一位,也即是数字交换的边界2.让逆序区域的前一位和逆序区域中大于它的最小的数字交换位置3.把原来的逆序区域转为顺序状态举例 1 2 4 5 3找到逆序区域边界 5交换 3 和5,得1 2 5 4 3(交换的是逆序区域里面大于交换数****4 并且是最小,所以是5)逆转逆序区域 得 125 3 4def find_nearest_number(numbers = []): # 1.从后查看逆序区域,找到逆序区域的前一位,也即是数字交换的边

2022-04-06 16:23:57 434

原创 无序数组排序后的最大相邻差

无序数组排序后的最大相邻差暴力:排序后,循环求差值“”"利用桶排序思想完成:原数组长度 n = len(array),一个桶代表一个区间范围区间跨度:(max - min )/ (n - 1)1.创建n个桶2.遍历原数组,循环插入对应桶,记录每一个桶的最大值和最小值3.遍历所有的桶,统计每一个桶的最大值和此桶右侧非空桶的最小值,求二者差,数组最大即为无序数组排序后的最大相邻差“”"class Bucket: def __init__(self): self.min = None

2022-04-05 20:13:27 274

原创 位运算总结

位运算位运算0&0=0 0&1=0 1&0=0 1&1=1& 与 两个位都为1时,结果才为1| 或 两个位都为0时,结果才为0^ 异或 两个位相同为0,相异为1取反 0变1,1变0<< 左移 各二进位全部左移若干位,高位丢弃,低位补0右移 各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)判断一个数是否是2的整数次幂# 是否是2的整数次幂d

2022-04-05 18:05:54 694

原创 最大公约数

最大公约数辗转相除法,俩个整数a和b, a%b = ca,b最大公约数就等于 b,c最大公约数def get_largest_common2(a, b): big = max(a, b) small = min(a, b) if big % small == 0: i += 1 return small return get_largest_common2(big % small, small)print(get_largest_common2(100,45))# 暴

2022-04-05 15:09:50 63

原创 最小栈,俩栈实现,辅助栈保持当前最小值

最小栈,俩栈实现,辅助栈保持当前最小值push 进栈: 首元素默认为最小栈。从第二个元素开始比较,看条件辅助栈进栈 (辅助栈进栈条件)若辅助栈为空,或新元素的值小于或等于辅助栈的栈顶元素的值,则压入辅助栈pop 出栈: 原先栈直接出栈,辅助栈看条件是否出栈 (辅助栈)如果出栈元素和辅助栈元素相等,辅助栈元素也出栈get_min 获得栈最小值:若栈空,则返回空,否则直接返回辅助站数组最后一个元素注意:pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。cl

2022-04-05 11:21:26 89

原创 判断链表是否有环

判断链表是否有环方法:创建俩个指针p1, p2,一个一次移动一个节点,一个一次移动俩个节点,比较俩个指针指向的节点是否相同,相同则有环。求环的长度?俩个指针相遇,证明有环,此时可以让慢指针回到头节点,继续循环前进,统计循环次数,直到俩个指针第二次相遇,此时统计出来的就是环的长度。因为俩个指针的速度差是一步,当俩个指针再次相遇时, P2比P1多走了一圈(或者采取代码中的方法)求出入环节点?把其中一个指针放回到头节点,另一个指针保持在首次相遇的位置,俩个指针每次都向前走一步,最终相遇的节点就是入环节

2022-04-04 21:57:53 84

原创 python实现 排序算法

各种排序算法O(n2)——————————————————————————————冒泡排序,稳定排序每一轮都要遍历所有元素,总共遍历(元素数量 - 1)轮# 冒泡排序,最大的冒泡上去,最后元素最大def bubble_sort1(array = []): for i in range(len(array) - 1): for j in range(len(array) - i - 1): if array[j] > array[j + 1]: temp = arra

2022-03-30 19:46:41 321

原创 最大优先队列

最大优先队列无论入队顺序如何,都是当前最大元素优先出队最大二叉堆实现最大优先队列每一次入队操作就是堆的插入操作每一次出队操作就是删除堆顶节点代码class PriortyQueue:# 最大优先队列,最大二叉堆,堆顶是整个堆中的最大元素 def __init__(self): self.array = [] self.size = 0 def enqueue(self,element): self.array.append(element) self.size += 1

2022-03-28 15:53:36 276

原创 二叉堆的构建

二叉堆的构建对于二叉堆,有三种操作插入节点,插入是节点上升,数组的最后一个叶子节点删除节点,删除是节点下沉意思是删除的是栈顶的节点,从头开始下沉。为了维持完全二叉树结构,会把堆的最后一个节点临时补到原来栈顶的位置构建二叉堆本职是所有非叶子节点依次下沉第一个非叶子节点 下标计算:(len(array) - 2 ) // 2关于代码优化部分,# 无需真正交换,单向赋值即可是指的对于插入,上浮,循环每次只更新孩子节点,最终确定的父节点最后循环后赋值,这个赋值是在循环开始之前:用一个temp 保

2022-03-28 11:09:02 576

原创 python:剑指 Offer 07. 重建二叉树

python:剑指 Offer 07. 重建二叉树根据前序遍历和中序遍历 输出根节点 示例输入:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]Input: preorder = [-1], inorder = [-1]Output: [-1]...

2022-03-28 10:54:33 88

原创 python 剑指 Offer 06. 从尾到头打印链表

python 剑指 Offer 06. 从尾到头打印链表用栈实现,先进后出python 感觉没啥意义,列表栈直接循环添加,然后倒序输出用到倒序输出的一个技巧 list[::-1]stack[::-1]# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass S

2022-03-24 19:30:34 1347

原创 python 递归实现树的三种遍历

python 递归实现书的三种遍历class TreeNode: def __init__(self,data): self.data = data self.left = None self.right = Nonedef create_binary_tree(input_list = []): """ 构建二叉树 param input_list:输入数列 返回根节点 node """ if input_list is None or len(input_list) ==

2022-03-24 09:58:16 2324

原创 python实现一个队列

python实现一个队列队尾指针指向的位置永远空出1位,所以队列的最大容量比数组长度小1进队 队满条件 :(self.rear + 1) % len(self.list) == self.front出队 队满条件:self.rear == self.frontclass MyQueue: def __init__(self,capacity): self.list = [None] * capacity self.front = 0 self.rear = 0 def enqueu

2022-03-23 21:09:53 835

原创 链表各种操作

链表各种操作# 定义节点Nodeclass Node: def __init__(self,data): self.data = data self.next = Node# 初始化链表class LinkedList(object): def __init__(self): self.size = 0 self.head = Node self.last = Node # 找到index节点,返回P def get(self,index): if index &

2022-03-23 20:42:11 86

原创 Python range() 函数

Python range() 函数range() 函数返回数字序列,默认从 0 开始,默认以 1 递增,并以指定的数字结束range(start, stop, step)start 可选。整数,指定从哪个位置开始。默认为 0。stop 可选。整数,指定在哪个位置结束。step 可选的。整数,指定增量。默认为 1。x = range(2, 20, 2)for n in x: print(n)24681012141618...

2022-03-23 17:22:05 649

原创 python:剑指 Offer 05. 替换空格

python:剑指 Offer 05. 替换空格先扩容,然后移动 # 原有空间上遇到空格就添加两个空格 # 设置俩个指针,一个指针指向新数组结尾 # 另一个指向旧数组结尾 # 意思是 从后往前复制,遇到空格替换为"%20"c++class Solution {public: string replaceSpace(string s) { int length = s.size(); for( int i = 0; i &

2022-03-23 09:24:24 1598

原创 剑指 Offer 04. 二维有序数组中的查找

剑指 Offer 04. 二维数组中的查找class Solution(object): def findNumberIn2DArray(self, matrix, target): # 数组的特征是向靠右和靠下数字越大 # 从二维数组左下角开始判断 上还是右 # i >= 0上到头 # j < len(matrix[0]) 最右边 i, j = len(matrix) - 1, 0 wh

2022-03-23 08:51:19 97

原创 python:剑指 Offer 03. 数组中重复的数字

python:剑指 Offer 03. 数组中重复的数字class Solution(object): def findRepeatNumber(self, nums):# 下标和value 一一对应,如果不对应就交换,# 发现一个值对应俩个下标就说明发现重复元素了,直接输出就可以了# enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,# 同时列出数据和数据下标,一般用在 for 循环当中。 for i, num in

2022-03-22 21:40:04 433

原创 python:剑指 Offer 09. 用两个栈实现队列

python:剑指 Offer 09. 用两个栈实现队列class CQueue: def __init__(self): self.stk_in = [] self.stk_out = [] def appendTail(self, value: int) -> None: self.stk_in.append(value) def deleteHead(self) -> int: # 俩个if 顺

2022-03-22 21:11:43 207

原创 批量xml数据集标签名称

import osimport xml.etree.ElementTree as ET#程序功能:批量修改数据集中xml标签文件的标签名称def changelabelname(inputpath): listdir = os.listdir(inputpath) for file in listdir: if file.endswith('xml'): file = os.path.join(inputpath,file)

2020-08-18 10:39:50 363

原创 手把手教你在ubuntu安装mysql数据库/一些数据库知识和服务器初体验

服务器初体验Xshell6和Xftp6初步使用Xshell6:可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。Xftp6:是一个功能强大的SFTP、FTP文件传输软件。我们可以使用Xshell6在Windows上操作Linux服务器,Xftp6用来将Windows文件与Linux服务器文件相互传输。具体使用方法ubuntu安装mysql数据库1.官网下载mysql,下载到是一个...

2020-07-25 16:11:37 203

原创 python保存视频或者图片地址到mysql数据库,通过pymysql

python保存视频或者图片地址到mysql数据库,通过pymysql废话不说,直接开始先创建数据库Mon,然后创建表path,然后是python代码插入效果图参考链接废话不说,直接开始本代码只是通过pymysql 把本地文件夹下的图片或者视频保存到MySQL 数据库,关于pymysql的安装参考其他博文。先创建数据库Mon,然后创建表path,然后是python代码 create table if not exists path (id int,p varchar(100)) engine=

2020-07-23 11:20:20 2472 9

运动健身app.rar

安卓源代码 带报告和视频 期末作业做的小例子 需要可以下载 帮你度过期末安卓课设 运动健身app

2020-07-04

空空如也

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

TA关注的人

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