Two Sum
来源:互联网 发布:如何正确看待体检数据 编辑:程序博客网 时间:2024/06/05 04:05
Given an array of integers, find two numbers that their difference
equals to a target value.
where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are NOT zero-based.\
java
public class Solution { /* * @param nums: an array of Integer * @param target: an integer * @return: [index1 + 1, index2 + 1] (index1 < index2) */ public int[] twoSum7(int[] nums, int target) { // write your code here if (nums == null || nums.length < 2) { return new int[]{}; } Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { if (map.containsKey(nums[i] - target)) { return util(i + 1, map.get(nums[i] - target) + 1); } else if (map.containsKey(nums[i] + target)) { return util(i + 1, map.get(nums[i] + target) + 1); } else { map.put(nums[i], i); } } return new int[] {}; } private int[] util(int p1, int p2) { if (p1 > p2) { return new int[] {p2, p1}; } else { return new int[] {p1, p2}; } }}
python
class Solution: """ @param: nums: an array of Integer @param: target: an integer @return: [index1 + 1, index2 + 1] (index1 < index2) """ def twoSum7(self, nums, target): # write your code here if nums is None or len(nums) < 2: return [] mapping = {} for i in range(len(nums)): if nums[i] - target in mapping: return sorted([i + 1, mapping[nums[i] - target] + 1]) elif nums[i] + target in mapping: return sorted([i + 1, mapping[nums[i] + target] + 1]) else: mapping[nums[i]] = i return []
阅读全文
0 0
- Two Sum
- Two Sum
- Two Sum
- two sum
- Two Sum
- Two Sum
- Two Sum
- Two Sum
- Two Sum
- Two Sum
- Two Sum
- Two Sum
- Two Sum
- Two Sum
- Two Sum
- Two Sum
- Two Sum
- Two Sum
- 揭开面纱:Kubernetes架构详解
- PI3体验之无线网AP模式设定及热点分享
- JavaScript实现数组去重
- 笔记9
- 贝叶斯(Bayes)决策理论
- Two Sum
- hdu 5033(单调栈)
- Hibernate核心接口(包括接口的常用方法)和工作原理
- 数组和指针的区别
- LightOj-1024-Eid
- Andrew Ng's deeplearning Course1Week2 Programming Questions(编程题)
- Android 四大控件之 Activity 篇
- 制作.bin数据集
- c语言山迪的麻烦