自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

然后就去远行

在某个地方,有些不可思议的事物正等待着被我们发现。

  • 博客(28)
  • 收藏
  • 关注

原创 leetcode —— 面试题32 - III. 从上到下打印二叉树 III

题目:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。——————————————————解题思路:使用广度优先遍历,但是题目要求每一层的输出顺序和其上一层或下一层的输出顺序是相反的。因此在广度优先遍历中将结点放进队列中的时候,我们同时保存该结点所在的层数,即放进队列中的元素是[node,d]...

2020-03-30 21:29:31 192

原创 leetcode —— 面试题 16.19. 水域大小

你有一个用于表示一片土地的整数矩阵land,该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小,返回值需要从小到大排序。示例:输入:[[0,2,1,0],[0,1,0,1],[1,1,0,1],[0,1,0,1]]输出: [1,2,4]来源:力扣(Leet...

2020-03-30 20:20:45 6116

原创 leetcode —— 513. 找树左下角的值

给定一个二叉树,在树的最后一行找到最左边的值。示例 1:示例 2:解题思路:使用广度优先遍历,因为题目要求寻找的是最底层的最左边的节点。因此我们维护一个变量——节点所在的树的高度,设根节点的高度为0,每往下一层则节点的高度加一。使用队列,队列中的元素是[节点的索引,节点的高度],这样在遍历队列的时候,当遍历到的节点的所在的高度比前面节点的高度高时,则更新题目所需要求的最底层最左边的节点...

2020-03-30 17:07:24 209

原创 leetcode —— 面试题 04.03. 特定深度节点链表

给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。示例:解题思路:使用常规的广度优先遍历就可以得到结果,这里需要稍微注意一下的是返回的得是链表,因此可以在遍历每一层的时候都创建一个链表,然后遍历结束的时候放到列表中。# Definition for a binary tree node. ...

2020-03-30 16:48:38 356

转载 python collections 模块中的 deque

collections.deque介绍collections 是 python 内建的一个集合模块,里面封装了许多集合类,其中队列相关的集合只有一个:deque。deque 是双边队列(double-ended queue),具有队列和栈的性质,在 list 的基础上增加了移动、旋转和增删等。常用方法d = collections.deque()d.append(‘a’) # 在最右边...

2020-03-30 14:21:11 1366

原创 Pandas数据操作

(1)nunique():判断表格中某一列是否存在NA值;(2)head():输出表格中的前几行;(3)shape:判断表格有几行和几列;(4)info():判断表格中每一列的数据类型;(5)groupby():依据表格中的某一个特征对表格进行划分;(6)egg():一般和groupby一起使用,用于对某一列进行操作或某一行进行操作;(7)reset_index():当某一列作为索引时...

2020-03-29 01:03:14 315

原创 Python中groupby的简单使用

首先先创建一个表格:import pandas as pddf = pd.DataFrame({'key1':list('aabba'), 'key2': ['one','two','one','two','one'], 'data1': np.random.randn(5), 'dat...

2020-03-28 13:59:55 39025 6

原创 leetcode —— 面试题36. 二叉搜索树与双向链表

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。解题思路:二叉搜索树的特点是当前节点的左子树的值小于当前节点,当前节点的右子树的值大于当前节点。而题目要求排序一个循环双向链表。我们可以发现二叉搜索树的中序遍历刚好是由小到大排序的,因此可以通过中序遍历来解决这个问题。那这个题和中序遍历有什么不一样的地方呢?我们很轻松地知道中序...

2020-03-26 16:00:35 166

原创 基于神经网络的文本分类(基于Pytorch实现)

《Convolutional Neural Networks for Sentence Classification》作者:Yoon Kim单位:New York University发表会议及时间:EMNLP 20141、文本分类简介文本分类,指的是给定分类体系,将文本分类到某个或者几个类别中。根据其目标类别的数量,文本分类涵盖了二分类、多分类、多标签分类等常见分类场景。文本分类是计...

2020-03-24 18:42:26 5615 5

转载 (转载)Python函数参数传递机制(超级详细)

Python中,函数参数由实参传递给形参的过程,是由参数传递机制来控制的。根据实际参数的类型不同,函数参数的传递方式分为值传递和引用传递(又称为地址传递),本节将对这两种传递机制做深度剖析。Python函数参数的值传递机制所谓值传递,实际上就是将实际参数值的副本(复制品)传入函数,而参数本身不会受到任何影响。值传递的方式,类似于《西游记》里的孙悟空,它复制一个假孙悟空,假孙悟空具有的能力和...

2020-03-22 23:23:03 530

原创 leetcode —— 98. 验证二叉搜索树

给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/validate-binary-search-tree著作权归领扣网络所有。商业转载...

2020-03-22 23:07:19 210

原创 Pytorch中view()方法和resize()方法的区别

1、view()通过tensor.view方法可以调整tensor的形状,但必须保证调整前后元素总数一致。view不会修改自身的数据,返回的新tensor与源tensor共享内存,即更改其中一个,另外一个也会跟着改变。在实际应用中可能经常需要添加或减少某一维度,这时squeeze和unsqueeze两个函数就派上用场。import torch as ta = t.arange(0, 6)a...

2020-03-17 22:15:07 8233

转载 pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

一、先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的数去掉第一个维数为一的维度之后就变成(3)行。squeeze(a)就是将a中所有为1的维度删掉。不为1的维度没有影响。a.squeeze(N) 就是去掉a中指定的维数为一的维度。还有一种形式就是b=torch.squeeze(a,N) a中去掉指...

2020-03-17 20:49:16 1668

原创 Python中sort()和sorted()的区别

Python中提供了两种常用的对列表进行排序的方法:使用列表对象的sort()方法;使用内置的sorted()函数;1、使用列表对象的sort()方法列表对象提供了sort()方法对于原列表中的元素进行排序。排序后原列表中的元素顺序将发生改变。列表对象的sort()方法的语法格式如下:listname.sort(key=None,reverse=False)参数说明:list...

2020-03-13 11:45:23 863

原创 Python中int(input("请输入一个数"))报错:ValueError: invalid literal for int() with base 10: '2.7'

编写下面这段代码:def division(): apple = int(input("请输入苹果个数:\n")) children = int(input("请输入孩子个数:\n")) result = apple // children print(result)if __name__ == '__main__': try: di...

2020-03-12 21:40:32 5897 2

原创 Python —— 字符串常用操作

1、计算字符串的长度由于不同字符串所占用字节数不同,所以要计算字符串的长度,需要先了解各字符串所占的字节数。在Python中,数字、英文、小数点、下划线和空格占一个字节:一个汉字可能会占用2-4字节,占几个字节取决于采用的编码。汉字在GBK/GB2312编码中占2个字节,在UTF-8/unicode编码中一般占用3个字节(或4个字节)。在Python中,提供了len()函数计算字符串的长度,语...

2020-03-12 20:25:42 644

原创 leetcode - 5. 最长回文子串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。解题思路:对于一个字符串,回文子串存在两种情况,第一种情况是???a???的回文子串,第二种情况是???aa???的回文情况,因此在遍历字符串中的每一个字符的时候,都考虑这两种情况:class Solution: def longestPalindrome(self, s: str) ->...

2020-03-12 11:03:53 126

原创 leetcode —— 877. 石子游戏

亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比赛时返回 true ,当李赢得...

2020-03-11 12:53:26 286

原创 leetcode —— 1013. 将数组分成和相等的三个部分

给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1]) 就可以将数组三等分。=============...

2020-03-11 10:47:03 205

原创 Python基本数据类型

1、数字类型1.1 整数整数包括十进制数、八进制数、十六进制数和二进制数;十进制整数:十进制整数的表现形式都很熟悉;八进制整数:由0-7组成,进位规则为“逢八进一”,并且以0o/0O开头的数,如0O123(换成十进制数为83);十六进制整数:由0-9,A-F组成,进位规则为“逢十六进一”,并且以0x/0X开头的数,如0x25(转换成十进制数为37);二进制整数:由0和1两个数组成,进...

2020-03-11 00:39:43 423

转载 Python中的各种下划线变量和方法的作用

1、单下划线 _最常见的一种使用场景是作为变量占位符,使用场景明显可以减少代码中多余变量的使用。为了方便理解,“_”可以看作被丢弃的变量名称,这样做可以让阅读你代码的人知道,这是个不会被使用的变量。a = ['a', 'b', 'c']for _, i in enumerate(a): print(i)# 输出a b c2、单下划线前缀名称(例如_pythonPoint)...

2020-03-10 20:01:37 846

原创 python中+和join()的区别

应该避免在循环中使用“+”和“+=”运算符累加字符串。这是因为字符串是不可变的,这样做会创建不必要的临时对象。推荐将每个子字符串加入列表,然后在循环结束后使用join()方法连接列表。因为字符串是不可变类型,如果要进行字符串的拼接,只能申请新的内存保存新拼接的字符串。这样每进行一次拼接就需要申请一次内存并存储结果,这会使得程序效率低。join只会进行一次内存申请,因此运行效率相对于+会快很多。...

2020-03-10 19:46:05 2553

原创 Python中的中文编码声明注释

在Python中提供一种特殊的中文编码声明注释,该注释的出现主要是为了解决Python 2.x中不支持直接写中文的问题。虽然在Python 3.x中,该问题已经不存在了。但是为了规范页面的编码,同时方便其他程序员及时了解文件所用的编码,建议在文件开始加上中文编码声明注释。语法格式如下:# -*- coding: 编码 -*- 或者# coding=编码在上面的语法中,编码为文件...

2020-03-10 16:22:26 5423 1

原创 pytorch —— 池化、线性、激活函数层

1、池化层——Pooling Layer池化运算:对信号进行“收集”并“总结”,类似水池收集水资源,因为得名池化层。收集:多变少;总结:最大值/平均值1.1 nn.MaxPool2d功能:对二维信号(图像)进行最大值池化;nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, ...

2020-03-10 14:44:24 1329

原创 pytorch —— nn网络层 - 卷积层

1、1d/2d/3d卷积卷积运算: 卷积核在输入信号(图像)上滑动,相应位置上进行乘加;卷积核: 又称为滤波器,过滤器,可认为是某种模式,某种特征;卷积过程类似于用一个模板去图像上寻找与它相似的区域,与卷积核模式越相似,激活值越高,从而实现特征提取;AlexNet卷积核可视化,发现卷积核学习到的是边缘,条纹,色彩这一些细节模式;卷积维度: 一般情况下,卷积核在几个维度上滑动就是几维卷...

2020-03-10 13:12:54 390

原创 python中is和==的区别

定义变量会有:id(唯一标识号,也可以认为是内存地址),type(变量类型),value(变量值)。等号比较的是value,如果value一样,type也一样;is比较的是id,也就是比较内存地址;强调id相同,意味着type和value必定相同;value相同type肯定相同,但id可能不同;通过代码进行验证:a = [1, 2, 3]b = [1, 2, 3]c = ...

2020-03-10 00:46:27 254

原创 pytorch —— 模型容器与AlexNet构建

1、模型容器Containerspytorch的Containers中有三个常用的模块:nn.Sequential:按顺序包装多个网络层nn.ModuleList:像python的list一样包装多个网络层nn.ModuleDict:像python的dict一样包装多个网络层1.1 容器之Sequentialnn.Sequential是nn.module的容器,用于按顺序包装一组网...

2020-03-10 00:14:26 360

原创 pytorch ——模型创建与nn.Module

1、网络模型创建步骤模型模块中分为两个部分,模型创建和权值初始化;模型创建又分为两部分,构建网络层和拼接网络层;网络层有卷积层,池化层,激活函数等;构建网络层后,需要进行网络层的拼接,拼接成LeNet,AlexNet和ResNet等。创建好模型后,需要对模型进行权值初始化,pytorch提供了丰富的初始化方法,Xavier,Kaiming,均匀分布,正态分布等。以上一切都会基于nn.Mo...

2020-03-10 00:14:09 815

空空如也

空空如也

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

TA关注的人

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