Untitled
def findMinSyncTime(total_servers: int, servers: list) -> int: if len(servers) <= 1: return 0 n = len(servers) min_time = float('inf') sorted_servers = sorted(servers) for i in range(n): curr = sorted_servers[i] next_server = sorted_servers[(i + 1) % n] clockwise = (next_server - curr) if next_server > curr else (total_servers - curr + next_server) counterclockwise = total_servers - clockwise current_max = min(clockwise, counterclockwise) min_time = min(min_time, current_max) max_gap = 0 for i in range(n): curr = sorted_servers[i] next_server = sorted_servers[(i + 1) % n] gap = (next_server - curr) if next_server > curr else (total_servers - curr + next_server) max_gap = max(max_gap, gap) return (max_gap + 1) // 2
Leave a Comment