From 9042cc99008a52b6d172c09ff1c7bf377ece92a9 Mon Sep 17 00:00:00 2001 From: chayan das <110921638+Chayandas07@users.noreply.github.com> Date: Sat, 30 Nov 2024 23:23:05 +0530 Subject: [PATCH] Create 2097. Valid Arrangement of Pairs --- 2097. Valid Arrangement of Pairs | 45 ++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 2097. Valid Arrangement of Pairs diff --git a/2097. Valid Arrangement of Pairs b/2097. Valid Arrangement of Pairs new file mode 100644 index 0000000..892eb8d --- /dev/null +++ b/2097. Valid Arrangement of Pairs @@ -0,0 +1,45 @@ +class Solution { +public: + vector> validArrangement(vector>& pairs) { + + vector> ans; + unordered_map mp; + unordered_map> adj; + + for (auto it : pairs) { + mp[it[0]]++; + mp[it[1]]--; + adj[it[0]].push_back(it[1]); + } + + //finding start node + int starting = pairs[0][0]; + for (auto it : mp) { + if (it.second == 1) { + starting = it.first; + break; + } + } + + vector ref; + stack st; + st.push(starting); + //dfs + while (st.size()) { + auto& nodes = adj[st.top()]; + if (nodes.empty()) { + ref.push_back(st.top()); + st.pop(); + } else { + st.push(nodes.back()); + nodes.pop_back(); + } + } + // converting the path + for (int i = ref.size() - 1; i > 0; i--) { + ans.push_back({ref[i], ref[i - 1]}); + } + + return ans; + } +};