最近打算出去面面试见见世面,借刷leetcode来复习一些知识,笔记如下。
2018.3.7
先从easy开始练练手。
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
最简单直观的想法是双重for
循环遍历,简单粗暴,不需要额外空间消耗,但是时间复杂度感人。
优化方案1:
HashMap
存储,然后O(1)
的查找复杂度。
关于HashMap
,添加元素使用put(key, value)
, 检测是否包含给出key
使用containsKey(key)
, 通过key
获得对应值使用get(key)
。
小tips:
直接返回包含i, j
的数组: new int[] {i, j}
- 通过大括号里的具体内容来确定数组长度所以不用声明长度,需要声明i
和j
的类型。
网友评论