Merge pull request #2672 from wenyinmahua/master

Update 0018.四数之和.md 更新 Java 代码
This commit is contained in:
程序员Carl
2024-08-20 10:34:55 +08:00
committed by GitHub

View File

@ -251,8 +251,8 @@ class Solution {
for (int i = 0; i < nums.length; i++) {
// nums[i] > target 直接返回, 剪枝操作
if (nums[i] > 0 && nums[i] > target) {
// nums[i] >= 0 && nums[i] > target 直接返回, 剪枝操作
if (nums[i] >= 0 && nums[i] > target) {
return result;
}
@ -262,10 +262,11 @@ class Solution {
for (int j = i + 1; j < nums.length; j++) {
// nums[i]+nums[j] > target 直接返回, 剪枝操作
if (nums[i]+nums[j] > 0 && nums[i]+nums[j] > target) {
break;
}
// nums[i] >= 0 && nums[i] + nums[j] > target 剪枝操作
if (nums[i] >= 0 && nums[i] + nums[j] > target) {
break;
}
if (j > i + 1 && nums[j - 1] == nums[j]) { // 对nums[j]去重
continue;
@ -274,7 +275,7 @@ class Solution {
int left = j + 1;
int right = nums.length - 1;
while (right > left) {
// nums[k] + nums[i] + nums[left] + nums[right] > target int会溢出
// nums[j] + nums[i] + nums[left] + nums[right] int 可能会溢出,需要转为 long
long sum = (long) nums[i] + nums[j] + nums[left] + nums[right];
if (sum > target) {
right--;