- 博客(35)
- 收藏
- 关注
原创 C++刷Leetcode 563.二叉树的梯度
给定一个二叉树,计算整个树的坡度。一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值。空结点的的坡度是0。整个树的坡度就是其所有节点的坡度之和。示例:输入: 1 / \ 2 3输出: 1解释:结点的坡度 2 : 0结点的坡度 3 : 0结点的坡度 1 : |2-3| = 1树的坡度 ...
2019-12-10 20:52:58
229
原创 C++刷Leetcode 783.二叉搜索树结点最小距离
给定一个二叉搜索树的根结点root, 返回树中任意两节点的差的最小值。示例:输入: root = [4,2,6,1,3,null,null]输出: 1解释:注意,root是树结点对象(TreeNode object),而不是数组。给定的树 [4,2,6,1,3,null,null] 可表示为下图: 4 / \ 2 ...
2019-12-08 20:18:39
217
原创 C++刷Leetcode 653.两数之和IV
给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。案例 1:输入: 5 / \ 3 6 / \ \2 4 7Target = 9输出: True案例 2:输入: 5 / \ 3 6 / \ \2 4 7Target = 28...
2019-12-07 10:44:50
173
原创 C++刷Leetcode 404.左叶子之和
计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24题目链接https://leetcode-cn.com/problems/sum-of-left-leaves//** * Definition for a binary tree node....
2019-12-05 10:26:10
227
原创 C++刷Leetcode 437.路径总和III
给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8...
2019-12-04 15:23:04
157
原创 Python抽象基类及abc模块
一、抽象基类抽象基类:abstract base class,缩写为abc,即对用abc模块维基百科对抽象类的定义:抽象类被定义为永远不会也不能被实例化为具体的对象。它往往用于定义一种抽象上的概念,在类的继承关系中它往往被定义在较上层的位置。在程序设计的实践活动中,抽象类与接口存在类似的地方,即它更偏重于对共通的方法和属性进行规约。但与接口存在一个非常大的差异则在于,抽象类往往可以规约一个共...
2019-08-28 15:54:12
652
原创 Python闭包
1.作用域在理解Python闭包之前,需要理清Python的变量作用域,在Python3.x版本中,所有的变量作用域满足LEGB准则。既存在命名冲突时,按照LEGB顺序依次搜索变量。LLocalEEnclosingGGlobalBBuiltinEnclosing是外部嵌套函数的名字空间, Python3中提供了一个 nonlocal关键字来修改外部嵌...
2019-07-31 21:35:25
884
原创 C语言字节对齐二
带有#pragmapack(n)指令情况下的字节对齐根据百度百科的解释,编译器中提供了#pragmapack(n)来设定变量以n字节对齐方式。n字节对齐就是说变量存放的起始地址的偏移量有两种情况:第一、如果n大于等于该变量所占用的字节数,那么偏移量必须满足默认的对齐方式,第二、如果n小于该变量的类型所占用的字节数,那么偏移量为n的倍数,不用满足默认的对齐方式。结构的总大小也有个约束条件,分...
2019-07-29 20:23:22
407
原创 C文件读写(二)
六、rewindvoid rewind(FILE * stream),相当于调用fseek(stream, 0L, SEEK_SET),把stream移动文件头七、fgetc、fgetsint fgetc(FILE * stream):从参数stream所指的文件中读取一个字符。若读到文件尾而无数据时便返回EOFchar * fgets(char * s,int size,FIL...
2019-07-24 10:34:40
154
原创 C文件读写(一)
刷牛客网的C++专项练习时,遇到C文件读写的题目基本都是白给,这块知识是盲区。c语言文件读写相关函数及文件指针FILE *的定义都在stdio.h头文件里,以下所有操作都需要#include <stdio.h>一、fopen函数FILE *fopen( const char *name,const char *mode )fopen()返回的是一个文件指针,第一个参...
2019-07-23 16:05:43
405
原创 338.比特位计数
给定一个非负整数num。对于0 ≤ i ≤ num 范围中的每个数字i,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例2:输入: 5输出: [0,1,1,2,1,2]class Solution: def countBits(self, num: int) -> List[int]: ...
2019-06-22 15:43:14
145
原创 C语言字节对齐
在牛客刷C/C++题目时,遇到了很多结构体sizeof的问题,才发现自己不知道字节对齐这个知识点,这里恶补一波相关知识点。1.定义(百度百科给出的定义):其实字节对齐的细节和具体编译器实现相关,但一般而言,满足三个准则:1)结构体变量的首地址能够被其最宽基本类型成员的大小所整除;2) 结构体每个成员相对于结构体首地址的偏移量都是成员大小的整数倍,如有需要编译器会在成员之间加上填充...
2019-06-15 17:49:30
241
原创 侯捷《面向对象高级编程》笔记2
1.类有指针成员时,必须有拷贝构造、拷贝赋值函数2.如果没有定义拷贝构造函数,当用户进行拷贝构造时,调用默认的拷贝构造函数,浅拷贝一个对象,后期如果修改其中一个,另一个也会被修改,另外拷贝的对象原来指向的内存就成了孤儿,内存泄漏了3.拷贝赋值函数需要检测自我赋值,否则当用户自我赋值时会失败4.stack,存在于某作用域的一块内存空间。调用函数,函数本身会形成一个stack来存放接收的参数...
2019-06-09 17:19:33
200
原创 侯捷《C++面向对象高级编程》1-6节笔记
1.总体来说,C++的类分为两大类,基于对象(object based)、面向对象(object oriented),区别是前者单一类,后者包含多种类(继承、组合、指派等)2.类声明文件(.h)写上预编译语句,防止重复声明有些IDE在.h文件时自带了这些语句,如CodeBlocks#ifndef COMPLEX_H_INCLUDED#define COMPLEX_H_INCL...
2019-06-08 21:13:07
210
原创 分治法与动态规划联系与区别
一、分治法参考维基百科的定义,分治法采用循环递归的设计在每一层递归上都有三个步骤:分解:将原问题分解为若干个规模较小,相对独立,与原问题形式相同的子问题。 解决:若子问题规模较小且易于解决时,则直接解。否则,递归地解决各子问题。 合并:将各子问题的解合并为原问题的解。典型的采用分治算法解决的问题有归并排序,一个python写的归并排序算法def merge_list(l1,...
2019-05-31 21:49:51
2297
原创 STL入门之容器
一、STL介绍引用维基百科的介绍,标准模板库(英文:Standard Template Library,缩写:STL),是一个C++软件库,大量影响C++标准程序库但并非是其的一部分。 其中包含4个组件,分别为算法、容器、函数、迭代器。二、容器分顺序容器、关联容器两类2.1 顺序容器1.vector:可变大小数组,支持快速随机访问,在除尾部的其他地方插入或者删除元素可能都很慢...
2019-05-29 16:53:26
171
原创 Python作用域
明确一点,一个变量的作用域总是在被赋值的地方所决定。能直接改变变量作用域的有def、class、lambda,if、while、for不能直接改变变量作用域。一、LEGB准则(LNGB准则)这里重点讨论def语句,我们定义的变量实际上只有三种不同的作用域:在def内部赋值,它被定为在函数内部,为本地Local 在一个嵌套的def中赋值,对于嵌套函数来说,它是非本地的Nonlocal...
2019-05-07 11:57:56
192
原创 Python求解Josephus问题
问题描述:n个人围成一圈,从第k个人开始报数,报道第m个数的人退出。然后从下一个人开始继续报数,按同样规则退出,直到所有人退出。这道题目在C语言的数据结构教程里,基本都是拿循环单链表做的。在Python中,也可以定义循环单链表解决,但是还有更简单的方法。参考裘宗燕老师的数据结构教程的方法。def josephus_L(n, k, m): people = list(range(...
2019-05-04 15:22:17
613
原创 Python的拷贝与赋值
一、在python中,赋值操作实际上是对象的引用a = 'CSDN'b = a实际上b和a共享了对'CSDN'的引用,即a is b会得到True二、浅拷贝对于lista = [1, 2]b = a[:]b实际上是对a的浅拷贝,浅拷贝相对于深拷贝而言,浅拷贝只能在第一层级复制对象a.append(3)print(a)print(b)[1,...
2019-04-30 10:32:04
353
原创 Python利用辗转相除法求两个整数最大公因子(gcd)
最近看北大裘宗燕编写的Python数据结构书时,看到了一个很好的gcd函数定义方法 def gcd(m, n): if not isinstance(m, int) or not isinstance(n, int): raise TypeError if n == 0: m, n = n, m ...
2019-04-23 21:37:06
2083
原创 Ubuntu查看CUDA、cuDNN版本
查看CUDAcat/usr/local/cuda/version.txt或者nvcc --versionnvcc -V查看cuDNNcat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
2019-04-04 20:57:53
1097
原创 Ubuntu16.04+CUDA8.0配置Caffe及python3接口
由于学习需求,需要安装cafe及pycaffe,安装过程出现各种问题,网上的教程参差不齐,没有一篇完全能解决我遇到的问题,这里分享一个本人安装的安装教程。首先确保自己已经安装好了CUDA、cuDNN、opencv,我装的是CUDA8.0、opencv3.2分享一个比较完整的安装CUDA、cuDNN、opencv的教程,https://blog.csdn.net/chris_pei/arti...
2019-03-30 17:17:18
340
原创 《Incorporating Copying Mechanism in Image Captioning for Learning Novel Objects》阅读笔记
这篇论文收录在2017年CVPR上,跟2015年发表在CVPR上的论文《From Captions to Visual Concepts and Back》都是微软研究院创作的。跟《From Captions to Visual Concepts and Back》方法有点类似,不过将其方法改进,将image caption扩展到了novel objects上。一、introduction...
2019-03-10 17:13:00
692
原创 《Deep Compositional Captioning: Describing Novel Object Categories without Paired Training Data》阅读笔记
《From Captions to Visual Concepts and Back》在论文提到了一种新的image caption方法,visual detector、language model、multimodel similarity model,在近两年的caption论文很多都采用了这种思路。今天阅读的论文在此基础上,提出了Deep Compositional Captioning(D...
2019-03-07 22:01:10
789
原创 《From Captions to Visual Concepts and Back》阅读笔记
在接触到image caption时,看的论文是《Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Challenge》《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》,网络上对这两篇论文的解析也特别多,...
2019-03-05 21:36:28
1428
原创 python的argv参数
「argv」是「argument variable」参数变量的简写形式,一般在命令行调用的时候由系统传递给程序。这个变量其实是一个List列表,argv[0] 一般是被调用的脚本文件名或全路径,和操作系统有关,argv[1]和以后就是传入的数据了。建立一个sys_argv.py文件,内容如下:import sysdef main(argv): if argv==None: ...
2019-02-23 17:03:48
1342
原创 TensorFlow变量
在TensorFlow中,变量tf.Variable的作用就是保存和更新神经网络中的参数。这些变量在使用之前也需要指定初始值。TensorFlow提供了多种方法来初始化变量。一、随机数生成函数常见函数有正态分布tf.random_normal()、tf.truncated_normal()等,通常利用tf.random_normal()初始化神经网络的权值参数二、常数生成函数常见的...
2019-01-13 19:42:15
235
1
原创 修改Python的pip源至国内镜像超详细方法
利用pip操作安装各种第三方库非常方便,但是容易碰到连接超时,下载失败的问题,解决方法是将pip源改到国内镜像,具体方法如下:一、进入C盘用户文件夹二、在用户下打开用户名子目录三、在该目下新建一个pip文件夹四、在pip文件夹下新建一个pip.ini.txt文本,内容是[global] index-url = https://pypi.tuna.tsinghu...
2019-01-13 16:06:40
2457
1
原创 TensorFlow运行模型——回话
TensorFlow中的会话Session来执行定义好的运算,会话拥有并管理TensorFlow程序运行时的所有资源。当计算完成之后需要关闭会话来帮助系统回收资源,否则就可能出现资源泄露的问题。TensorFlow中使用会话的模式一般有两种,第一种模式需要明确调用会话生成函数和关闭会话函数,代码流程如下:import tensorflow as tfa=tf.constant([[1....
2019-01-13 15:46:31
248
原创 启动Tensorboard
之前经常出现打开Tensorboard网页,显示错误,进不去的错误,自己也搜了很多博客,问题始终没有解决,今天看了一篇博客总算解决了这个问题https://blog.csdn.net/fa928464158/article/details/77935539 一、要找到生成的events.out.tfevents文件路径,比如我的这个:二、得到上一级目录 我这里就是F:\Python...
2019-01-12 21:46:14
234
原创 TensorFlow数据模型——张量
1.张量的概念从功能上看,张量可以被理解成多维数组。零阶张量表示标量(Scalar),也就是一个数。张量在TensorFlow中的实现并不是采用数组的形式,它只是对TensorFlow中的运算结果的引用。在张量中并没有真正保存数字,它保存的是如何得到这些数字的计算过程。import tensorflow as tfa=tf.constant([[1.0,2.0],[2.0,3.0]],...
2019-01-12 19:54:36
296
原创 TensorFlow计算模型——计算图
之前零零散散地学了TensorFlow两个月,参考的是才云科技编写的《TensorFlow实战Google深度学习框架》,但是由于不系统,没有熟练地掌握使用方法。为此,通过博客的形式强迫自己再次系统地学一遍TensorFlow。1.计算图概念TensorFlow名字可以拆分成Tensor和Flow,Tensor表示张量体现了它的数据结构,Flow表示流体现了它的计算模型。TensorFlo...
2019-01-12 19:37:04
509
原创 Pycharm常用快捷键
记录几个自己常用的Pycharm快捷键,官方的快捷键太多了,其实日常使用的远没有那么多,我自己目前常用的如下:Ctrl + Alt + T 选中Ctrl + / 行注释/取消行注释Ctrl + Shift + / 块注释Ctrl + Alt + I 自动缩进Tab / Shift + Tab 缩进、不缩进当前行Ctrl + D 复制选定的区域或行Ctrl...
2019-01-06 20:44:00
137
原创 from __future__ import print_function用法
from __future__ import print_function,顾名思义,就是用比当前版本的python更新的版本的print函数,主要指在python2环境下用python3的print函数在python2.7环境下运行以下代码,不会报错from __future__ import print_functionprint('hello world') ...
2018-12-03 20:46:23
848
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人