classSolution {
publicintminimumDifference(int[] nums, int k) {
Arrays.sort(nums);
intn= nums.length, ans = 1_000_00;
for (inti=0; i < n - k + 1; i++)
ans = Math.min(ans, nums[i + k - 1] - nums[i]);
return ans;
}
}
classSolution:
defminimumDifference(self, nums: List[int], k: int) -> int:
nums.sort(); ans = 1_000_00for i inrange(len(nums) - k + 1):
ans = min(ans, nums[i + k - 1] - nums[i])
return ans
classSolution {
publicdoublefindMaxAverage(int[] nums, int k) {
intn= nums.length, val = 0;
for (inti=0 ; i < k; i++)
val += nums[i];
intans= val; // 本题存在负数需要先记录开始阶段的和for (inti= k; i < n; i++) {
val += nums[i] - nums[i - k];
ans = Math.max(ans, val);
}
return1.0 * ans / k;
}
}
classSolution:
deffindMaxAverage(self, nums: List[int], k: int) -> float:
ans = val = sum(nums[ : k]) # 本题存在负数需要先记录开始阶段的和for i inrange(k, len(nums)):
val += nums[i] - nums[i - k]
ans = max(ans, val)
return ans / k
classSolution {
publicintnumOfSubarrays(int[] arr, int k, int threshold) {
intn= arr.length, val = 0;
for (inti=0; i < k; i++)
val += arr[i];
intans= val >= k * threshold ? 1 : 0;
for (inti= k; i < n; i++) {
val += arr[i] - arr[i - k];
ans += val >= k * threshold ? 1 : 0;
}
return ans;
}
}
classSolution:
defnumOfSubarrays(self, arr: List[int], k: int, threshold: int) -> int:
val = sum(arr[ : k])
ans = 1if val >= k * threshold else0for i inrange(k, len(arr)):
val += arr[i] - arr[i - k]
ans += 1if val >= k * threshold else0return ans
classSolution {
publicint[] getAverages(int[] nums, int k) {
intn= nums.length;
int[] ans = newint[n];
Arrays.fill(ans, -1);
if (2 * k + 1 <= n) {
longval=0; // 防止溢出for (inti=0; i < 2 * k; i++)
val += nums[i];
for (inti= k; i < n - k; i++) { // 遍历中心位置
val += nums[i + k];
ans[i] = (int)(val / (2 * k + 1));
val -= nums[i - k];
}
}
return ans;
}
}
classSolution:
defgetAverages(self, nums: List[int], k: int) -> List[int]:
n = len(nums); ans = [-1] * n
if2 * k + 1 <= n:
val = sum(nums[ : 2 * k])
for i inrange(k, n - k): # 遍历中心位置
val += nums[i + k]
ans[i] = val // (2 * k + 1)
val -= nums[i - k]
return ans
classSolution {
publicintminimumRecolors(String blocks, int k) {
intn= blocks.length(), count = 0, ans = 0;
for (inti=0; i < n; i++) {
count += blocks.charAt(i) == 'B' ? 1 : 0;
if (i >= k)
count -= blocks.charAt(i - k) == 'B' ? 1 : 0;
ans = Math.max(ans, count);
}
return Math.max(0, k - ans);
}
}
classSolution:
def minimumRecolors(self, blocks: str, k: int) -> int:
ans = val = 0for i, ch in enumerate(blocks):
val += 1ifch== 'B'else0if i >= k:
val -= 1if blocks[i - k] == 'B'else0
ans = max(ans, val)
return max(0, k - ans)
classSolution {
publicintmaxScore(int[] cardPoints, int k) {
// 从 k-1 到 0 再从 n-1 到 n-k 滑动intn= cardPoints.length, val = 0;
for (inti= n - k; i < n; i++)
val += cardPoints[i];
intans= val;
for (inti=0; i < k; i++) {
val += cardPoints[i] - cardPoints[n - k + i];
ans = Math.max(ans, val);
}
return ans;
}
}
classSolution:
defmaxScore(self, cardPoints: List[int], k: int) -> int:
ans = val = sum(cardPoints[-k : ])
for i inrange(k):
val += cardPoints[i] - cardPoints[-k + i]
ans = max(ans, val)
return ans
classSolution {
publicintminSwaps(int[] nums) {
intn= nums.length, cnt1 = 0;
for (inti=0; i < n; i++)
cnt1 += nums[i]; // 定区间长度 cnt1intans=0, val = 0; // val 为 1 的个数for (inti=0; i < n - 1 + cnt1; i++) { // 可以循环
val += nums[i % n];
if (i >= cnt1)
val -= nums[i - cnt1];
ans = Math.max(ans, val);
}
return cnt1 - ans;
}
}
classSolution:
defminSwaps(self, nums: List[int]) -> int:
n = len(nums); cnt = sum(nums) # 1 的个数
ans = val = 0for i inrange(n - 1 + cnt):
val += nums[i % n]
if i >= cnt:
val -= nums[i - cnt]
ans = max(ans, val)
return cnt - ans
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)