
LeetCode刷题
文章平均质量分 51
apeapple
这个作者很懒,什么都没留下…
展开
-
LeetCode 刷题笔记 20170130
1.Largest Plus Sign问题:此问题的思路为求输入矩阵非零点的上、下、左、右连续一的个数,包括这个点本身。引用动态规划的思想,当一个点为0时,他的上下左右连续1个数为0;非零时,上连续1个数为上面点的个数加1,下连续1个数为下面点的个数加1,左连续1个数为左面点的个数加1,右连续1个数为右面点的个数加1。每个点拥有这四个量,他们的最小值为以这个点为中心的加号的大小。然后遍历所有点原创 2018-01-30 21:38:34 · 164 阅读 · 0 评论 -
LeetCode 刷题笔记 20170127
1.注意返回值,先声明vector,再push_back;2.审题审题审题!!!;3.vector长度为v.size();4.链表的声明与使用,维护链表最后一个节点,保持链表的连接;5.string 取字串,s.substr(pos, n) 截取s中从pos开始(包括0)的n个字符的子串,并返回;6.最长子串长度问题:利用ASCII,将字符出现情况存储在256长的整型数组原创 2018-01-28 11:36:16 · 134 阅读 · 0 评论 -
LeetCode 刷题笔记 20170129
1.Maximum Subarray & Best Time to Buy and Sell Block 都为动态规划问题,前者可使用直接的Kadane算法,维护两个变量max_ending_here和max_so_far,详见(http://blog.youkuaiyun.com/lengxiao1993/article/details/52303492)。后者求差后可使用Kadane算法;2.Hous原创 2018-01-29 22:06:23 · 191 阅读 · 0 评论 -
LeetCode 刷题笔记 20170128
1.使用迭代器访问vector;for(vector::iterator it = v.begin(); it < v.end();it++){ //*it访问元素}2.迭代器删除指定元素;for(vector::iterator it = v.begin(); it < v.end();){ //迭代在内部加 if( 判断条件 ) it = v.erase(it); //删原创 2018-01-29 09:21:02 · 127 阅读 · 0 评论 -
LeetCode刷题小结之vector的使用
Vector1.特点:vector是C++标准模板库中的内容,它具有可变长度、可存取任意数据类型的特点,使用vector可以构建类似多维数组的数据结构。2.常用方法:#include #include #include using namespace std;int main(){ vector test; test.push_back(8); test.push原创 2018-02-05 10:42:58 · 2710 阅读 · 0 评论 -
LeetCode 刷题笔记 20170204
1.Intersection of Two Linked Lists 寻找两个链表的交叉点,如果没有返回空值。两个思路:思路一:将其中一个链表所有值求和,然后对另外一个链表每个结点值加一,再重新对上一个链表求和,根据差就能知道有无交叉点和交叉点的位置;思路二:维护两个指针,分别从两个表头开始,如果不为空就等于他们的next,为空就等于空,直到两个指针相等,相等有两种情况,一个是都为空,此时原创 2018-02-04 22:27:17 · 154 阅读 · 0 评论 -
LeetCode 刷题笔记 20170203
1.Linked List Cycle 判断链表是否存在循环,一看题还是挺简单的,但是越做越复杂,方向错误了。较为简单的思路:维护两个指针fast slow,一个在前、一个在后,使用循环,如果后面的追上前面的了,证明链表存在循环。2.Min Stack 构造一个栈,支持获取最小数。思路:利用map,在C++中是由大到小存储的,在弹栈和压栈的同时对map进行更新。就可以快速获得最小值。原创 2018-02-04 09:27:36 · 188 阅读 · 0 评论 -
LeetCode 刷题笔记 20170201
时间来到了二月,转眼间刷题五天了,简单的写一个总结,然后继续刷题。easy刷了不少,medium没几个,涉及到数组、链表(插入、删除)、字符串(前缀串)、DP(01背包、斐波那契相关)、二叉树(遍历、平衡二叉树),用到了C++中的vector、unordered_map、unordered_set。尽管没有什么质变,但因为本来水平也不高,算是重新拾起C++。都是为了保研和实习,越做越认识到自己编程原创 2018-02-02 11:12:47 · 258 阅读 · 0 评论 -
LeetCode 刷题笔记 20170131
1.Length of Last Word问题 考虑几种边界情况,末尾为空格、字符串全为空格、字符串为空;2.Merge Sorted Array 由于所给vector 的特点,nums1.size() >= m+n,所以可以使用从后向前并入容器的方式;3.二叉树的DFS、BFS、层次遍历的递归与非递归算法;原创 2018-01-31 19:05:01 · 143 阅读 · 0 评论 -
LeetCode刷题小结之map、unordered_map的使用
Map1.特点:map存储key->value键值对,在一个map中仅存在唯一的key。可以实现快速插入、查找、遍历。内部由红黑树实现,所以查找速度上慢于哈希实现的unordered_map,但是元素按照key顺序排列,所以在对顺序有要求的问题中可以使用map。2.常用方法:#include #include #include #include using namespac原创 2018-02-05 15:46:00 · 2481 阅读 · 0 评论