給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有和為 0 且不重複的三元組。
注意:答案中不可以包含重複的三元組。
示例 1:
輸入:nums = [-1,0,1,2,-1,-4]
輸出:[[-1,-1,2],[-1,0,1]]
示例 2:
輸入:nums =
輸出:示例 3:
輸入:nums = [0]
輸出:先對整個陣列進行排序,陣列為從小到大進行排序,然後遍歷整個排序後的陣列,當遍歷值大於0的時候直接退出迴圈,因為往後的值都大於它,後面的兩個值和一定大於0;當遍歷的下標大於0,並且相鄰的兩個數字相等,跳出本次迴圈繼續下一次,然後 初始化兩個下標 r=i+1,l=leng-1;分別代表當前值後面的第一位和最後一位,然後進行三個數字相加 如果為0,則三個數字對應的下標記錄下來,然後進行移動r,或者一定l,當三個數字之和大於0,則向左移動l,當三個數字之和小於0,則向右移動r;
class solution
int length =nums.length;
//進行排序
arrays.sort(nums);
for(int i=0;i0)
//去重
if(i>0 && nums[i]==nums[i-1]);
//下標i對應的右邊陣列的開始位置
int l=i+1;
//下標i對應的右邊陣列的結束位置
int r=length-1;
while(l0)
//l下標右移
LeetCode 15 三數之和
15.給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組 方法一,個人解法正確,但是效率太低,時間複雜度o n 3 時間超時,無法提交至leetcode public s...
leetcode 15 三數之和
給定乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 class solutio...
leetcode15 三數之和
給定乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 先找兩數之和,然後再用un...