Track animal migrations across different locations. Given a list of animal movements (animal ID, from location, to location, date), return a map of animals and their complete migration paths sorted by date. Skip invalid movements where the 'from' location doesn't match the animal's last known location.
Examples:
Input: movements = [
{'A1', 'Forest', 'Lake', '2024-01-01'},
{'A1', 'Lake', 'Mountain', '2024-01-02'},
{'A2', 'Desert', 'Forest', '2024-01-01'},
{'A1', 'River', 'Valley', '2024-01-03'}
]
Output: {
'A1': ['Forest -> Lake', 'Lake -> Mountain'],
'A2': ['Desert -> Forest']
}
Explanation: A1's third movement is invalid (from River when last known location was Mountain), A2 has one valid movement
Input: movements = [
{'B1', 'Cave', 'Forest', '2024-02-01'},
{'B1', 'Forest', 'Lake', '2024-02-02'}
]
Output: {
'B1': ['Cave -> Forest', 'Forest -> Lake']
}
Explanation: All movements are valid as each 'from' location matches the previous 'to' location
Apex Code Editor
Welcome to Lightning Challenge!
How It Works
- • Write your solution in the code editor
- • Connect your Salesforce org to test
- • Submit to check if your solution passes
- • Use hints if you get stuck
Contest Alert
🏆 #CodeEveryDay July 2026
Contest runs July 1 - 31. Complete challenges to climb the leaderboard!
Only the 31 daily challenges shown during this contest count toward points. Earlier dailies don't carry over.