算法&数据结构
lkkey80
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hello World for U
找规律 + 按一定格式输出字符。 注:笔者当时提交时用的是”九度online judge“环境,读取字符串时被gets坑了,原来gets在这个系统上有些问题,改为scanf就OK了。 #include #include #include struct Node { int x; int y; }; char STR[81]; st原创 2013-03-23 22:57:56 · 616 阅读 · 0 评论 -
hdu-3786-找出直系亲属
Problem Description 如果A,B是C的父母亲,则A,B是C的parent,C是A,B的child,如果A,B是C的(外)祖父,祖母,则A,B是C的grandparent,C是A,B的grandchild,如果A,B是C的(外)曾祖父,曾祖母,则A,B是C的great-grandparent,C是A,B的great-grandchild,之后再多一辈,则在关系上加一个great-原创 2016-05-02 00:22:23 · 560 阅读 · 0 评论 -
hdu-1251-统计难题
Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串原创 2016-05-02 00:15:39 · 474 阅读 · 0 评论 -
LeetCode-3-Longest Substring Without Repeating Characters
时间复杂度O(n^2) #include #include using namespace std; class Solution { public: int lengthOfLongestSubstring(string s) { size_t found; int max_len = s.empty() ? 0 : 1;原创 2016-05-01 22:53:43 · 327 阅读 · 0 评论 -
常用的数据结构和算法
数据结构: 1 链表 参考linux kernel "list.h" 2 ring buffer 参考linux kernel "kfifo.h" 3 trie 树(也叫字典树) 4 hash、bloomfilter 参考leveldb "bloom.cc" 5 skiplist、红黑树、B树 红黑树参考linux kernel "rbtree.h/rbtree.c"原创 2015-01-14 11:25:45 · 480 阅读 · 0 评论 -
插入相同“键值”key时Linux 内核中红黑树的使用
Linux 内核中提供了一个通用红黑树的实现(位于文件rbtree.h和rbtree.c),在日常的项目开发中,很多人也是直接将其代码取出来,然后自己“包装”一下就使用了。 近期的使用中我有了一个这样的疑问,就是如果插入相同的key,是不是这个红黑树还能正常使用?这样做会不会破坏这个红黑树的结构?当然我们知道C++ STL中的 multimap(multimap也是基于red-black原创 2014-04-20 00:25:57 · 5252 阅读 · 1 评论 -
元素选择问题
问题描述:从n个元素中选择第k小的元素。此问题存在最坏情况下时间复杂度为O(n)的算法,但本文不作讨论本文介绍一种使用“快速排序”算法的思想求解此问题的方法,平均时间复杂度O(nlogn) 。 “快速排序算法”的实质是“递归与分治”,以序列中a[l:r]的某个元素a[i]为基准,将序列分成3部分:a[l:i-1],a[i]和a[i+1,r], 使之满足a[l:i-1]中的元素都小于a[i]原创 2014-04-20 00:13:04 · 833 阅读 · 0 评论 -
最长递增子序列LIS算法
DP O(n2)的算法是比较容易想到的,但用时间复杂度为O(n2)的方法解 poj 3903 Stock Exchange 问题时 tle。故需要更快的算法,下面介绍一个O(nlogn)的DP + 二分查找的算法。 p[i] 5 2 1 4 5 3 d[i] 1 1 1 2 3 2 引入数组s,s[i] 表示处在长度为原创 2014-04-20 00:28:31 · 679 阅读 · 0 评论 -
大数问题 hdu 1002
大数问题通常用数组来模拟计算。下面给出hdu 1002 的代码。 #include #include #include #define MAX_LEN 1000 int g_a[MAX_LEN]; int g_b[MAX_LEN]; int g_ans[MAX_LEN]; char g_stra[MAX_LEN + 1]; char g_strb[MAX_LEN +原创 2014-04-20 00:30:23 · 578 阅读 · 0 评论 -
acm 做过的题目分类(不定期更新)
ZOJ: 搜索 1002, fire net。 dfs 过。 1003,crashing ballon 1004,Anagrams by Stack。搜索 + stack 1005,jugs。bfs过,ps:据说此题有更简单的方法。 简单题: 1006, Do the Untwist, 简单解码. 数学题 1007 Numerical Summation of a S原创 2013-02-03 12:23:20 · 489 阅读 · 0 评论
分享