自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 问答 (3)
  • 收藏
  • 关注

原创 LeetCode刷题小结之map、unordered_map的使用

Map 1.特点:map存储key->value键值对,在一个map中仅存在唯一的key。可以实现快速插入、查找、遍历。内部由红黑树实现,所以查找速度上慢于哈希实现的unordered_map,但是元素按照key顺序排列,所以在对顺序有要求的问题中可以使用map。 2.常用方法: #include #include #include #include using namespac

2018-02-05 15:46:00 2316

原创 LeetCode刷题小结之vector的使用

Vector 1.特点: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 2571

原创 LeetCode 刷题笔记 20170204

1.Intersection of Two Linked Lists 寻找两个链表的交叉点,如果没有返回空值。两个思路: 思路一:将其中一个链表所有值求和,然后对另外一个链表每个结点值加一,再重新对上一个链表求和,根据差就能知道有无交叉点和交叉点的位置; 思路二:维护两个指针,分别从两个表头开始,如果不为空就等于他们的next,为空就等于空,直到两个指针相等,相等有两种情况,一个是都为空,此时

2018-02-04 22:27:17 123

原创 LeetCode 刷题笔记 20170203

1.Linked List Cycle 判断链表是否存在循环,一看题还是挺简单的,但是越做越复杂,方向错误了。较为简单的思路:维护两个指针fast slow,一个在前、一个在后,使用循环,如果后面的追上前面的了,证明链表存在循环。 2.Min Stack 构造一个栈,支持获取最小数。思路:利用map,在C++中是由大到小存储的,在弹栈和压栈的同时对map进行更新。就可以快速获得最小值。

2018-02-04 09:27:36 146

原创 LeetCode 刷题笔记 20170201

时间来到了二月,转眼间刷题五天了,简单的写一个总结,然后继续刷题。easy刷了不少,medium没几个,涉及到数组、链表(插入、删除)、字符串(前缀串)、DP(01背包、斐波那契相关)、二叉树(遍历、平衡二叉树),用到了C++中的vector、unordered_map、unordered_set。尽管没有什么质变,但因为本来水平也不高,算是重新拾起C++。都是为了保研和实习,越做越认识到自己编程

2018-02-02 11:12:47 208

原创 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 114

原创 LeetCode 刷题笔记 20170130

1.Largest Plus Sign问题:此问题的思路为求输入矩阵非零点的上、下、左、右连续一的个数,包括这个点本身。引用动态规划的思想,当一个点为0时,他的上下左右连续1个数为0;非零时,上连续1个数为上面点的个数加1,下连续1个数为下面点的个数加1 ,左连续1个数为左面点的个数加1,右连续1个数为右面点的个数加1。每个点拥有这四个量,他们的最小值为以这个点为中心的加号的大小。然后遍历所有点

2018-01-30 21:38:34 130

原创 LeetCode 刷题笔记 20170129

1.Maximum Subarray & Best Time to Buy and Sell Block 都为动态规划问题,前者可使用直接的Kadane算法,维护两个变量max_ending_here和max_so_far,详见(http://blog.csdn.net/lengxiao1993/article/details/52303492)。后者求差后可使用Kadane算法; 2.Hous

2018-01-29 22:06:23 158

原创 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 93

原创 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 104

空空如也

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

TA关注的人

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