Problem · Tree
Collect Opportunity Data in a Tree
Learn this problemProblem statement
You are given an undirected tree with n nodes labeled from 0 to n - 1. The tree is defined by n - 1 edges.
Each node represents a branch office. You are also given a binary array opportunityData of size n, where:
opportunityData[i] = 1means branchicontains important data.opportunityData[i] = 0means it does not.
You may start at any node. You can traverse edges in both directions. You must start and end at the same node.
Special Rule: When you are at a node, you can collect data from all nodes within distance <= 2 edges from your current location.
Return the minimum number of edges you must traverse to collect all important data.
Function
collectOpportunityDataInTree(n: int, edges: int[][], opportunityData: int[]) → intExamples
Example 1
n = 10edges = [[0,1],[0,2],[0,5],[1,3],[1,4],[3,9],[5,6],[6,7],[7,8]]opportunityData = [0,0,1,1,0,0,0,0,1,1]return = 6
Nodes 2, 3, 8, and 9 contain important data.
One optimal strategy:
- Start at node
1. - From node
1, collect data at3and9(within distance 2). - Travel to node
0and collect2. - Travel toward node
6to collect8. - Return to the starting node.
Total edges traversed = 6.
Constraints
2 <= n <= 10^5edges.length == n - 1- The input graph is a valid tree
opportunityData[i]is either0or1
More Salesforce problems
- Diameter of an Acyclic Undirected GraphONSITE INTERVIEW · Seen Jul 2026
- Optimal Account BalancingPHONE SCREEN · Seen Jul 2026
- Longest Increasing SubsequencePHONE SCREEN · Seen Jul 2026
- Maximal SquarePHONE SCREEN · Seen Jul 2026
- Maximum Barbell WeightOA · Seen Jul 2026
- Minimum No-Repeat Segments After One Character RemovalOA · Seen Jul 2026
- Minimum Operations to ZeroOA · Seen Jul 2026
- Minimize Total Input Cost (for LTMS)OA · Seen Jun 2026