![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与Python
阿猫的自拍
这个作者很懒,什么都没留下…
展开
-
python的赋值和切片
例如 : list1=【1,2,3,4,5】list2=list1(赋值拷贝)list3=list1[ :](分片拷贝)复制拷贝及list2和list1 同时指向列表【1,2,3,4,5】所在的内存空间而分片拷贝list3 指向内存中另一个空间 即使空间中的值会一样所以list1的改变,list2 也改变了,但是list3不会改变...原创 2020-08-14 09:57:39 · 215 阅读 · 0 评论 -
leetcode二刷 --- 动态规划2
动态规划分析:如果是倒过来走的话,那么顶部的那个数就是有下面的数G(N) = min(G(N-1)+N)初始化的话肯定是第一行的数循环的话肯定是从下面一层开始往上面走啊这道题的思路是不一定要从头走起从尾走起也可以。class Solution(object): def minimumTotal(self, triangle): """ :ty...原创 2020-08-04 17:34:29 · 201 阅读 · 0 评论 -
Leetcode二刷 ---- 动态规划
裴伯纳数列重叠的子问题,overlap sub-problem,递归的问题,算的分支其实在不断的增加。就是不断的递增,很多重复的运算,这就是递归的问题。重叠子问题太多,需要保存下来,避免重叠子问题,重叠计算。反着倒过来,就可以,将大问题不断的走下去到小问题。例题1: 时间不能冲突求最优解:方法选和不选例题的推导过程:新增加的任务是否执行,通过最大化来判断,小的话我们就不执行,大...原创 2020-08-04 17:33:11 · 235 阅读 · 0 评论 -
箭指offer二刷系列:树
剑指 Offer 55 - I. 二叉树的深度第一种方法:层序遍历就是一层层的遍历然后看看有的话那么就记录下来,最终没有的话说明走完了。思路简单,写的代码也很简单。 # Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass原创 2020-07-31 20:20:52 · 114 阅读 · 0 评论 -
箭指offer二刷系列:数字查找
「数组中重复的数字」一:排序法:先进行排序,然后前一个和后一个对比,如果相等则直接输出,查找结束。时间复杂度O(nlogn),空间复杂度O(1)。class Solution: def findRepeatNumber(self, nums: List[int]) -> int: nums.sort() pre = nums[0] for i in nums[1:]: if pre!= i:原创 2020-07-29 11:06:43 · 118 阅读 · 0 评论 -
箭指offer二刷系列: Python - lru_cache和singledispatch装饰器
今天刷了一到老题目,斐波那契数列,其实用到了递归的手法,但是好像超时间了。但是无意间看到了别人用到这句话,完美的不超时间了,所以可以好好了解下。不超时代码:class Solution: @lru_cache(None) def fib(self, n: int) -> int: if n<2: return n else: return (self.fib(n-1)+self.fib(n-2))原创 2020-07-15 16:05:59 · 110 阅读 · 0 评论 -
python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
这几个东西呢,无论是在我们的numpy,还是我们的list还是我们字符串,都是可以直接使用的。我们来分别看看他们的作用。1. [:]取所有的元素2.[-1]去最后一个元素,如果是字符串就是最后一个字母3.[1:]除了第一个元素,其他的都要4.[:-1]除了倒数第一个元素,其他都保留5.[::-1]颠倒所有元素,这个比较好用,而且比reversed块6.[n::-1]先进行颠...原创 2020-02-16 21:20:17 · 573 阅读 · 0 评论 -
python学习之----爬取数据
网页基本了解-- 参考链接:https://morvanzhou.github.io/tutorials/data-manipulation/scraping/1-01-understand-website/网页的基本了解1.html格式,配合CSS和javascript显示出来,所以我们主要从html提取网页。2.head + body = html3.head 不显示,是在里面,...原创 2020-02-03 23:12:29 · 190 阅读 · 0 评论 -
和keras一起的,有pytorch味道的Tensorflow2.0 继续学习
上面一章我们已经了解了tensorflow2.0的基础了,接下来我们将用Tensorflow2.0来做一个模型,来看看一个基本的部分处理1.还有TF的官方微信公众号的文章2.参考连接2TF部分#数据class MNISTLoader():def __init__(self): mnist = tf.keras.datasets.mnist (self.train_dat...原创 2020-01-04 18:05:30 · 211 阅读 · 0 评论 -
有pytorch味道的Tensorflow2.0 基础学习
代码参考自: Tensorflow官方微信公众号1.Tensorflow下用都是tf 写的格式,数据也是,所以如果来自pytorch的话需要转化一下,比如:可以运行cons_tensor = tf.constant([[1,2],[3,4]],dtype=tf.int32)不可以运行cons_tensor = tf.constant([[1,2],[3,4]],dtype=int32...原创 2020-01-04 12:31:48 · 260 阅读 · 0 评论 -
Tensorflow serving keras转哦--- 一键部署和并发测试进阶记录
实现一键布署:1.一键安装全部环境,上一篇文章说了基本的操作 《keras模型的布署在Tensorflow serving — 基础记录》,那么我们是否要手把手自己去安装呢?如果对方使用你的东西,但是不是很熟悉我们是否可以辅助安装,是肯定的,我们可以写一个sh文件,也就是.sh脚本文件参考链接1参考链接22.docker-compse 一键部署:tensorflow-serving和we...原创 2020-01-02 16:51:33 · 1146 阅读 · 3 评论 -
Keras学习率调整的方式
方法一方法二原创 2019-12-18 18:03:30 · 645 阅读 · 0 评论 -
macbook换源,让你想下什么就下什么
参考链接原创 2019-11-27 22:45:18 · 159 阅读 · 0 评论 -
python — —写好__init__.py很关键哦
今天,写代码,发现一直import都不行,就是当你的有__init__.py 在的时候,你不能直接将同一层的py文件导入到同一层的另一个文件中。一开始没有意识到__init__.py的问题。后来,突然一闪而过,开始怀疑__init__.py的存在。决定明天再试试这个问题,现在先搞懂__init__.py的作用。参考链接1所以先弄懂__init__.py吧,然后再看看有没有方法。写代码总是会无法...原创 2019-11-27 10:30:45 · 5291 阅读 · 1 评论 -
数据分类处理---python
说明:读取数据的名字,然后根据数据的名字进行分类,还涉及到图像的名字在csv文件中的查找,用到的有glob,os,会有就是处理数据的pandas工具。import globimport osimport pandas as pdimport shutilimport os.path as op#不动原来的文件,避免数据混乱#只需要在原来的文件中创建三个文件#失败的#封面#不...原创 2019-11-21 10:23:33 · 304 阅读 · 0 评论 -
np.argmax()学习
[参考链接](https://www.jianshu.com/p/5edeaa3e335b)原创 2019-11-19 17:58:00 · 232 阅读 · 0 评论 -
剑指offer ----奇偶排序问题
from collections import dequeclass Solution: def reOrderArray(self, array): # write code here odd = deque() x = len(array) for i in range(x): if array[...原创 2019-08-04 00:29:06 · 123 阅读 · 0 评论 -
剑指offer ----- 对称的二叉树分析
首先复制一个树,然后传入,递归的判断左右两边是否相同,相同就是对称树。终止条件就是遍历完,遍历的过程中需要不断的返回判断的结果。class Solution: def isSymmetrical(self, pRoot): def judge(pRoot,Root): if pRoot == None and Root == None: ...原创 2019-08-29 15:03:15 · 77 阅读 · 0 评论 -
剑指offer --- 字符流中第一个不重复的字符
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。python 字典:这题会用到python 的字典,也因此可以把字典拿出来看看。之前已经涉及到了比如字符串,然后更多的是列表list,还有就是独一无二的集合set。https://w...原创 2019-08-29 18:00:55 · 166 阅读 · 0 评论 -
二刷剑指offer-- 01.02.03.04.05.06.07.08.09
01题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路一暴力破解法:每一行看看在在里面即可思路二:从左下角走起:class Solution: # array 二维列表 #从左下角元素往上查找,右边元素是比这个元素大,上...原创 2019-08-31 18:12:45 · 464 阅读 · 0 评论 -
二刷剑指offer--10.11.12.13.14.15.16.17.18 --30
10数值的整数次方给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0思路一:python内嵌函数法:熟悉下python 的方法也是挺好滴。class Solution: def Power(self, base, exponent): return pow(base,e...原创 2019-09-01 17:55:02 · 262 阅读 · 0 评论 -
剑指offer ---- 二叉树的下一个结点
总结规律法:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。首先中序遍历的话。应该是左中右:总结下规律:1.有右子树的,那么下个结点就是右子树最左边的点;2.是父节点左孩子(eg:N,I,L) ,那么父节点就是下一个节点3.是父节点的右孩子(eg:H,J,K,M)找他的父节点的父节点的父节点…直到当前...原创 2019-08-29 12:40:42 · 59 阅读 · 0 评论 -
剑指offer --- 正则项匹配
考察的是递归,然后就是or的情况的递归,只要有一种情况是对的,那么就是对的,也就是发挥了作用。这里就是分析多种情况只要有一种是对的,那么就是对的,所以or基本上都是用or了。只有有一种情况符合,那么就是符合的。# -*- coding:utf-8 -*-'''题目:请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符(不包括空字符!),而'*'表示它前面...原创 2019-08-28 21:39:10 · 70 阅读 · 0 评论 -
剑指offer ---- 和为S的连续正数序列
个人思路逻辑:首先是通过例子推导一个公式 2nx + (x-1)x = 2S其中n是序列的起始位置,然后x是序列的长度,S是给出的和。通过上面枚举x, 然后就可以得到n起始位置,然后就可以得到每个序列了。然后会发现x的长度是有范围的,这个发现减少训练的次数,因为x不能大于某个数,这样的话递增本身就超过了S的大小,更不用说加上起始点。最后的话就首先找到可能的x,然后得到了n最后就可以得到最终...原创 2019-08-28 20:33:39 · 79 阅读 · 0 评论 -
模型训练与测试---机器学习的优化方法GBDT
gbdt:梯度提升决策树。通过加法模型(即基函数的线性组合),以及不断减小训练过程中产生的残差来达到数据分类或者回归的算法。不管减少残差的过程,其实和深度学习的不断减少损失函数的过程是一致的。gbdt的训练过程:通过多轮的迭代,每轮迭代产生一个弱分类器,而每个分类器在上一轮分类器的残差基础上进行训练。对弱分类器的要求一般是足够简单,并且是低方差和高偏差的。因为训练的过程是通过降低偏差来不断提...原创 2019-08-13 15:13:31 · 1421 阅读 · 0 评论 -
剑指offer ---- 包含min方法的栈----栈的压入与输出
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。用python实现栈的话很简单,因为python本身的list其实就和栈高度相似,而且还可以比栈更简单。这里要注意的是top是指找到栈顶元素的指针。不能pop要用[-1]# -*- coding:utf-8 -*-class Solution: def __init__(self):...原创 2019-08-06 17:07:38 · 79 阅读 · 0 评论 -
剑指offer----链表倒数第K位输出
输入格式# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def FindKthToTail(self, head, k): L = [] ...原创 2019-08-04 15:22:05 · 77 阅读 · 0 评论 -
剑指offer ---- 二叉树与递归算法
二叉树的关键点之一是遍历:前序遍历中序遍历后序遍历遍历的关键点是叫啥,那个节点优先读取,这是核心。二叉树每个节点都有左子树和右子树,而不同的遍历就是每个节点位置应该先读哪个?比如前序遍历那么,每个节点就是前面的先读取,然后是左边然后是右边。中序遍历的话呢,是先左边的作为优先了。后序的话就是后面两个优先。这是核心原则,把握这个就能正确读取。每个节点先判断有无左右,有的话就开始看前中后遍历了。...原创 2019-07-31 14:09:31 · 78 阅读 · 0 评论 -
剑指offer---青蛙跳台阶问题--叠矩形问题---斐波那契数列应用发现
1.讲真,我一开始真的不是这么想的,我一心想着如何判断和循环。结果看看大家发现都是这样的思路。行吧,反正也是有道理的首先前2个台阶如果是1的话就是1种如果是2的话就是2种如果是n的话,那么第n阶台阶,他可以从n-1阶过来也可以从n-2阶过来。所以如果到了n-1阶有f(n-1)中可能性, n-2阶有f(n-2)阶种可能性。那么第n阶有f(n)的可能性,就是f( n ) =f (n-1...原创 2019-08-03 18:33:08 · 75 阅读 · 0 评论 -
小武与剑指offer的恩怨情仇
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。这道题比较简单,但是主要被我用来研究python字符串处理的常见三个方法:分别是:strip()split()replace()我的答案就是:new = s.replace(’ ‘,’%20’)那么其他的方法呢?先研究下这几...原创 2019-07-13 23:23:12 · 114 阅读 · 0 评论 -
两个栈构成一个队列------list.pop()#先进后出的效果
首先核心是要理解什么是栈(stack)什么是队列 (queue)栈的的话,堆叠之意,所以都是从顶部拿出来的,在上面的后进来,但是会先出去。队列,排过队都知道,先到先得,所以排第一位的肯定先走两个的话,栈构成队列的话。要把握核心我们是要做一个队列,所以push进去的,和pop出来就不应该一样的,不是你push了啥就先出来啥,那么就是栈了。如果用python实现的话,我们会使用list。重...原创 2019-07-30 11:56:07 · 294 阅读 · 0 评论 -
xgboost原理学习 -----深度学习和机器学习的联系
笔记整理和思考补充,参考链接: https://www.zhihu.com/question/58883125/answer/206813653模型:上面其实讲的非常好,特别是logistics 模型,熟悉的都知道logisitcs模型中的softmax就是讲输出的数值映射到两端,进而进一步的进行分类。所以比如一个手写识别的深度学习模型,一般前面是卷积层然后接上全连接层,全连接层将特征们映射...原创 2019-08-13 17:07:32 · 1343 阅读 · 0 评论 -
模型训练与测试 -----BN层()
Feature normalization Feature scaliing首先是为什么要归一化或者标准化,从下面可以看出来如果我们的输入的样本或者特征值,他们之间的差异比较大,那么其实我们的梯度下降图是畸形的。比如下面因为x1比x2小太多,所以梯度没有x2 那么浮夸。但是如果他们是一样的话,那么他们就有右边这样的东西了。所以为了好的梯度下降,我们需要针对不同的参数用不同的learning ra...原创 2019-08-23 16:38:10 · 3254 阅读 · 1 评论 -
剑指offer --- 字符串排列(未结束)
题目输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。用python自带的东西itertools 是python的迭代器模块,itertools提供的工具相当高效且节省内存。使用这些工具,你将能够创建自己定制的迭代器用于高效率的循环。https://blog.csdn...原创 2019-08-23 18:42:08 · 81 阅读 · 0 评论 -
剑指offer ----从树的算法学习递归
递归几个特点:自己调用自己一层层的的解刨,从外面往里面走,一点点的变小,最后得到了结果。https://www.zhihu.com/question/31412436/answer/683820765参考自知乎大神,在这里膜拜下,下面的记录是为了个人学习而已。如何写递归:从上面我们可以知道写递归的几个要点:第一个是明确函数本身是做什么的?递归函数本身最终会输出一个终极结果,或者在过程...原创 2019-08-25 11:15:28 · 140 阅读 · 0 评论 -
剑指offer ----- 找到树的最长深度
树的层序遍历将上面的问题转化为层序遍历的一部分问题,那么我们怎么实现层序遍历呢?顺带复习层序遍历吧。对每一层循环,获得每一层的下一层的全部结点,然后一次循环下去就可以走完全部了。当都没有下面的时候,我们就停止了吧。所以我们会用一个列表保存结果,用一个来干嘛呢?保存每一层的结果。然后就是每一层都会读取下一层。也需要保存吧!class Solution: def levelOrderBo...原创 2019-08-25 11:06:14 · 100 阅读 · 0 评论 -
剑指offer ---- 链表公共结点
class Solution:def FindFirstCommonNode(self, pHead1, pHead2):p1 = []node1 = pHead1node2 = pHead2while node1:p1.append(node1.val)node1 = node1.nextwhile node2:if node2.val in p1:return node...原创 2019-08-25 09:50:51 · 70 阅读 · 0 评论 -
剑指offer ----- 丑数
方法一:暴力拆解法,时间复杂度太高了。每个数都要算一遍了。但是这样的时间复杂度太高了基本上是不可行的class Solution: def GetUglyNumber_Solution(self, index): i = 0 count = 0 while count != index: i += 1 ...原创 2019-08-24 18:55:04 · 104 阅读 · 0 评论 -
python学习 ----- class和self结合-----结合pytorch搭建模型为例子
1.self 是什么 ?self可以理解为一个字典变量,内部存的是对象的数据属性。注意只有数据属性,而没有创建新的方法。2.类和对象:类通过实例化变成了对象。类是抽象的模版,而实例是根据类创建出来的一个个具体的对象。每个对象都从类中继承相同的方法,但是属性数值可能不同。如学生的类,我们有个对象Shawn,他的方法是身高和体重,对应的数值是178和603.定义类的方法如下:class St...原创 2019-08-11 22:07:39 · 1086 阅读 · 0 评论 -
剑指offer ----- 把数组排成最小的数---cmp
1.输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。2.思路:属于两两比较,判断的大小依据是组合的形式比如【2,3,1,5,4】,那么2和3组合 23 < 32 所以2在前3在后面,按照这个原理两两比较,最终得到了符合的排列。这里的话当然是12345.实现:...原创 2019-08-24 13:22:56 · 114 阅读 · 0 评论