自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 问答 (2)
  • 收藏
  • 关注

原创 Leetcode——912. 排序数组

题目传送门介绍两种方法,第一种就是直接调库,第二种是希尔排序。class Solution{public: vector<int> sortArray(vector<int>& nums) { sort(nums.begin(),nums.end()); return nums; }};class...

2020-03-31 09:09:05 101

原创 Leetcode——1162. 地图分析

题目传送门本题的思路为多源bfs,所谓多源,可以想象成有一个创世节点,然后多源的节点均为其子节点,所以多源bfs本质上还是普通的单源bfs,只不过是从第二轮开始的。然后从每个陆地出发,一圈一圈搜,最后搜到的海洋即为最远的海洋。class Solution{public: int maxDistance(vector<vector<int>>& gri...

2020-03-29 15:19:21 115

原创 Leetcode——820. 单词的压缩编码

题目传送门思路一:暴力,将字符串按字符个数从大到小排列,然后判断后续字符串是否是匹配字符串的子串。class Solution{public: int minimumLengthEncoding(vector<string>& words) { string str=""; int lengths=words.size()...

2020-03-28 15:06:26 105

原创 Leetcode——914. 卡牌分组

题目传送门本题思路就是将出现的数字存在unordered_set里面,因为无序集合是hash实现比较快。然后遍历集合,求公因数(在algorithm里面有函数__gcd(a,b))。如果公因数小于2即为1说明不存在解,即时返回错误,当然只有一种数字的情况要单独考虑。class Solution{public: bool hasGroupsSizeX(vector<int&gt...

2020-03-27 11:05:11 112

原创 Leetcode——999. 车的可用捕获量

题目传送门这个题不难就是读懂题意需要耐心一点。class Solution {public: int north(int i,int j,vector<vector<char>>& board) { for(int a=i;a>=0;a--) { if(board[a][j]=='...

2020-03-26 11:23:20 132

原创 Leetcode——892. 三维形体的表面积

主要说一下怎么理解减去重合的面积:两个长方体相邻,其实要减去的重合面积就是二者高度的最小值*2.可以想象一下。代码有优化空间,比如说两个循环可以合并,但是我感觉这样可读性差一些,所以没有优化。class Solution{public: int surfaceArea(vector<vector<int> >& grid) { ...

2020-03-25 11:39:56 123

原创 Leetcode——面试题 17.16. 按摩师

思路:动态规划。class Solution {public: int massage(vector<int>& nums) { int length=nums.size(); vector<int> dp(length,0); if(length==0) { ...

2020-03-24 11:18:24 142

原创 priority_queue 大/小根堆互换

c++的priority_queue相当于一个大(小)根堆。priority_queue默认是大根堆,即top元素对队列中最大的元素。那么怎么将其变成小根堆呢?下面以int类型为例子。priority_queue<int,vector<int>,greater<int> > p; //小根堆,//默认大根堆为less<int>struct...

2020-03-23 14:05:28 608

原创 Leetcode——面试题40. 最小的k个数

用优先级队列来模拟一个k个元素的大根堆。class Solution{public: vector<int> getLeastNumbers(vector<int>& arr, int k) { if(k==0) { vector<int> re; r...

2020-03-23 13:57:53 104

原创 Leetcode——876. 链表的中间结点(快慢指针法)

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* ...

2020-03-23 11:00:37 103

原创 Leetcode——945. 使数组唯一的最小增量

三种方法:提供c++实现,具体思路可看leetcode题解class Solution{public: int minIncrementForUnique(vector<int>& A) { int length=A.size(); int re=0; sort(A.begin(),A.end()); ...

2020-03-22 15:10:09 138

原创 python易误点——类的私有变量

先举一个python类的例子class Student(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print('%s: %s' % (self.name, self.sc...

2020-03-21 16:29:46 170

原创 推荐系统——LR模型

LR模型是广义线性模型。LR模型(对数几率回归模型),虽然叫回归,但是其本质为分类。对数几率函数是一种sigmoid函数。线性模型有可解释性强、易于并行的优点。但是其难以表示非线性关系,所以模型的准确性可能不好。为了增强原始特征与拟合目标之间的非线性关系,通常需要对原始特征做一些非线性转换。常用的转换方法包括:连续特征离散化、特征之间的交叉等。离散化相当于把连续函数变成分段函数来增加非线性...

2020-03-20 17:07:55 1347

原创 Leetcode——409. 最长回文串

class Solution {public: int longestPalindrome(string s) { int index[128]={0}; int slength=s.length(); for(int i=0;i<slength;i++) { int temp=i...

2020-03-19 15:02:12 92

转载 python类 __contains(self,x)__方法

在Class里添加__contains__(self,x)函数可以在类的实例化对象上进行 in 操作.class Graph(): def __init__(self): self.items = {'a':1,'b':2,'c':3} def __str__(self): return '打印我干嘛' def __contai...

2020-03-18 21:40:51 3151

原创 Leetcode——836. 矩形重叠

首先介绍一种比较笨的方法:排除法:排除了不重叠的不就是重叠了嘛。不重叠就那么四种情况在左边/右边/上边/下边(左下右上等其实是可以归于左边/上边的某种情况的)class Solution {public: bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) ...

2020-03-18 10:22:11 115

原创 Leetcode——1160. 拼写单词

class Solution{public: int countCharacters(vector<string>& words, string chars) { int re=0; int sarray[128]={0}; int charray[128]={0}; int temp; ...

2020-03-17 11:05:18 130

原创 torch.cuda.is_available() 为false

最近学习pytorch时出现torch.cuda.is_available()为false可能有三种可能:检查一下pytorch是否是gpu版本一般来是都是gpu版检查一下有没有配置好cuda和cudnn(我的问题)检查一下pytorch版本和cudn版本是否兼容torch.version.cuda可看自己pytorch支持什么版本的cuda...

2020-03-16 11:25:43 3675

原创 Leetcode——面试题 01.06. 字符串压缩

class Solution{public: string compressString(string S) { int lengthpre=S.length(); int temp=0; string restr=""; // S=S+S[lengthpre-1]; string temps;...

2020-03-16 11:12:00 196

原创 Leetcode——695. 岛屿的最大面积

思路1:第一种思路是利用方向数组和set集合来简化代码,不用判断坐标是否超过数组边界。但是也正是因为使用了太多类似于find的函数所以在算法时间复杂度分析相同的情况下,比第二种思路耗时要长一些。时间复杂度为O(line*row)line和row分别为行长和列长。class Solution {public: int maxAreaOfIsland(vector<vect...

2020-03-15 11:37:19 170

原创 Leetcode——300. 最长上升子序列

class Solution {public: int lengthOfLIS(vector<int>& nums) { int length=nums.size(); if(length==0) return 0; int dp[length]; for(int i...

2020-03-14 14:24:08 152

原创 python易误点——赋值、深浅拷贝

赋值举个例子str='aaa'str1=strprint(str is str1)str='bbb'print(str1)---------------output:Trueaaastr=str1说明,str和str1指向同一个地址,那么为什么str改变了值之后,str1没有跟着变化呢?因为对于string这类的不可变对象,可变对象有list等,str=‘bbb’实...

2020-03-13 19:40:37 122

原创 Leetcode——169. 多数元素

class Solution {public: int majorityElement(vector<int>& nums) { int length=nums.size(); if(length==1) { return nums[0]; } map...

2020-03-13 10:20:18 94

原创 python报错“unexpected indent”

一般是缩进的问题,写python程序要注意缩进,检查一下自己的程序有没有缩进的问题吧。

2020-03-12 16:39:37 1023

原创 python易误点——切片

切片可以对list、tuple、string三种数据结构使用取前十个元组list【:10】=list【0:10】索引-1代表最后一个元素,但是取后十个元素是list【-10:】而不是像前十list【0:10】,因为最后一个的索引不是-0而是-1。如果使用list【a:b】进行切片,是从a开始到位置b结束但是取不到b位置的元素...

2020-03-12 16:34:25 125

原创 Leetcode——1071. 字符串的最大公因子

知识点:辗转相除法求最大公因数取字符串的子串substrclass Solution{public: string gcdOfStrings(string str1, string str2) { int x=str1.size(); int y=str2.size(); int z = y; while...

2020-03-12 14:16:02 81

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

思路很简单:首先遍历数组,得到数组的累加和。在这期间记录数组的前n累加和。然后从后向前遍历数组,当累加和为累加和/3时,就遍历之前保存的累加和数组,如果有数值为数组累加和/3且其索引小于从后向前累加和的索引-1(因为要给中间的数组留下空间)则正确。class Solution{public: bool canThreePartsEqualSum(vector<int>...

2020-03-11 09:52:52 155

原创 python易误点——函数

在交互式环境定义函数时,空格前面会出现三个点…,这时按两此回车才能返回控制行。如果是内建函数(不是自己定义的),如果传入的参数不符合函数要求,会报TypeError错误,可能有两种原因1.参数数量不对   2.参数类型不符 但是如果是自己定义的函数,在函数调用的时候不会在传参数的时候报错,而是在运行的时候报错,这时候如果想要判断出来在传入参数的时候出现问题需要自己写代码来处理。例...

2020-03-10 20:51:30 199

原创 词嵌入模型的发展历程

本文意在梳理如何用向量表示单词来让单词变得可计算的这一nlp问题的发展历程。自然语言处理(Natural Language Processing),曾经也叫做“Computational linguistics”。从名字就能看出,核心就在于让language变得computational,在可以计算的前提下,一切计算机/数学方法才得以使用。这就是word representation的出发点,将...

2020-03-10 20:11:47 1318

原创 Leetcode——543. 二叉树的直径

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */cla...

2020-03-10 11:32:06 69

原创 python易误点——dict和set

dict是用来存储键值对结构的数据的,set其实也是存储的键值对,只是默认键和值是相同的。dict和set的底层实现都是通过hash,因此其插入、查找都是O(1)的时间复杂度,但是为了维护hash表,要占用大量的内存,内存浪费多。而list就不需要那么大的空间(底层实现在2.x里面是数组),可以说dict和set是用空间来换时间。因为dict和set使用hash算法,所以其键key必须是可哈...

2020-03-09 19:28:34 152

原创 python易误点——循环

python有两种循环 for in和while,while和c++、java用户的习惯差不多,主要是for in有些许不同python for in循环遍历一个可以迭代的容器(list、tuple),如for i in 【1,2,3】:       print(i)就为输出1、2、3那么我们可能不太方便写这样的循环:for(int ...

2020-03-09 19:13:36 123

原创 python易误点——条件判断

此文是给c++(或java、c)用户,学习python可能会感到不习惯的地方进行阐述。首先if后不加()直接 if x>1: 注意后面一定要加:,elif、else后也要加:,表示判断语句的结束(从编译的角度来说)else if变为elif最后就是python要注意缩进,其代码块不是用大括号进行限制的而是用缩进。...

2020-03-09 19:03:22 68

原创 python易误点——list和tuple

访问list可以从后往前,索引-1表示最后一个元素,-2表示倒数第二个,依此论推。tuple和list非常类似,但是tuple一旦初始化就不能修改(二者均为有序容器,因此可以用下标索引)因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。list是【】,tuple是()只有1个元素的tuple定义时必须加一个逗号,,来消除歧义。因为t...

2020-03-09 18:58:05 186

原创 python易误点——字符串和编码

起初计算机的编码方式只有ascll码一种(因为是美国人最先发明的),但是ascll只有128个字符,其他字符比如汉字无法用ascll表示,所以我国发明了GB2312编码,自然德国日本啊发明了自己国家的编码方式,为了将各种编码方式统一,形成了unicode编码但是unicode一般存储一个字符要2字节,ascll要一个就够了,如果都是英文的话,相当于白浪费了一倍空间。于是,形成了“可变长编码”的...

2020-03-09 18:48:48 149 1

原创 python易误点——数据类型和变量

bool值可以用and、or、not运算python是动态语言。这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Javaint a = 123; // a是整数类型变量a = “ABC”; // 错误:不能把字符串赋给整型变量变量赋值b=a,实质上是将a指向b指向的内存地址。而后a=c,b的值...

2020-03-09 17:11:48 121

原创 Leetcode——121. 买卖股票的最佳时机

首先大家第一印象应该是暴力嘻嘻,不妨从后向前看,依次比较,维护一个最大值。但是时间复杂度为O(n^2)class Solution {public: int maxProfit(vector<int>& prices) { int length=prices.size(); int max=0; for(...

2020-03-09 11:15:50 125

原创 创建对象需要注意的事项——不要定义大数组

c++创建对象有两种比较常见的方式Class c;Class * c=new Class()第一种是在栈里面创建,第二种是在堆里面创建,由于栈的空间有限,所以如果你要是在类里面声明了一个很大的数组,就容易导致爆栈,如下:class Solution{public: int hash[1000000]={0}; int re=0; void dy(vector...

2020-03-08 16:42:17 231

原创 Leetcode——322. 零钱兑换

思路:动态规划自顶向下(回溯剪枝):class Solution{public: int hash[1000000]={0}; int re=0; void dy(vector<int>& coins,int remain,int num) { if(hash[remain]==0) { ...

2020-03-08 16:35:43 100

原创 Leetcode——面试题59 - II. 队列的最大值

思路:这个题要求三项操作时间复杂度都是O(1),但是我个人感觉这个应该指的是平均时间复杂度,因为单次操作总是会出现O(n)的情况不管怎么优化(如果有人有更好的办法可以底下评论)class MaxQueue {public: queue<int> qe; int max=-1; MaxQueue() { } int...

2020-03-07 09:39:20 86

空空如也

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

TA关注的人

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