vector:
【实现】vector的底层就是一个数组,所以其才能有O(1)的查找效率。只不过它是变长的,容量到达end_of_storage时便另寻空间自动扩容一倍,并将原来的数据都拷贝到新空间,之后将原来空间销毁。由于其数组的特性,决定了vector的频繁插入和删除的效率比较低。
【优点】查找效率高。
【缺点】除了查找,其他的效率都不特别高。
Hashset:
Hash_set和set的使用方式是一样的,只不过,其底层是实现机制不一样。
Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。
Set 接口存储一组唯一,无序的对象。
创建结构:
Hashset =new Hashset
常用函数:
hashset.add/.remove/.contains
add添加元素
remove移除函数
contain是否包含
泛型
泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。
自己编程时可以先不用
求最优解的算法一般是动态规划
动态规划最基本思路:
设置dp多维数组dp[][],以空间换时间,每一行为一次迭代,求出dp[i][j]与上一行数据的公式
如果是字符串匹配等非直接的数字计算的问题,尽量转化成数字计算,比如距离间隔等