- 博客(17)
- 资源 (3)
- 收藏
- 关注
原创 leetcode_388 Longest Absolute File Path
题目分析给定一个字符串,表示文件系统的目录结构。统计该目录结构中的一个文件的绝对路径的最大长度。解题思路利用\n来分割文件夹和文件名,利用\t来统计此时文件夹或文件对应的层数,然后利用哈希表来建立深度和当前深度的绝对路径长度之间的映射。实现程序int lengthLongestPath(string input){ int result = 0; int size = inp
2016-08-30 12:40:15
1614
原创 leetcode_383 Ransom Note
题目分析给定两个字符串magazines和ransomNote,判断是否可以从magazines中抽取字母(每个字母只能用一次)组成ransomNote。字符串均由小写字母组成。解题思路1)统计ransomNote中每个字符出现的次数; 2)然后统计magazines中字符出现的次数; 3)判断ransomNote中的字符是否全部包含在magazines中即可。实现程序bool canCo
2016-08-29 23:08:44
876
原创 leetcode_387 First Unique Character in a String
题目分析给定一个字符串,找出该字符串中第一个不重复的字符,并返回其对应的下标。如果不存在,则返回-1。解题思路首先遍历字符串,统计每个字符出现的次数,然后在遍历字符串,找出第一个只出现一次的字符即可。实现程序int firstUniqChar(string s){ if (s.length() <= 0) return -1; vector<int> temp
2016-08-29 22:44:55
784
原创 leetcode_389 Find the Difference
题目分析给定两个字符串s和t,都只包含小写字母,字符串t是由字符串s打乱顺序且在额外的随机位置上添加一个字符组成,请找出这个字符。解题思路1)利用一个数组,先统计s字符串中每个字符出现的次数,然后统计t字符串中的次数,最后找出差异的字符串即可。 2)可以利用hash_map来进行统计实现。实现程序// 方法1 利用数组实现char findTheDifference(string s, s
2016-08-29 20:37:18
2901
原创 leetcode_373 Find K Pairs with Smallest Sums
题目分析给定两个递增的数组,从每个数组中任意取出一个数来组成不同的数字对,求前k个最小的数字对。 解题思路:方法1 利用暴力求解法; 方法2 借助STL中的multimap实现; 方法3 借助STL中的priority_queue实现。实现程序static bool cmp(pair<int, int> a, pair<int, int> b){ if (a.first + a.
2016-08-29 19:30:52
790
原创 双缓冲区
双缓冲区今天看大规模分布式存储系统,看到双缓冲这一部分内容,加之之前项目中应用到双缓冲思想,故总结双缓冲知识如下,其中程序是参看stackoverflow的,具体网址找不到了,故未标注在参看文献中。简介 双缓冲区广泛应用于生产者/消费者模型。它是两个缓冲区。这两个缓冲区,总是一个用于生产者,另一个用于消费者。当两个缓冲区都操作完,再进行一次切换,先前被生产者写入的被消费者读取,先前消费者读取的转
2016-08-27 23:15:21
3481
原创 内存管理机制
内存机制C中内存机制 1) 栈:位于函数内的局部变量(包括函数实参),由编译器负责分配释放,函数结束,栈变量失效; 2) 堆:由程序员用malloc/calloc/realloc分配,free释放。如果程序员忘记free了,则会造成内存泄露,程序结束时该片内存会由操作系统回收; 3) 全局区/静态区:全局变量和静态变量存放区,程序一经编译好,该区域便存在。在C语言中初始化的全局
2016-08-15 22:44:14
769
原创 排序算法总结与实现
各种排序算法实现今天吃饭听同学说,百度面试,当场让写归并算法跪了,后天面试华为,今天晚上啥也不干,将所有排序算法复习一遍。排序简介排序即是将一个数据元素(记录)的任意序列,重新排列成一个按关键字有序的序列的过程。 排序按照记录所在位置分为:内部排序和外部排序。内部排序指待排序记录存放在内存;外部排序指排序过程中需对外存进行访问的排序。 依据排序的原则,排序又分为以下:插入排序、交换排序、选择排
2016-08-11 22:12:16
1059
原创 Liunx的启动流程、模块管理与Loader
启动流程、模块管理与Loader系统启动流程 1)加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备; 2)读取并执行第一个启动设备内的MBR的boot Loader(即grub,spfdisk等程序); 3)依据boot loader的设置加载Kernel,Kernel会开始检测硬件与加载驱动程序; 4)在硬件驱动成功后,Kernel会主动调用init进
2016-08-10 23:06:14
2733
原创 Linux日志文件总结
Linux日志文件总结近期做笔试题目,考察linux日志配置文件相关内容,由于对此不了解,故看鸟哥的私房菜中的认识与分析日志文件一章,总结如下相关信息。 日志文件可以记录一个时间的何时、何地、何人、何事四大信息,故系统出现故障时,可以查询日志文件。 系统的日志文件默认都集中放置到/var/log/目录内,其中又以message记录的信息最多。 日志文件记录的主要服务与程序为syslo
2016-08-10 15:53:49
6524
原创 STL算法使用
STL算法使用非变动性算法非变动算法既不改动元素次序,也不改动元素值。它通过Input迭代器和forward迭代器完成工作,故可作用于所有标准容器上。 for_each():对每个元素执行某操作 count():返回元素个数 count_if():返回满足某一准则条件的元素个数 min_element():返回最小值元素(以一个迭代器表示) max_element()
2016-08-08 19:24:51
658
原创 C++标准库中Strings字符串使用
C++标准库中Strings字符串使用字符串操作函数 构造函数:产生或复制字符串 析构函数:销毁字符串 =,assign():赋以新值 swap():交换两个字符串的内容 +=,append(),push_back():添加字符 insert():插入字符 erase():删除字符 clear():移除全部字符(使之为空) resize():改变
2016-08-08 16:41:06
948
原创 STL容器Maps和Multimaps使用
STL容器Maps和Multimaps使用简介map和multimap将key/value pair(键值/实值 对组)当做元素,进行管理。他们可根据key的排序准则自动将元素排序。multimaps允许重复元素,maps不允许。map和multimap的元素型别key和T,必须满足以下两个条件: key/value必须具备assignable(可赋值的)和copyable(可复制的)性质。
2016-08-07 19:52:57
894
4
原创 STL容器Set和Multisets使用
STL容器Set和Multisets使用简介set和multiset会根据特定的排序准则,自动将元素排序。两者不同指出是multisets允许元素重复而sets不允许。它们通常都是以平衡二叉树实现的。注意:由于set和multiset是自动排序的,故不能直接改变元素值,因为这样会打乱原本正确的顺序。故要改变元素值,必须先删除旧元素,再插入新元素。其提供的接口反映了这种行为: sets和multi
2016-08-07 18:12:27
947
2
原创 STL容器lists使用
STL容器lists使用简介list使用双向链表来管理元素。list内部结构与vector和deque截然不同,主要体现在以下几个主要方面,其区别如下: lists不支持随机存取。如果要读取某个元素,需要从头顺序遍历元素,找到对应位置,然后进行读取。 任何位置上(不只是两端)执行元素的安插和一尺都非常快,始终都是常数时间内完成,因为无需移动任何其它元素。实际上内部只是进行一些指针操作。
2016-08-07 17:15:10
751
原创 STL容器deque使用
STL容器deque使用deque简介deque与vector非常相似。它也采用动态数组来管理元素,提供随机存取,并有着和vector几乎一模一样的接口。不同的是deque的动态数组头尾都开放,因此能在头尾两端进行快速安插和删除。与vector相比,deque功能上的不同在于: 两端都能快速安插元素和移除元素(vector只在尾端插入)。这些操作可以在分期摊还的常数时间内完成。 存取元素时
2016-08-07 15:55:55
904
原创 STL容器vector使用
STL容器vector使用vector利用动态数组实现。vector中主要涉及的操作函数如下:构造、拷贝和析构操作 vector c:产生一个空vector,其中没有任何元素。 vector c1(c2):产生另一个同型vector的副本(所有元素都被拷贝) vector c(n):利用元素的default构造函数生成一个大小为n的vector vector c(n, ele
2016-08-07 15:24:14
777
Adaboost算法实现
2015-11-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人