zoukankan      html  css  js  c++  java
  • [leetcode]259. 3Sum Smaller 三数之和小于目标值

    Given an array of n integers nums and an integer target, find the number of index triplets ijk with 0 <= i < j < k < n that satisfy the condition nums[i] + nums[j] + nums[k] < target.

    Follow up: Could you solve it in O(n2) runtime?

    Example 1:

    Input: nums = [-2,0,1,3], target = 2
    Output: 2
    Explanation: Because there are two triplets which sums are less than 2:
    [-2,0,1]
    [-2,0,3]
    

    Example 2:

    Input: nums = [], target = 0
    Output: 0
    

    Example 3:

    Input: nums = [0], target = 0
    Output: 0
    

    题意

    三数之和小于target的个数


    思路

    K Sum 模板


    代码

     public int threeSumSmaller(int[] nums, int target) {
            if (nums == null || nums.length == 0) return 0;
            int result = 0;
            Arrays.sort(nums);
            for (int i = 0; i < nums.length - 2; i++) {
                int j = i + 1;
                int k = nums.length - 1;
                while (j < k) {
                    int sum = nums[i] + nums[j] + nums[k];
                    if (sum < target) {
                        result += k - j;
                        j++;
                    } else {
                        k--;
                    }
                }
            }
            return result;
        }
    

      

  • 相关阅读:
    学习进度笔记
    学习进度笔记
    学习进度笔记
    学习进度笔记
    博雅数据机器学习10
    学习进度笔记
    HDFS上文件权限操作
    HBase的安装与使用
    hadoop完全分布式安装教程
    python安装easygui
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/14204582.html
Copyright © 2011-2022 走看看