給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d ,使得 a + b + c + d 的值與 target 相等?找出所有滿足條件且不重複的四元組。
注意:答案中不可以包含重複的四元組。
示例 1:
輸入:nums = [1,0,-1,0,-2,2], target = 0
輸出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]
示例 2:
輸入:nums = , target = 0
輸出:0 <= nums.length <= 200
-109 <= nums[i] <= 109
-109 <= target <= 109
此題和我上次發的三數之和是一樣 思路就不寫了,**入下:
class solutionarrays.sort(nums);
int length = nums.length;
for (int i = 0; i < length - 3; i++)
if (nums[i] + nums[i + 1] + nums[i + 2] + nums[i + 3] > target)
if (nums[i] + nums[length - 3] + nums[length - 2] + nums[length - 1] < target)
for (int j = i + 1; j < length - 2; j++)
if (nums[i] + nums[j] + nums[j + 1] + nums[j + 2] > target)
if (nums[i] + nums[j] + nums[length - 2] + nums[length - 1] < target)
int left = j + 1, right = length - 1;
while (left < right)
left++;
while (left < right && nums[right] == nums[right - 1])
right--;
} else if (sum < target) else }}
}return quadruplets;
}}
Leetcode 每日一練
最小棧 設計乙個支援 push pop top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 輸入 minstack push push push getmin pop top ge...
Leetcode 每日一練
leetcode 每日一練 擁有最多糖果的孩子 給你乙個陣列 candies 和乙個整數 extracandies 其中 candies i 代表第 i 個孩子擁有的糖果數目。對每乙個孩子,檢查是否存在一種方案,將額外的 extracandies 個糖果分配給孩子們之後,此孩子有 最多 的糖果。注意...
Leetcode 每日一練
猜數字 小a 和 小b 在玩猜數字。小b 每次從 1,2,3 中隨機選擇乙個,小a 每次也從 1,2,3 中選擇乙個猜。他們一共進行三次這個遊戲,請返回 小a 猜對了幾次?輸入的guess陣列為 小a 每次的猜測,answer陣列為 小b 每次的選擇。guess和answer的長度都等於3。示例 1...