【leetcode刷题之旅】001_两数之和_easy

问题分析及总结(暴力算法)

1.数组定义及使用

  • Java中必须先进行初始化分配空间之后才可以使用,有三种初始化的方式:
  1. 先使用new指定数组大小,再进行初始化:type[] arrayName = new type[];;
  2. 在初始化时直接赋值:type[] arrayname =new type[] {值1,值2,值3…,值n};
  3. 在开辟空间后直接进行赋值,省略初始化环节:type[] arrayName = {值1,值2,值3…,值n};

2.Java中的length,length(),size()用法比较

lengthlength()size()
数组中的属性 **String**中的length()方法泛型集合的数目
踩过的坑:
  1. 数组赋值: 只有在初始化可以整个数组赋值,方法中用到的赋值,只能单独给每一个数组元素赋值。
  2. Java中的length,length(),size()用法比较
  3. 代码逻辑:通常情况下要使用空间换时间的方法来优化算法
    以本题为例,暴力算法需要两层循环,最坏情况下需要的时间复杂度为O(n²),空间复杂度为O(1); hash表的应用在最坏的情况下需要时间复杂度为O(n),空间复杂度为O(n),理想情况下时间复杂度甚至小于O(n)。

问题分析及总结(hash算法)

1.hash表的概念及使用

在数据结构中,hash表中包括含两个元素val和key,
此题中用到的是getContains()和put()方法

hashMap 使用
1. new hashMap 对象:
Map<Integer,Integer> hashmap = new  hashMap<>();

注意:HashMap的Key跟Value不能是基本数据类型,而必须是引用数据类型或者包装数据类型。

2. hashmap属性及方法:
  1. 遍历hashMap:
 for (Integer key : map.keySet()){}  // keySet()方法可以遍历hashMap对象
  1. get(key)方法
    返回hashMap中的value值,判断是否存在key值判返回值是否为空。
  2. put(key, value)方法
    注意需要与初始化/定义的数据格式一致。
  3. containsKey()方法
 boolean containsKey(Integer  key); // 判断key是否有对应的value值;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值