练习java编程题的小笔记

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]与上一行数据的公式
如果是字符串匹配等非直接的数字计算的问题,尽量转化成数字计算,比如距离间隔等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值