Two Sum - Closest to target
2017-10-20 21:22
411 查看
Given an array
find two integers in nums such that the sum is closest to a given number, target.
Return the difference between the sum of the two integers and the target.
Have you met this question in a real interview?
Yes
Example
Given array
The minimum difference is
(4 - (2 + 1) = 1).
java
public class Solution {
/*
* @param nums: an integer array
* @param target: An integer
* @return: the difference between the sum and the target
*/
public int twoSumClosest(int[] nums, int target) {
// write your code here
if (nums == null || nums.length < 2) {
return -1;
}
Arrays.sort(nums);
int left = 0;
int right = nums.length - 1;
int value = 0;
int ref = Integer.MAX_VALUE;
while (left < right) {
value = nums[left] + nums[right];
if (left < right && value < target) {
left++;
ref = Math.min(Math.abs(target - value),ref);
}
if (left < right && value > target) {
right--;
ref = Math.min(Math.abs(target - value), ref);
}
if (left < right && value == target) {
ref = 0;
break;
}
}
return ref;
}
}
python
class Solution:
"""
@param: nums: an integer array
@param: target: An integer
@return: the difference between the sum and the target
"""
def twoSumClosest(self, nums, target):
# write your code here
if nums is None or len(nums) < 2:
return -1
left, right = 0, len(nums) - 1
value, ref = 0, float('inf')
nums.sort()
while left < right:
value = nums[left] + nums[right]
if left < right and value < target:
left += 1
ref = min(ref, abs(value - target))
if left < right and value > target:
right -= 1
ref = min(ref, abs(value - target))
if left < right and value == target:
ref = 0
break
return ref
numsof n integers,
find two integers in nums such that the sum is closest to a given number, target.
Return the difference between the sum of the two integers and the target.
Have you met this question in a real interview?
Yes
Example
Given array
nums=
[-1, 2, 1, -4], and target =
4.
The minimum difference is
1.
(4 - (2 + 1) = 1).
java
public class Solution {
/*
* @param nums: an integer array
* @param target: An integer
* @return: the difference between the sum and the target
*/
public int twoSumClosest(int[] nums, int target) {
// write your code here
if (nums == null || nums.length < 2) {
return -1;
}
Arrays.sort(nums);
int left = 0;
int right = nums.length - 1;
int value = 0;
int ref = Integer.MAX_VALUE;
while (left < right) {
value = nums[left] + nums[right];
if (left < right && value < target) {
left++;
ref = Math.min(Math.abs(target - value),ref);
}
if (left < right && value > target) {
right--;
ref = Math.min(Math.abs(target - value), ref);
}
if (left < right && value == target) {
ref = 0;
break;
}
}
return ref;
}
}
python
class Solution:
"""
@param: nums: an integer array
@param: target: An integer
@return: the difference between the sum and the target
"""
def twoSumClosest(self, nums, target):
# write your code here
if nums is None or len(nums) < 2:
return -1
left, right = 0, len(nums) - 1
value, ref = 0, float('inf')
nums.sort()
while left < right:
value = nums[left] + nums[right]
if left < right and value < target:
left += 1
ref = min(ref, abs(value - target))
if left < right and value > target:
right -= 1
ref = min(ref, abs(value - target))
if left < right and value == target:
ref = 0
break
return ref
相关文章推荐
- Two Sum Closest to K
- find the closest sum to a target value
- Two Sum - Difference equals to target
- Two Sum & 3Sum & 3Sum Closest & 4Sum
- LintCode Two Sum Closest
- To find sum of two numbers without using any operator. Only use of printf() is allowed.
- leetocode371 Sum of Two Integers
- closest node to the target in BST
- find two numbers such that they add up to a specific target number
- LeetCode之“散列表”:Two Sum && 3Sum && 3Sum Closest && 4Sum
- 1 Two Sum(找和为target的两个数字下标Medium)
- Leetcode 1. Two Sum & 15. 3Sum & 16. 3Sum Closest & 18. 4Sum
- 【NO.3】 c program to caculate and display sum of two matrix
- Closest node to the target in BST
- Distribute numbers to two “containers” and minimize their difference of sum
- I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum o
- 【NO.3】 c program to caculate and display sum of two matrix
- Subarray Sum to the given target value
- 3sum closest to target
- Sum Root to Leaf Numbers