自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李威的博客

潜伏中

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

原创 leetcode123:买卖股票的最佳时机 III

给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。实例1输入: [3,3,5,0,0,3,1,4] 输出: 6 解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = ...

2019-07-14 14:05:53 150

原创 Leetcode72:编辑距离

解题思路题1:如果 word1[0…i-1] 到 word2[0…j-1] 的变换需要消耗 k 步,那 word1[0…i] 到 word2[0…j] 的变换需要几步呢?答:先使用 k 步,把 word1[0…i-1] 变换到 word2[0…j-1],消耗 k 步。再把 word1[i] 改成 word2[j],就行了。如果 word1[i] == word2[j],什么也不用做,一共消...

2019-06-09 15:03:18 182

原创 哑编码和独热编码

请看这篇文章,个人感觉写的很好

2019-03-27 17:38:41 2897

原创 LeetCode55:jump-game

第一眼看到题,就想到了dfs方法,直接遍历每一个元素然后循环步数从最大步长往前跳,然后出现了超时测试样例是25000到1,然后后面还有一个1和两个0,所以这种深度遍历不能很难处理这样false情况。先贴上代码。 bool canJump(vector<int>& nums) { if(nums.size()<2) return t...

2019-03-18 15:37:38 115

原创 LeetCode47:Permutations II

这道题也是全排列问题,但是增加了题目的难度。因为这个给定的序列里面有重复元素,我开始的想法是设置一个map,然后每一个元素值是key,出现的数量是count,实际上这样做和设置visit数组是一样的做法,但是对于处理重复元素的问题,会出现更多的重复出现。因为这样做并没有记录那个元素被访问了。所以还是改为visit数组方法,但是我们会发现结果中会存在着大量的重复,比如(1,1,2),我们得到的结果可...

2019-03-17 14:32:36 91

原创 LeetCode46:Permutations

直观上看这道题就是一道dfs问题,所以我们按照dfs的套路直接写就行。这个题和47题Permutations2很相似,但是这道题相对的难度要第一写,因为这个给定的序列里面没有重复。我们在递归调用的时候设置一个visit数组记录一下当前位置是不是被访问就可以了。然后每一个递归调用都是从序列位置开始。代码入下: vector<vector<int>> permute(vec...

2019-03-17 14:16:20 198

原创 LeetCode38:Count and Say

一开始根本看不懂题,找不到规律然后在网上看到有的朋友是这样解读的。1. 12. 113. 214. 12115. 111221第一次是默认是1,然后读1 就是11,然后读11,就是21,然后读21,就是1211,然后依次类推,看到这个解读的时候才恍然大悟,然后就是写代码了。string countAndSay(int n) { ...

2019-03-13 15:46:11 95

原创 LeetCode43:Multiply Strings

首先看到题第一种想法就是暴力解答,就是用一个字符串中的一个数字和两一个成,然后把各个字符串再拼接起来。先贴上我的蠢方法这个办法看起来很长也很蠢,一开始bug也很多,调了半天,还好没有超时错误,后来又参考了别人的代码,真的死的心都有了,代码少,效率高。在本文的后面附上别人的解法。慢慢提高。class Solution {public: string multiply(string num1...

2019-03-12 20:02:48 90

原创 LeetCode40:Combination Sum II

该题和LeetCode:Combination Sum 很类似,不同点在于前者是不重复的数字,且组合数字可以重复,后者数字存在重复,然后组合数字不允许重复。相对于上一道题我们做入下简单修改,在递归调用的时候,把起始点改为下一个索引,而不是起始点不变,然后就是判断重复,因为在数组在使用之前我们已经坐了重复处理,所以我们在循环开始时我们采用与三数之和相似的手段即可。代码入下: vector<...

2019-03-12 16:29:26 112

原创 LeetCode39:Combination Sum

本题是不同于3sum和2sum 他没有限制构成目标个数,也没限制重复,这是我们只管感受是深度遍历+剪枝。下面是代码:vector<vector<int>> combinationSum(vector<int>& candidates, int target) { vector&a

2019-03-12 14:08:13 100

原创 LeetCode17:Letter Combinations of a Phone Number

这道题最直观的做法是递归,直接看代码。vector<string> letterCombinations(string digits) { if(digits.size()==0) return {}; vector<string>res; //在这里我们首先构建一个map,在后去的递归函数中调用,用...

2019-03-12 13:58:51 82

原创 达观杯文本处理比赛深度学习实践

使用Keras框架###导包import pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn import preprocessingfrom keras import backendbackend.clear_session()from ke...

2019-03-11 16:28:11 238

原创 达观杯文本处理模型实践

tf-idf+lr采用前文处理的tf-idf文件进行简单的模型预测,没有加入交叉验证。代码如下:这里用到了前几篇文章中处理的数据,用pickle读取即可,当时之所以分批保存到不同的pickle文件是因为内存不够直接存在一个文件中内存报错,所以选择了分别存取。我们可以看到每一个文件被处理成200多万维度的向量,显然比较大,后期准备使用pca处理一下,先简单的用lr跑一下。这个结果提交到...

2019-03-07 20:04:45 301

原创 达观杯文本处理比赛(二)

针对文本预处理问题,我们经常用到几个常见的语言模型,这里我就不做过多的介绍,如果大家想了解可以参考我的这篇博客。接下来本文主要才去用了Word2Vec模型进行文本预处理。因为我的电脑内存只有八G,不能一下处理所有的数据,我采用了分批次训练的方法,先把文件切成小文件,然后依次去取,采用生成器的方法,每次读完就释放内存。训练词向量...

2019-03-05 20:49:28 205

原创 常见的语言模型

词袋模型此模型下,一段文本(比如一个句子或是一个文档)可以用一个装着这些词的袋子来表示,这种表示方式不考虑文法以及词的顺序,例如下面两个句子:(1) John likes to watch movies. Mary likes movies too.(2) John also likes to watch football games.基于以上两个文件,可以建构出下列清单:[ ...

2019-03-04 21:27:46 2787

原创 LeetCode28: Implement strStr()

解题思路:如果被查的字符串为空直接返回0;如果被查字符串长度大于原始字符串返回-1;为了节省时间我们可以在遍历原始字符的时候直到剩余的字符串长度等于被查的字符串长度。代码:int strStr(string haystack, string needle) { if(needle.size()==0) return 0; int ...

2019-03-01 19:01:34 77

原创 达观杯文本处理比赛(一)

初试数据:数据包含2个csv文件:train_set.csv:此数据集用于训练模型,每一行对应一篇文章。文章分别在“字”和“词”的级别上做了脱敏处理。共有四列:第一列是文章的索引(id),第二列是文章正文在“字”级别上的表示,即字符相隔正文(article);第三列是在“词”级别上的表示,即词语相隔正文(word_seg);第四列是这篇文章的标注(class)。注:每一个数字对应...

2019-03-01 16:29:33 361

原创 LeetCode26:Remove Duplicates from Sorted Array

解题思路因为数字本身就是排序的,所以直接遍历数组然后然后记录一个没有重复的数组的下标。代码int removeDuplicates(vector<int>& nums) { int cur=0;//记录下当前的数组的前cur个数字没有重复,遇到没有重复加一。 for(int i=0;i<nums.size();i++){ ...

2019-03-01 12:11:53 89

原创 LeetCode27:Remove Element

解题思路:这道题和LeetCode第26题相似,直接上代码代码:int removeElement(vector<int>& nums, int val) { int count=0;//count记录的是count下标之前没有val值; for(int i=0;i<nums.size();i++){ if(n...

2019-03-01 12:07:12 105

原创 LeetCode3:Longest Substring Without Repeating Characters

解题思路:一开始没有一点头绪,然后参考网上的答案,恍然大悟,并把这个思路整理下来分享给大家。 直接上代码 int mp[256];##因为字母或者素质可以用ASCII表示,完全映射到256数组中, for(int i=0;i<256;i++){ mp[i]=-1;##这里初始化给每一个元素赋值为-1,用来记录每一个字符出现的顺序。 ...

2019-02-24 12:39:08 78

原创 GDBT

CART决策树有两种类型:分类树和回归树,其中分类树输出是样本的类别,回归树输出的是连续的实数。CART(Classification And Regression Tree)既可以做分类也可以做回归。CART是在给定输入随机变量X的条件下输出随机变量Y的条件概率分布学习方法。CART书假设决策树是二叉树,内部节点的取值为‘是’和‘否’,这样的决策树等价于递归的二分每一个特征,将输出空间即特征...

2019-01-29 18:48:46 1210

原创 随机森林算法总结

集成学习的概念集成学习简单来说就是通过构建并结合多个学习器来完成学习任务。集成学习的一般结构是先产生一组“个体学习器”,在通过一定的策略把它们结合起来结构如下图所示:集成学习能够通过将多个学习器结合起来,常可获得比单一学习器显著优越的泛化能力,对‘弱分类器‘(常指分化能力略优于随机猜测的学习器)尤为明显,因此集成学习的很多理论研究都是针对弱学习器进行的,而基学习器有时直接成为是弱分类器。...

2019-01-27 01:29:34 5772

原创 pandas使用记录

Series.dropna().unique()>>> ser = pd.Series([1., 2., np.nan])>>> ser0 1.01 2.02 NaN>>> ser.dropna(

2019-01-24 22:53:02 238

原创 jupyter notebook 插件

jupyter notebook extensions想要使用插件,我们需要先按照下面的指令进行安装,或者用pip安装,安装完成以后我们打开nbextensions 选择适合自己的插件就好了。conda install -c conda-forge jupyter_contrib_nbextensionsconda install -c conda-forge jupyter_nbexten...

2019-01-19 19:18:12 185

原创 Ubuntu安装Hadoop过程

安装Ubuntu正常安装,网络采用net链接方式修改计算机名称为mastersudo vim /etc/hostname ##改成maserreboot##重启hostname##重新查看计算机名发现修改成功然后ping命令看看是否能上网然后执行ifconfig查看当前的虚拟机IP并修改sudo vim /etc/hosts##添加 IP地址和计算机名成master然后从官...

2018-12-24 16:49:22 112

原创 enumerate枚举函数:

enumerate(sequence, [start=0])>>> list(enumerate(seasons, start=1)) # 下标从 1 开始[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

2018-12-22 22:20:11 562

原创 cumsum

该函数用于累计求和:from numpy.random import randnrandom(50).cumsum

2018-12-22 15:00:24 643

原创 随机生成数

2018-12-22from numpy.random import randn np.randn##生成正态分布的随机数。

2018-12-22 14:51:59 289

原创 tensorboard坑

一开始打不开,然后是没有激活tensorflow环境,在conda里面激活TensorFlow环境,activate tensorflow然后把路径转到存的log文件上一级目录,tensorboard --logdir=path...

2018-12-16 19:53:20 151

原创 tensorflow使用日记(二)

Arrays and working with Images首先处理图片要在一个图片上工作,我们需要安装matplotlib,同时我们也需要安装pillow包(用来支持多种样式的图片格式)我们可以用conda 来安装(也可以用pip安装)conda install matplotlib pillowimport matplotlib.image as mpimgimport os#...

2018-11-13 19:07:27 110

原创 tensorflow使用日记(一)

TensorFlow函数:tf.variables_initializertf.variables_initializer( var_list,##要初始化的 Variable 对象列表 name='init'##返回操作的可选名称)##返回运行所有指定变量的初始值设定项的操作。返回一个初始化变量列表的操作。在会话(session)中启动图形之后,可以运行返回的操作来初始...

2018-11-12 20:39:51 128

原创 Git使用随笔

Git使用随笔提交一个文档修改一个文档版本回退撤销修改提交一个文档git add readme.txtgit commit -m "wrote a readme file" 修改一个文档git status //查看当前的文件的状态git diff readme.txt//可以看到文件发生了什么改动版本回退git log //查看提交日志。git log --pretty=...

2018-11-10 17:19:06 118

原创 矩阵求导

这个博客写的相当好。https://www.cnblogs.com/crackpotisback/p/5545708.html

2018-09-26 19:57:20 104

原创 浅谈几种排序

冒泡排序:void Bubble(vector<int>&src) { int size = src.size(); for (int i = 0; i < size; i++) { for (int j = i + 1; j < size; j++) { if (src[i] > src[j]) swap(src[i], src[...

2018-09-19 19:45:27 116

原创 LeetCode 8: String to Integer (atoi)

题目很简单,我一开始的思路就是把有效数字装进字符串里,然后判断字符串和int_max 和int_min的大小然后在吧字符串转成int。细节特别繁琐,后来看了别人的思路,瞬间觉得自己傻了很多。class Solution {public: int myAtoi(string str) { int i=0,j=0; string res=""; ...

2018-07-20 20:18:26 81

原创 LeetCode6:ZigZag Conversion

设置两个方向,从上往下是正,从下往上是负。class Solution {public: string convert(string s, int numRows) { string *str=new string[numRows]; int row=0,step=0; if(numRows<2) ret...

2018-07-20 14:39:54 75

原创 LeetCode 5: Longest Palindromic Substring

要求找出最长回文字符串,一开始采用比较笨的方法,两个for循环遍历然后判断每一个字串是不是回文时间复杂度是O(n3)class Solution {public: string longestPalindrome(string s) { int maxlen=0; string res=""; for(int i=0;i<s.s...

2018-07-19 20:42:18 141

转载 Leetcode53:Maximum Subarray

class Solution {public: int maxSubArray(vector<int>& nums) { int curMax=0; int res=INT_MIN; for(int num:nums){ curMax=max(curMax+num,num); ...

2018-07-13 21:07:24 131

原创 leetcode--44. Wildcard Matching

三种情况:1:若P[pcur]和S[scur]的字符相等都是普通字符,pcur++,scur++2 : 若P[pcur]==?,pcur++,scur++3:若P[pcur]==*,记录当前的位置,循环匹配字符串0个,1个,2个。。。。    一直到S字符串到结束4:最后判断P[pcur]的字符串若还有剩余其他的非*字符则为false,反之为true;class Solution {public...

2018-04-19 23:14:26 121

原创 lintcode--212.空格替换

int replaceBlank(char string[], int length) { int n=0; for(int i =0;i<length;i++){ if(string[i]==' '){ n++; } } int newlen=l...

2018-04-19 23:03:21 200

空空如也

空空如也

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

TA关注的人

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