LeetCode/cs/successful-pairs-of-spells-and-potions.cs
2024-08-19 21:51:56 +02:00

25 lines
691 B
C#

public class Solution {
public int[] SuccessfulPairs(int[] spells, int[] potions, long success) {
int getSuccessful(long strength) {
var (left, right) = (0, potions.Length);
while (left < right) {
var mid = (left + right) / 2;
if (strength * potions[mid] >= success) {
right = mid;
} else {
left = mid + 1;
}
}
return potions.Length - left;
}
// Ensort potions to allow bisection.
Array.Sort(potions);
return spells
.Select(s => getSuccessful(s))
.ToArray();
}
}