Algorithms & Data Structures
Consider a directed graph with N nodes and M edges, where each edge is weighted. The task is to find the shortest path from node A to node B, but with the constraint that the path must not use more than K edges. What is the most efficient algorithm to solve this problem, and what is its time complexity?
Suppose you have a large dataset consisting of billions of records, where each record has several attributes. You want to cluster the records into groups such that records within the same group are similar to each other, but records in different groups are dissimilar. What is the best algorithm to use for this task, and how can you efficiently scale it to handle such a large dataset?