Untitled
unknown
plain_text
a year ago
900 B
61
Indexable
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) // 2Editor is loading...
Leave a Comment