Преглед на файлове

#feat:leetcode p643题题解

yangyi преди 2 седмици
родител
ревизия
5d8a91c481
променени са 2 файла, в които са добавени 58 реда и са изтрити 0 реда
  1. 35 0
      src/leetcode/p643/Solution.java
  2. 23 0
      src/leetcode/p643/SolutionTest.java

+ 35 - 0
src/leetcode/p643/Solution.java

@@ -0,0 +1,35 @@
+package leetcode.p643;
+
+/**
+ * @ProjectName: LeetCode
+ * @FileName: Solution
+ * @Author: 杨逸
+ * @Data:2025/8/13 13:13
+ * @Description: https://leetcode.cn/problems/maximum-average-subarray-i/description/
+ * 643. 子数组最大平均数 I
+ */
+class Solution {
+    public double findMaxAverage(int[] nums, int k) {
+        int left = 0;
+        int right = 0;
+        //Double.MIN_VALUE取的最小浮点数是一个正的很小的数不是负数,取浮点数最小值应使用 -Double.MAX_VALUE
+        double maxAvg = - Double.MAX_VALUE;
+        double currentValue = 0;
+        double temp;
+        while (right < nums.length){
+            if(right - left == k){
+                temp = currentValue / k;
+                if(temp > maxAvg){
+                    maxAvg = temp;
+                }
+                currentValue -= nums[left++];
+            }
+            currentValue += nums[right++];
+        }
+        temp = currentValue / k;
+        if (temp > maxAvg){
+            maxAvg = temp;
+        }
+        return maxAvg;
+    }
+}

+ 23 - 0
src/leetcode/p643/SolutionTest.java

@@ -0,0 +1,23 @@
+package leetcode.p643;
+
+import org.junit.Test;
+
+/**
+ * @ProjectName: LeetCode
+ * @FileName: SolutionTest
+ * @Author: 杨逸
+ * @Data:2025/8/13 13:22
+ * @Description:
+ */
+public class SolutionTest {
+
+    @Test
+    public void findMaxAverage() {
+        int k =  1;
+        int[] nums = {-1};
+        Solution solution = new Solution();
+        double maxAverage = solution.findMaxAverage(nums, k);
+        System.out.println(maxAverage);
+        System.out.println(-1 > Double.MIN_VALUE);
+    }
+}