给定一个整数数组Nums,返回所有的三元组[Nums[i], Nums[j], Nums[k]]使得i!=j, i!=k,和j!=k,并且Nums[i]Nums[j]Nums[k]==0。
请注意,解决方案集不能包含重复的三元组。
例1:
输入:nums=[-1,0,1,2,-1,-4]
输出:[-1,-1,2],-1,0,1]]
例2:
输入:nums=[]
输出:[]
例3:
输入:nums=[0]
输出:[]
class Solution {
public List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> result = new ArrayList<>();
Arrays.sort(nums);
for(int i = 0; nums.length>i;i++){
for(int j = i+1; nums.length>j;j++){
for(int k = j+1; nums.length>k;k++){
List<Integer> answer = new ArrayList<>();
if(i==j && i==k && k==j){
continue;
}
else{
if(i!=j && i!=k && j!=k && nums[i] + nums[j] + nums[k] == 0){
answer.add(nums[i]);
answer.add(nums[j]);
answer.add(nums[k]);
result.add(answer);
}
else{
continue;
}
}
}
}
}
return result;
}
这是我为3sum问题尝试的代码。我得到的是部分答案,但不是完整答案。你能修改这段代码使输出正常吗?
事实上,这个解决方案是在论坛上你分享的链接中找到的:以下是来自https://www.code-recipe.com/post/three-sum
class Solution {
public List < List < Integer >> threeSum(int[] nums) {
// Sort the given array
Arrays.sort(nums);
List <List<Integer>> result = new ArrayList <> ();
for (int num1Idx = 0; num1Idx + 2 < nums.length; num1Idx++) {
// Skip all duplicates from left
// num1Idx>0 ensures this check is made only from 2nd element onwards
if (num1Idx > 0 && nums[num1Idx] == nums[num1Idx - 1]) {
continue;
}
int num2Idx = num1Idx + 1;
int num3Idx = nums.length - 1;
while (num2Idx < num3Idx) {
int sum = nums[num2Idx] + nums[num3Idx] + nums[num1Idx];
if (sum == 0) {
// Add triplet to result
result.add(Arrays.asList(nums[num1Idx], nums[num2Idx], nums[num3Idx]));
num3Idx--;
// Skip all duplicates from right
while (num2Idx < num3Idx && nums[num3Idx] == nums[num3Idx + 1]) num3Idx--;
} else if (sum > 0) {
// Decrement num3Idx to reduce sum value
num3Idx--;
} else {
// Increment num2Idx to increase sum value
num2Idx++;
}
}
}
return result;
}
}
写一个函数均衡器(w1,w2),它包含两个不同长度的单词w1和w2。函数应该返回重复的较小单词,直到它达到长单词的长度
Here’s a list of the common problems you might face, and the possible solutions. I see a blank (white) page instead of the Laravel ‘Welcome’ page! Run the following command from the Laravel root direc
Ant Questions and Answers设计旨在帮助学生和专业人士准备各种Certification Exams和Job Interviews 。 本节提供了一个有用的样本面试问题和多项选择题(MCQ)的集合及其答案和适当的解释。 SN 问题/答案类型<!-- 1 Ant Interview Questions This section provides a huge collectio
Go Questions and Answers设计旨在帮助学生和专业人士准备各种Certification Exams和Job Interviews 。 本节提供了一个有用的样本面试问题和多项选择题(MCQ)的集合及其答案和适当的解释。 Sr.No 问题/答案类型 1 Go面试问题 本节提供了大量的Go面试问题,其答案隐藏在一个方框中,挑战您在发现正确答案之前先了解它们。 2 Go在线测验 本节
主要内容:问题6:“请你自我介绍一下”。,问题12:“谈一谈你的一次失败经历”问题1:你为什么想离开目前的职务? A.别的同仁认为我是老板前的红人,所以处处排挤我。 B.调薪的结果令我十分失望,完全与我的付出不成正比。 C.老板不愿授权,工作处处受限,绑手绑脚、很难做事。 D.公司营运状况不佳,大家人心惶惶。 解答:超过一半的人事主管选择C,其次为D。选择C的回答,可以显示应征者的企图心、能力强,且希望被赋予更多的职责。选择D,则是因离职原因为个人无法改变的客观外在因素,因
我正试图从第I列A列中查找ID。这是我使用的代码: