mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: findClosestNumber
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -750,24 +750,19 @@ class Utils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int findClosestNumber(int target, List<int> numbers) {
|
static int findClosestNumber(int target, List<int> numbers) {
|
||||||
int minDiff = 127;
|
return switch (numbers.length) {
|
||||||
int? closestNumber;
|
0 => target,
|
||||||
try {
|
1 => numbers.first,
|
||||||
for (int number in numbers) {
|
_ => numbers.reduce((a, b) {
|
||||||
int diff = target - number;
|
int diff1 = (a - target).abs();
|
||||||
if (diff < 0) {
|
int diff2 = (b - target).abs();
|
||||||
continue;
|
return diff1 == diff2
|
||||||
}
|
? max(a, b)
|
||||||
if (diff < minDiff) {
|
: diff1 < diff2
|
||||||
minDiff = diff;
|
? a
|
||||||
closestNumber = number;
|
: b;
|
||||||
}
|
}),
|
||||||
}
|
};
|
||||||
} catch (_) {
|
|
||||||
} finally {
|
|
||||||
closestNumber ??= numbers.last;
|
|
||||||
}
|
|
||||||
return closestNumber;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 版本对比
|
// 版本对比
|
||||||
|
|||||||
Reference in New Issue
Block a user