问题描述:
给定一个长度为 n 的整数数组和一个目标值 target,寻找能够使条件 nums[i] + nums[j] + nums[k] < target 成立的三元组 i, j, k 个数(0 <= i < j < k < n)。
示例:
输入: nums = [-2,0,1,3], target = 2
输出: 2
解释: 因为一共有两个三元组满足累加和小于 2:
[-2,0,1]
[-2,0,3]
上代码,拿去即可运行:
package com.onlyqi.upup01.test;
/**
* 较小的三数之和
*/
public class ArrayThree {
public static void main(String[] args) {
Integer[] nums = {-2, 0, 1, 3};
Integer target = 2;
System.out.println(min(nums, target));
}
public static Integer min(Integer[] integers, Integer target) {
Integer count = 0;
for (int i = 0; i < integers.length - 2; i++) {
for (int i1 = i + 1; i1 < integers.length - 1; i1++) {
for (int i2 = i1 + 1; i2 < integers.length; i2++) {
if (integers[i] + integers[i1] + integers[i2] < target) {
count = count + 1;
}
}
}
}
return count;
}
}
运行结果:
我要刷100道算法题,第26道。