数据结构
线性表的特征:
1.集合中必存在唯一的一个“第一元素”;
2.集合中必存在唯一的一个 “最后元素” ;
3.除最后一个元素之外,均有 唯一的后继(后件);
4.除第一个元素之外,均有 唯一的前驱(前件)。
存储:可以连续存储,也可以非连续存储
数组:在内存中连续存储;优点:随机访问;缺点:插入/删除时,需要移动大量元素
链表:在内存中可以非连续存储;优点:插入/删除时,不用移动;缺点:不能随机访问元素;
栈和队列是逻辑上的概念,一个理念。在存储角度看:可以顺序存,也可以链式存储;
1.线性表-数组
2.线性表-链表
3.线性表-栈
4.线性表-队列
5.线性表-字符串
6.非线性-树
7.非线性-图
8.非线性-哈希表
算法思想
1.递推(Iterative)与.递归(Recursion)
2.贪心(Greedy)
3.枚举(Enumeration)
4.分治(Divideand Conquer)
5.回溯(Back-Tracking)
6.动态规划(DP)
7.深度搜索DFS
8.广度搜索BFS
先按照分类算几个题目:
练习网址:
1. www.poj.org
2. http://www.lintcode.com/zh-cn/
leetcode是一个美国的在线编程网站,上面主要收集了各大IT公司的笔试面试题,对于应届毕业生找工作是一个不可多得的好帮手。
这个网站的的好处在于它会告诉你测试数据以及你的输出和正确的输出是什么,方便大家调试学习。目前,只支持C++和Java两种语言。
另外它是支持在线编辑,还提供了一个在线运行环境,可以直接看到运行结果。
另一个很好的地方在于提供了2个独立的代码窗口,分别编译运行。一个自己玩的开发窗口,一个提交代码的窗口,可以在第一个窗口里测试各种拿不准的功能点。
4. LeetCode 题目总结/分类
https://www.douban.com/note/330562764/
4. https://github.com/
参考:
1. Leetcode 中文版
http://download.csdn.net/download/u011762604/9613706