自定义博客皮肤

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

动态规划 House Robber;Best Time to Buy and Sell Stock

动态规划,可以看这个http://www.360doc.com/content/13/0601/00/8076359_289597587.shtml 我理解的,就是如果一个方法用递归,你发现过程会有重复,比如斐波那契数列,a(n)=a(n-1)+a(n-2),然后就会出现每个被算n次的悲剧(3=1...

2017-03-28 10:49:41

阅读数 267

评论数 0

回溯法和bitset Binary Watch

这个是在回溯法的标签里的。回溯法大致是这样,按照深度优先搜索,在解空间树里往前走,如果不行就回退,然后换一条路。在换路的同时剪去错枝,就是一种蛮力的有剪枝的遍历......于是我先用的回溯: class Solution { public: vector readBinaryWatch(i...

2017-03-28 10:38:38

阅读数 274

评论数 0

Number of Boomerangs

这道题的思路不是很难,就是要挨个算距离,然后做一个表,用排列组合的A算所求的值。问题在于,这道题,可以说是时间换内存。由于平方的数很大,如果你在for的最外边用map,内存是不够的,所以要在第一个平方里面用,会造成一些时间上的重复,ab ba都要算 class Solution { public...

2017-03-16 23:15:25

阅读数 166

评论数 0

Find All Anagrams in a String

用一个窗口......hash表的活学活用...... class Solution { public: vector findAnagrams(string s, string p) { vector pv(256,0),sv(256,0),re; if...

2017-03-16 19:20:39

阅读数 160

评论数 0

Find the Difference

妈呀又是神奇的异或……虽然哈希也可以,然而跟异或比起来就不值一提了…… class Solution { public: char findTheDifference(string s, string t) { char r=0; for(auto c...

2017-03-13 19:50:03

阅读数 146

评论数 0

Intersection of Two Arrays

这个思路比较简单,想说下语法点。unordered_map是键值对,键hash,unordered_set就是一个hash集合,只是key的集合,方便快速查找的。同时set是红黑树,所以有两个很好的特点,有序,没有重复,而且O(logN)的效率也很高。这里对nums1做了一个unordered_s...

2017-03-13 19:25:09

阅读数 173

评论数 0

Word Pattern

这个hash的模式之前也用过,Isomorphic Strings这道题用过,就是搞两个表,对两个比较的模式,key塞字符串,值塞第一次出现的位置,然后两个表的字符串,如果是对应的,那么相应的key的值是一样的,如果不对应(模式不一样),那么相应的key的值就不一样。 还有一个就是字符串有空格,怎...

2017-03-12 21:45:35

阅读数 297

评论数 0

Isomorphic Strings

哈希表,哈希的思想,不一定都要用unordered_map的.... class Solution { public: bool isIsomorphic(string s, string t) { int Se[256]={0}; int Te[256]...

2017-03-12 18:56:57

阅读数 116

评论数 0

Count Primes

啊,不用埃拉托斯特尼筛法,怎样都是time超了......具体筛法就是那个图,下面这段话是别处找的,能理解大致意思,但是有一点我理解的和他不一样,这个找素数应该是遍历中当前的下一个没被标记的就是素数,而不用全找完了再遍历一圈,看下面的代码就知道了。 这道题给定一个非负数n,让我们求小于n...

2017-03-12 11:04:40

阅读数 117

评论数 0

Happy Number

第一种,用哈希,每次算完一个平方和去表里看一看,如果这个不是1还和表重了,那就不是: class Solution { public: bool isHappy(int n) { unordered_map Fi; while(n!=1) ...

2017-03-12 10:09:25

阅读数 218

评论数 0

Single Number

可以用hash表: class Solution { public: int singleNumber(vector& nums) { unordered_map re; for(int i=0;i<nums.size();i++) ...

2017-03-12 09:25:30

阅读数 167

评论数 0

Battleships in a Board

连着的横着的或者竖着的x就是一艘船,每两艘不会连着, 比如它给的 x . . x . . . x . . . x 这个左面的x是一艘,右面的三个x是一艘,然后 . . .x xxxx . . .x 这样的不会给你,因为中间的左3个x和右边的竖三个x挨起来了,它不会给你挨起来的船。...

2017-03-11 20:20:55

阅读数 129

评论数 0

Minimum Absolute Difference in BST && Find Mode in Binary Search Tree

这个的思路就是BST中序遍历,得到的就是从小到大排的顺序,然后依次算两个的差,就能得到最小值 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; ...

2017-03-11 18:34:31

阅读数 119

评论数 0

Path Sum III

啊这个递归总是会加重或者少加,办法就是你写出来那个过程,就知道哪里重了哪里少加了........ /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *lef...

2017-03-08 21:13:29

阅读数 115

评论数 0

Lowest Common Ancestor of a Binary Search Tree

这是个BST,是有顺序的.......有顺序就好办了....... /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeN...

2017-03-08 19:15:23

阅读数 130

评论数 0

Balanced Binary Tree

这个麻烦在,对以一个结点为根的树,左右树都Balance,左右树的差小于1同时满足才行。第一种,每一个算Balance都要算到下面的height,然后复杂度O(N^2) /** * Definition for a binary tree node. * struct TreeNode { ...

2017-03-07 14:56:07

阅读数 146

评论数 0

heap的一些实现,二叉堆,左式堆,二项队列

//这里的堆指的都是二叉堆,为了优先队列产生(优先队列,使一些特殊的结点在出队的时候要优先出来。出队入队操作变成了insert和delete) //堆是一个完全二叉树,除了最后一层,其余层都是满的。这样的话存储用一个数组就可以,任一个元素位置在i,其左儿子位置是2*i,右儿子位置是2*i+1,父结...

2017-03-03 15:48:21

阅读数 478

评论数 0

Convert Sorted Array to Binary Search Tree

递归......注意看一下这里面指针,用new。new返回的是指向创建的对象的指针。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; ...

2017-03-01 23:13:10

阅读数 137

评论数 0

Binary Tree Level Order Traversal II

层序遍历,先用一个栈把结点分层塞进去,再逐个出栈: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig...

2017-03-01 18:58:16

阅读数 121

评论数 0

hash,分离链接法,探测散列表(二次探测),再散列的代码

数据结构与算法分析C++版的搬运工...... #include #include #include using namespace std; //字符串hash,把每个字符的ASCII码加起来,然后对tablesize取模,tablesize注意选择,一种策略是选素数,这样能比较均匀 //...

2017-03-01 11:48:39

阅读数 363

评论数 0

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