生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1899. 合并若干三元组以形成目标三元组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
1. 題目
三元組 是一個由三個整數組成的數組。
給你一個二維整數數組 triplets ,其中 triplets[i] = [ai, bi, ci] 表示第 i 個 三元組 。
同時,給你一個整數數組 target = [x, y, z] ,表示你想要得到的 三元組 。
為了得到 target ,你需要對 triplets 執行下面的操作 任意次(可能 零 次):
選出兩個下標(下標 從 0 開始 計數)i 和 j(i != j),并 更新 triplets[j] 為 [max(ai, aj), max(bi, bj), max(ci, cj)] 。
例如,triplets[i] = [2, 5, 3] 且 triplets[j] = [1, 7, 5],triplets[j] 將會更新為 [max(2, 1), max(5, 7), max(3, 5)] = [2, 7, 5] 。
如果通過以上操作我們可以使得目標 三元組 target 成為 triplets 的一個 元素 ,則返回 true ;否則,返回 false 。
示例
1:
輸入:triplets
= [[2,5,3],[1,8,4],[1,7,5]], target
= [2,7,5]
輸出:
true
解釋:執行下述操作:
- 選擇第一個和最后一個三元組
[[2,5,3],[1,8,4],[1,7,5]] 。更新最后一個三元組為
[max(2,1), max(5,7), max(3,5)] = [2,7,5] 。triplets
= [[2,5,3],[1,8,4],[2,7,5]]
目標三元組
[2,7,5] 現在是 triplets 的一個元素。示例
2:
輸入:triplets
= [[1,3,4],[2,5,8]], target
= [2,5,8]
輸出:
true
解釋:目標三元組
[2,5,8] 已經是 triplets 的一個元素。示例
3:
輸入:triplets
= [[2,5,3],[2,3,4],[1,2,5],[5,2,3]], target
= [5,5,5]
輸出:
true
解釋:執行下述操作:
- 選擇第一個和第三個三元組
[[2,5,3],[2,3,4],[1,2,5],[5,2,3]] 。更新第三個三元組為
[max(2,1), max(5,2), max(3,5)] = [2,5,5] 。triplets
= [[2,5,3],[2,3,4],[2,5,5],[5,2,3]] 。
- 選擇第三個和第四個三元組
[[2,5,3],[2,3,4],[2,5,5],[5,2,3]] 。更新第四個三元組為
[max(2,5), max(5,2), max(5,3)] = [5,5,5] 。triplets
= [[2,5,3],[2,3,4],[2,5,5],[5,5,5]] 。
目標三元組
[5,5,5] 現在是 triplets 的一個元素。示例
4:
輸入:triplets
= [[3,4,5],[4,5,6]], target
= [3,2,5]
輸出:
false
解釋:無法得到
[3,2,5] ,因為 triplets 不含
2 。提示:
1 <= triplets
.length
<= 10^5
triplets
[i
].length
== target
.length
== 3
1 <= ai
, bi
, ci
, x
, y
, z
<= 1000
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/merge-triplets-to-form-target-triplet
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 只要每個對應的元素都沒有超過 target,且 存在某個位置能匹配,那么該位置就能匹配
class Solution {
public:bool mergeTriplets(vector
<vector
<int>>& triplets
, vector
<int>& target
) {bool f0
= false, f1
= false, f2
= false;for(auto& t
: triplets
){if(t
[0] > target
[0] || t
[1] > target
[1] || t
[2] > target
[2])continue;if(t
[0] == target
[0]) f0
= true;if(t
[1] == target
[1]) f1
= true;if(t
[2] == target
[2]) f2
= true;}return f0
&&f1
&&f2
;}
};
716 ms 142.9 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1899. 合并若干三元组以形成目标三元组的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。