淄博网站优化资讯哪个旅游网站可以做私人定制
2026/6/10 20:08:19 网站建设 项目流程
淄博网站优化资讯,哪个旅游网站可以做私人定制,英文公司网站,wordpress xmlrpc接口题目链接#xff1a;盛最多水的容器示例1#xff1a;优选算法-004 方法1#xff1a;暴力破解这个是最简单的方法#xff0c;但是会超时把所有的情况都算一遍#xff0c;不断更新最大面积#xff0c;循环结束#xff0c;保留的结果就是最大面积代码说明核心逻辑#xff…题目链接盛最多水的容器示例1优选算法-004方法1暴力破解这个是最简单的方法但是会超时把所有的情况都算一遍不断更新最大面积循环结束保留的结果就是最大面积代码说明核心逻辑通过双重循环枚举所有可能的左右指针组合i为左板j为右板且j i容积计算根据公式容积 宽度 × 短板高度其中宽度是j - i高度是Math.min(height[i], height[j])最大值更新每次计算后若当前容积大于已记录的最大值则更新最大值。复杂度分析时间复杂度O(n²)双重循环遍历数组n为数组长度当n较大时会超时例如 LeetCode 测试用例中n可达 10⁵此时暴力解法会超出时间限制空间复杂度O(1)仅使用常量级额外空间。public class Solution { public int maxArea(int[] height) { int maxVol 0; int n height.length; // 枚举所有可能的左指针i for (int i 0; i n; i) { // 枚举所有可能的右指针jj i避免重复计算 for (int j i 1; j n; j) { // 计算当前容器的宽度 int width j - i; // 计算当前容器的高度取两板中的短板 int h Math.min(height[i], height[j]); // 计算当前容积 int vol width * h; // 更新最大容积 if (vol maxVol) { maxVol vol; } } } return maxVol; } }方法2双指针方法针对 “盛最多水的容器” 问题双指针法是效率最高的解法核心思路是通过左右指针向中间收缩每次移动较短的那一侧指针从而逼近最大容积解法说明指针初始化左指针left从数组开头出发右指针right从数组末尾出发容积计算每次计算当前指针构成的容器容积公式宽度 × 短板高度指针移动逻辑若左板更短移动左指针尝试找到更长的左板提升高度若右板更短移动右指针尝试找到更长的右板提升高度终止条件左右指针相遇时遍历结束此时maxVol即为最大容积。示例验证输入[1,8,6,2,5,4,8,3,7]初始指针left0高度 1、right8高度 7容积8×18移动左指针→left1高度 8此时容积7×749更新最大容积为 49后续指针收缩过程中容积均未超过 49最终返回49与示例输出一致。复杂度分析时间复杂度O(n)仅遍历数组一次空间复杂度O(1)仅使用常量级额外空间。public class Solution { public int maxArea(int[] height) { int left 0; // 左指针初始指向数组左端 int right height.length - 1; // 右指针初始指向数组右端 int maxVol 0; // 记录最大容积 while (left right) { // 计算当前容器的宽度 int width right - left; // 计算当前容器的高度取左右指针中较短的板 int h Math.min(height[left], height[right]); // 计算当前容积 int currentVol width * h; // 更新最大容积 maxVol Math.max(maxVol, currentVol); // 移动较短的那一侧指针关键缩短宽度的同时尝试增加高度 if (height[left] height[right]) { left; } else { right--; } } return maxVol; } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询