LeetCode T1 两数之和
开始做题了!学习了java中 hash map的用法。
时间复杂度的分析
暴力搜索的情况下,对每个元素都要遍历一遍剩下的其他元素,复杂度是$$O(n^2)$$。但如果采用哈希表,对每个元素$$nums[i]$$,都要从哈希表里查找是否存在$$target-nums[i]$$,这个操作的复杂度是$$O(1)$$,因此对所有元素都执行一遍是$$O(n)$$.
不用考虑是怎么插入的……反正从哈希表里get/put/containsKey都是O(1)。常数倍之后还是O(1)。
Java中的HashMap
- HashMap<K,V>:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
创建Hashmap
HashMap<Integer,String>myHashmap = new HashMap<Integer,String>();
Map接口中的常用方法
get(Object key)
根据key获得value。
put(K key,V value)
添加键值对。
remove(Object key)
根据key删除元素,会返回key对应的value值。
size()
返回HashMap中的元素数量。
containsKey()
检查hashMap中是否存在指定的key。
containsValue()
检查hashMap中是否存在指定的value。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!