Two Sum

来源:互联网 发布:深圳软件开发公司简介 编辑:程序博客网 时间:2024/06/04 00:54

Given an array of integers, find how many pairs in the array such that their sum is bigger than a specific target number. Please return the number of pairs.

这种题目,相当于是固定一个然后变化另外一个,然后统计总数

java

public class Solution {    /*     * @param nums: an array of integer     * @param target: An integer     * @return: an integer     */    public int twoSum2(int[] nums, int target) {        // write your code here        if (nums == null || nums.length < 2) {            return 0;        }        Arrays.sort(nums);        int left = 0;        int right = 1;        int value = 0;        int count = 0;        while (left < nums.length - 1) {            if (right < nums.length) {                value = nums[left] + nums[right];                if (right < nums.length && value <= target) {                    right++;                } else {                    count += (nums.length - right);                    left++;                    right = left + 1;                }            } else {                left++;                right = left + 1;            }        }        return count;    }}
python

class Solution:    """    @param: nums: an array of integer    @param: target: An integer    @return: an integer    """    def twoSum2(self, nums, target):        # write your code here        if nums == None or len(nums) < 2:            return 0        left, right = 0, len(nums) - 1        value, count = 0, 0        nums.sort()        while left < right:            value = nums[left] + nums[right]            if left < right and value <= target:                left += 1            if left < right and value > target:                count += (right - left)                right -= 1        return count



原创粉丝点击