public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>(); for (int i = 0; i < nums.length; ++i) { if (hashtable.containsKey(target - nums[i])) { return new int[]{hashtable.get(target - nums[i]), i}; } hashtable.put(nums[i], i); } return new int[0]; }使用这段代码
时间: 2024-04-29 09:20:31 浏览: 72
Java 输入多行字符串或者多个int数值的方法
这段代码实现了 LeetCode 上题目为 Two Sum 的解法。它的思路是利用哈希表记录数组中的值和对应的下标,然后遍历数组,对于每一个当前值 nums[i],在哈希表中查找是否存在 target - nums[i] 的值,如果存在,则返回这两个值对应的下标。如果不存在,则将当前值及其下标加入哈希表中,以备后续查找。
此算法的时间复杂度为 O(n),空间复杂度为 O(n),其中 n 为数组的长度。
阅读全文