自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 滑动窗口问题。

数据结构:单调下降的双端队列 ——》窗口的最大值class Solution {public: vector<int> maxSlidingWindow(vector<int>& nums, int k) { deque <int> MaxWindow; vector<int> res; if(nums.empty()) return res; if(k == 1)

2020-05-21 15:22:37 361 1

原创 单调栈的应用

一 什么是单调栈?顾名思义,单调栈就是栈内元素是单调上升/下降的。二 单调栈的应用通过入栈和出栈的循序信息可以得到,该入栈和出栈的相对大小关系。进而得到:栈顶元素左右两边第一个比他大/小的值。注意!!!只有栈顶元素的左右两边才能确定。在思考的时候总是以栈顶元素为主。三 小技巧在输入数组的末尾加入一个最值,可以使得在一次遍历之后,栈内为空。这样不需要单独处理边界问题。单调上升栈 ——》 找栈顶元素左右两边第一个比他小的数单调下降栈 ——》 找栈顶元素左右两边第一个比他大的数

2020-05-20 15:21:36 553

原创 Trie树——字典树,前缀树

Trie树又叫做前缀树,概念如图:已知一个字典,将字典中每个单词,按照顺序插入到树中。树中的每个节点保存:从root到该节点的路径: 前缀 路径是否可以代表一个单词 子节点应用:搜索引擎,DFS剪枝当需要一个一个字符暴力的遍历时,前缀树可以减少不必要的搜索。实现:最好不要用unordered_map去实现,因为leetcode的编译器不支持,需要自己定义key的哈希,和重构value的比较。最好用动态数组。代表题目:212. 单词搜索 II在DFS搜索时候可以就

2020-05-18 08:24:55 245

原创 并查集问题(一个很好用的数据结构)

一 并查集结构用来解决:元素是否在集合中,集合合并问题最好给出了边的关系,不然就得向上下左右四个方向去找。二 关键点:每个节点都指向一个父节点代表节点指向自己,一个集合只能拥有一个代表节点(类似树的根)。三 如何判断是否两个元素属于同一集合?向上寻找到代表节点,如果代表节点相同那么就在同一集合。四 如何实现?哈希表足以。C++哈希表五 模板:具体哈希表里面存储什么形式由具体情况决定,如果是int, int形式的话,用数组代替字典更好。语法细节: STL11

2020-05-17 12:59:13 311

原创 C++ STL中容器的自定义排序以及应用。

1. Class和Struct的区别在C++中Class对于成员访问权限和继承关系默认是private的,而Struct默认是public的。2. 仿函数:用Struct或者Class模拟成函数一样。仅仅只需要在类中维护必要的变量和重载运算符()即可。3. 为什么用仿函数替代调用函数?仿函数可以不留痕迹的传递上下文参数,而普通函数需要一个void* 指针进行传递。因为struct是默认成员访问权限是public的,可以直接调用struct的成员(Class设置为public也是一样的)。

2020-05-16 10:57:29 528 1

原创 哈希函数介绍及应用

哈希函数又叫做散列函数f: x -> y, 理论上输入域x是无穷的并且远远大于输出域y,每一个输入对应一个固定的输出,所以一定会存在多个输入对应一个输出。除此之外,哈希函数有一个非常重要的性质,所有的输入是均匀分配在输出上的,或者说每个输入出现在输出位置之间是相互独立的。应用这个性质,哈希函数还可以打乱输入顺序。从数学的角度看,找到一个函数使得每一个输出位置对应的输入是独立的,可以理...

2020-05-02 03:07:05 2851

原创 Pyspark入门

RDD(Resilent Distributed Dataset)Resilent对丢失节点,丢失数据集的修复Distributed分布式,运行在不同节点上Dataset数据集RDD是spark最基本的抽象,是不可变的(每个RDD生成后就不再改变,所有的操作都是生成一个新的RDD,因为是并行化计算,如果在原有基础上进行修改,那么不得不浪费时间在同步通信上)可以进行分割的,分...

2020-05-01 14:07:15 197

原创 OJ的输入输出

额,第一次做OJ感受到了深深的恶意,以为和leetcode一样不用管输入输出,没想到还要自己对输入输出进行处理。白瞎了早上五点起来做笔试,在本地ide调好了发现ace不了可太蛋疼了。长个教训,做个总结吧。1 用Python处理:OJ一般是由输入输出两个文件的。这里会直接将所有的case读进来,比如第一行第二行是第一种case,那么第三行第四行就是第二个case,以此类推。在本地调试...

2020-04-17 07:29:41 2064

原创 MySQL小结

1. 数据库(DB)数据库是长期存放在计算机内有组织,可共享的数据集合。数据库按照一定的数据规模组织进行描述,存储,具有较低的冗余度,较高的数据独立性和易扩展性,并可以为各种用户共享。所以数据库操作都是通过网络远程操作,很好的支持了并发,良好的结构组织和查询算法也使得对数据库的增删改查效率极高。而用户直接将数据存储在文件中,不利于共享,无法存储大数据,低并发,效率低。关系型数据库(Rela...

2020-03-22 14:39:30 329 1

原创 教你用MAC免费录屏

MAC有自带的Quick Time player录屏工具,但并不支持录制系统声音。再配合上sound flower这个插件(可以将系统声音转化为一个可用的声道)1. Sound flower下载链接:https://code.google.com/archive/p/soundflower/downloads2. 安装的时候需要在隐私与安全中设定一下权限。3. 完成后,sound ou...

2020-03-13 02:22:59 2438

原创 CUDA实例——加速矩阵乘法

Ref: CUDA C programing guidehttps://docs.nvidia.com/cuda/cuda-runtime-api/index.html一 什么是CUDA?CUDA和Nvidia CUDA Compiler(NVCC)赋予了用户在CUDA-enabled GPU上额外的运行SIMT(Single instruction, multiple threa...

2020-03-12 11:54:33 1871 1

原创 Python中的*和**操作符

Ref:https://blog.csdn.net/qq_20084101/article/details/83048688当* 和 ** 加在变量名前面用法的本质:该变量必须是可迭代的。1*非递归的提取该变量所有的可迭代对象,仅仅是提取出来,需要人为的安排容器再放回。2 ** 非递归的提取键/值对,同样需要重新安排容器。依托于以上原理可以实现:使用*和**...

2020-03-09 13:46:31 217

原创 Message Passing Interface(MPI)

一 定义MPI和Openmp是常用的应用在CPU上的并行化框架。MPI是一个跨语言的通讯协议,用于编写并行计算机。支持点对点和广播。MPI的目标是高性能,大规模性,和可移植性。MPI在今天仍为高性能计算的主要模型。特点: A partitioned address space 每个线程只能通过调用api去读取非本地数据。所有的交互(Non-local Memory)都需要协同进行...

2020-03-08 09:20:36 1965

原创 OpenMP(Open Multi-Processing)

一 什么是OpenMP?在并行化计算中,远程内存访问的方式主要有三种shared memory, one-sided communication和Mesaage Passing。OpenMP就是基于shared memory的高度抽象的并行化计算API,具有良好移植性和扩展性。它是一种显性的(explict)的编程模式,给予了用户对完全控制并行化的能力。二 OpenMP执行模式...

2020-03-01 10:07:33 850

原创 Tensorflow(十七)模型保存与部署

Tensorflow2.0HDF5是keras的专有模块,和SavedModel都会被转化成签名函数。Concrete Function是一个签名函数,有固定格式的输入和输出。 最终转化成Flatbuffer,服务端运行结束。Tensorflow1.0使用checkpoint和graphdef,2.0并不推荐使用保存:参数+网络结构TFLite——FlatBufferGoogl...

2020-01-15 13:48:11 1327

原创 Tensorflow(十六)GPU设置及分布式策略

一 GPU设置默认占用全部GPU并且内存全部占满,会导致计算资源和内存的浪费解决方法:内存自增长:按需分配虚拟设备机制:切分成逻辑性GPU多GPU使用:虚拟GPU & 实际GPU手工指定运算到设备& 分布式机制相关API:tf.debugging.set_log_device_placement 打印变量和GPU的关系信息tf.config...

2020-01-14 14:50:05 636

原创 Tensorflow(十四)RNN循环神经网络

Embedding是神经网络用于NLP的关键,能够把词语转化成数字解决问题:序列式问题经典模型:LSTM二 EmbeddingNLP领域中,onehot编码应用不广泛,常用Dense embedding。区别:One-hot:Word -> index -> [0,0,1,...,0,0]Dense emdeding:Word -> index -&g...

2020-01-13 13:24:06 369

原创 Tensorflow(十三)CNN

一 常见技巧:卷积神经网络:卷积操作,池化操作深度可分离卷积:用精度损失换取速率提升数据增强迁移学习二 结构特点:卷积神经网络:(卷积层 + 池化层) * N + 全连接层 * M分类任务全卷积神经网络:(卷积层 + 池化层) * N + 反卷积层* M由于反卷积层的存在,可以使得输入输出的尺寸一样大,可用于物体分割三 卷积操作解决的问题:...

2020-01-12 07:26:42 228

原创 Tensorflow(十)Tf.data API使用

import matplotlib.pyplot as pltimport matplotlib as mplimport numpy as npimport sklearnimport pandas as pdimport osimport sysimport timeimport tensorflow as tffrom tensorflow import keras#...

2020-01-09 07:50:13 219

原创 Tensorflow(九)自定义求导梯度下降及应用到回归问题

import matplotlib.pyplot as pltimport matplotlib as mplimport numpy as npimport sklearnimport pandas as pdimport osimport sysimport timeimport tensorflow as tffrom tensorflow import keras#...

2020-01-08 10:50:57 220

原创 Tensorflow(七)超参数搜索

一 超参数超参数就是每次训练中提前设定好的值,在训练过程不会随着data的输入而变化,并且会影响结果的参数。比如:网络结构参数:层数,每层宽度,激活函数等训练参数: batch_size, 学习率等在深度学习中,超参数众多,逐一调试会很繁琐,所以需要辅助可以迅速定位超参数。二 超参数搜索策略超参数搜索意思是调优超参数1. 网格搜索把各种超参数离散化成几个值,再将...

2019-12-31 15:23:08 1063 1

原创 Tensorflow(六) Wide&Deep Model

一 稀疏特征什么是稀疏特征?离散值特征(有限的范围选择),比如性别只能是男女可以用one-hot表示。稀疏特征的重要特性:稀疏特征可以进行叉乘(两个稀疏特征的组合)展现所有样本的所有特征的可能性,那么就可以假设任一新的样本可以落在特征中。优点:善于处理重复样本,广告点击预估,推荐算法。应用广泛缺点:需要人工设计,无法准确罗列所有特征。可能会过拟合,因为一个样...

2019-12-31 03:31:36 258

原创 Tensorflow(四)搭建分类与回归模型模型

import matplotlib.pyplot as pltimport matplotlib as mplimport numpy as npimport sklearnimport pandas as pdimport osimport sysimport timeimport tensorflow as tffrom tensorflow import keras#...

2019-12-30 03:32:14 314

原创 Tensorflow(三)Tf.keras介绍和基础machine learning理论

一 Keras和Tensorflow-kerasKeras是基于Python的高级神经网络API,并不是完整的库,所以需要后端进行支持。Keras目前支持Tensorflow, CNTK和Theano。Tensorflow-keras是Tensorflow内部对Keras API的规范,与Tensorflow结合的更加紧密。联系:基于同一套API,keras程序可以通过改导入方式...

2019-12-28 13:55:21 146

原创 Tensorflow(二)环境配置

Tensorflow分为两个版本GPU版本和非GPU版本一 本地配置Virtualenv安装(可以创建独立python环境)GPU版环境配置(参考https://blog.csdn.net/u014595019/article/details/53732015):安装显卡驱动 》Cuda安装 》 Cudnn安装 》Tensorflow安装二 云配置规格统一(配置一次,以后省...

2019-12-28 13:55:07 114

原创 Tensorflow(一)介绍

Tensorflow采取数据流图,用于数值计算,支持多平台,GPU,CPU,移动设备。可移植性强。Tensorflow不止用于深度学习。数据流图一 概念:张量:N维向量节点:处理数据(张量)线:节点的输入输出关系,节点的数据依赖关系节点可以被分配到各个设备执行二 特性:1 高度的灵活性:所有可以表达成数据流图的问题都可以使用数据流图封装简易2 可移植性:...

2019-12-25 08:55:07 215

原创 图上的搜索

找所有方案的一定是DFS,大部分的DFS要么是组合要么是排列,剩下都是图上的搜索。一 图上的BFS和DFS关于图的问题无非就是BFS和DFS或者排列组合133.Clone GraphGivena reference of a node in aconnectedundirected graph, return adeep copy(clone) of the graph...

2019-08-07 23:28:03 131

原创 数组与数

一 排序数组88.Merge Sorted ArrayGiven two sorted integer arraysnums1andnums2, mergenums2intonums1as one sorted array.将小数组归并到大数组,关键就是要意识到从大到小排列。class Solution: def merge(self, nums1: Li...

2019-08-05 22:50:32 170

原创 巧用数据结构

一 队列实现:循环数组,链表应用:与BFS紧密相连见图与搜索二 栈(单向操作)实现:普通数组,链表应用:DFS见图与搜索155.Min StackDesign a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) -...

2019-08-02 11:51:29 123

原创 链表的题目总结

一 单链表中的双指针快慢指针找环的问题如果存在环,快指针总能追上慢指针。什么速度合适?其他速度怎么样?例子:Linked List CycleGiven a linked list, determine if it has a cycle in it.class Solution(object): def hasCycle(self, head): ...

2019-07-25 23:46:45 184

原创 动态规划

一 递归,贪心,动态规划,搜索迷宫的例子二 DP四要素三 DP的本质四 DP的应用1 什么时候用DP 求最值,判断可行性,统计方案个数2 什么时候一定不用DP 求出所有方案, 输入的是一个集合而不是序列(任意改变顺序不影响结果,背包型问题除外)暴力算法已经是多项式级别(DP擅长把指数级别的算法改写成多项式级别)五 根据状态划分为不同的问题1)坐标型从特定的方...

2019-07-24 16:42:22 152

原创 有趣的binary search

Split Array Largest SumGiven an array which consists of non-negative integers and an integerm, you can split the array intomnon-empty continuous subarrays. Write an algorithm to minimize the larg...

2019-07-09 22:13:53 65

原创 "Trial and error" algorithm —— Find K-th Smallest Pair Distance

class Solution(object): def smallestDistancePair(self, nums, k): """ :type nums: List[int] :type k: int :rtype: int """ def countpairs(nums, target...

2019-07-09 18:03:24 150

原创 Kth Smallest Element in a Sorted Matrix

类似的题目有:373. Find K Pairs with Smallest Sums378. Kth Smallest Element in a Sorted Matrix668. Kth Smallest Number in Multiplication Table719. Find K-th Smallest Pair Distance786. K-th Smallest Pri...

2019-07-09 16:32:38 155

原创 Python字符串以及字符串匹配算法KMP(一)

一字符串计算机领域,文字处理一类重要的计算机应用,这样的基本文字符号称为字符,符号的序列称为字符串。基于对字符串处理的需求,需要字符集有一种确定的序关系(字典序)二 字符串的实现字符串可以看做一种特殊的线性表,可以采用一体式顺序表(一块完整的存储空间),需要在创建之初就确定大小的字符串,或者采用分离式顺序表形式(由链表连接的多个独立的存储空间),字符串可以动态变化。可变类型的字符串只...

2019-06-17 09:03:46 572

原创 Python位运算用途以及用法

1. 什么是位运算?按位运算就把数字转换为二进制的数字来运算的一种运算形式。在计算机系统中,数值一律用补码来表示(存储)。在许多古老的CPU上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算).2. 为什么需要位运算?有什么具体的应用呢?还记得本科时候玩过的走马灯嘛,不就是用位运算操作...

2019-06-13 03:43:40 3327

空空如也

空空如也

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

TA关注的人

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