- 博客(11)
- 资源 (3)
- 收藏
- 关注
原创 BM算法
参考 https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm
2016-09-27 20:58:12 1327
原创 LeetCode Rotate Function(寻找规律)
题意:给出一个数组a,长度为n其中f(0)=0*a[0]+1*a[1]+...+(n-1)*a[n-1]f(1)=0*a[n-1]+1*a[0]+...+(n-1)*a[n-2]...f(n-1)=0*a[1]+1*a[2]+...+(n-1)*a[0]求f(0),f(1)...,f(n-1)的最大值 思路:f(0)-f(1)=(n-1)*a[n-1] - a[
2016-09-24 23:25:18 348
原创 地下迷宫(bfs)
1.地下迷宫思路:用广度优先搜索算法,即bfs,因为输入数据行数和列数为[3,10],所在在搜索路径时,可以用x*10+y来表示其对应的坐标,并且将其加入对应的hash结点中。另一方面要求输出消耗最小的路径,所以队列使用优先级队列,保证每次从队列中取出的总是消耗最小的状态结点。而搜索时,防止重复搜索,用vis数组来表示是否已经访问过,并且访问时,如果出现越界或者能量
2016-09-19 23:52:15 5586
原创 LeetCode Simplify Path(栈操作)
题意:给出一个文件路径,输出简化后的文件路径如/home/ => /home/.. => //. => /思路:当遇到/时,就将字符串压入栈中,同时将字符串清空。在遇到..时,判断栈中是否为空,如果不为空,出栈,否则不操作。但是当字符串扫描完后,记录的字符串可能不为空,并且这个字符串可能为.或者..,所以在遍历完字符串,有些细节要处理具体代码如下:public clas
2016-09-09 23:50:12 410
原创 LeetCode Edit Distance(动态规划)
题意:给出两个字符串s1,s2, 问从s2变为s1需要几步操作。只支持3种操作:增加一个字符,删除一个字符,修改字符思路:用f(i,j)表示字符串s1(0..i)和s2(0..j)转换需要的操作步数,则有增加一个字符f(i,j) = f(i-1,j) + 1删除一个字符f(i,j)=f(i, j-1) + 1修改字符时,如果s1(i)==s2(j),有f(i,j)=f(i-1,j
2016-09-09 23:14:01 443
原创 LeetCode Scramble String(动态规划)
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively.Below is one possible representation of s1 = "great": great / \ gr
2016-09-09 20:18:29 478
原创 asio的学习笔记
1、asio中的service_registry是在io_service.ipp中注册的,注册也是只有可能时task_io_service和win_iocp_io_service两种。还有注意的是,task_io_service和win_iocp_io_service是直接继承boost::asio::detail::service_base的,所以是有id的。而reactive_socket_s
2016-09-08 22:37:48 1083
原创 LeetCode Decode Ways(动态规划)
题意:编码方式为a->1,...z->26,给出编码后的数字字符串,问有多种编码方式思路:用dp(i)表示从第1个字符到第i个字符时的编码方式,因为编码一个字符时,只能是0-9,编码两个字符时,只能为10-26所以有dp(i) = dp(i-1) + dp(i-2) ,其中如果第i-1个字符不是0-9之间的数,则dp(i-1)=0,如果i-2到i之间的字符不是10-26,则dp(i-2)=
2016-09-02 18:03:02 483
转载 Java中如何遍历Map对象的4种方法
在Java中如何遍历Map对象How to Iterate Over a Map in Java在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-ea
2016-09-02 17:22:30 447
原创 LeetCode Find the Difference
题意:给出两个字符串 s,t,t是由s字符串打散组成,然后再添加个字符。思路:因为字符串中可能有重复的字符,所以不能用set来做。用hashmap来做,遍历t字符串时,统计对应字符的个数,然后遍历字符串s,存在就将其对应的个数减1代码如下:public class Solution{ public char findTheDifference(String s, String
2016-09-02 17:16:11 367
原创 LeetCode Restore IP Addresses(回溯法)
题意:给出一个由数字组成的字符串,求其能表示的ip地址列表 注意不能有前缀0,如010思路:每次操作时,有两种情况,一种是添加点,一种是将其作为当前数的后序数。在小数点的个数超过3时,递归退出。如果小数点的个数为3,并且当前字符串的查找起点与字符串长度一样时,说明找到一种可行的ip地址。具体代码如下:public class Solution{ private v
2016-09-02 16:35:26 622
Ubuntu Linux实用学习教程.pdf
2009-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人