力扣42接雨水 11盛水最多的容器

发布时间:2026/10/22 13:39:58

力扣42接雨水 11盛水最多的容器 42.接雨水输入height [0,1,0,2,1,0,1,3,2,1,2,1]输出6解释上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图在这种情况下可以接 6 个单位的雨水蓝色部分表示雨水。思路如下首先确定双指针解法因此有left,right两个变量。left,right_max为最大值ans为最终答案left 不大于 right时无限循环二者向中心逼近。height[left]大于right时变动left即短的一边长的一边留下。left_max与height[left]比较如果height[left]大于max则替换max成为新的墙否则为ans加新的left_max - height[left]left 换到下一个柱子right同理可得。class Solution { public int trap(int[] height) { int left 0,right height.length - 1; int left_max 0,right_max 0; int ans 0; while(left right){ if(height[left] height[right]){ if(left_max height[left]){ left_max height[left]; } else{ ans left_max - height[left]; } left; } else{ if(right_max height[right]){ if(right_max height[right]){ right_max height[right]; } else{ ans right_max - height[right]; } } right--; } } return ans; }11.盛水最多的容器给定一个长度为n的整数数组height。有n条垂线第i条线的两个端点是(i, 0)和(i, height[i])。找出其中的两条线使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。求面积宽度为right - left;height 为 left和right中更小的那个。area为两者乘积ans取最大值class Solution { public int maxArea(int[] height) { int left 0,right height.length -1; int ans 0,area 0; int height1 0; while(left right){ int width right - left; height1 Math.min(height[left],height[right]); area height1 * width; ans Math.max(area,ans); if(height[left] height[right]){ left 1; } else{ right - 1; } } return ans; } }3.无重复字符的最长子串示例 1:输入:s abcabcbb输出:3解释:因为无重复字符的最长子串是 abc所以其长度为 3。注意 bca 和 cab 也是正确答案。示例 2:输入:s bbbbb输出:1解释:因为无重复字符的最长子串是 b所以其长度为 1。滑动窗口解法有left right两个指针新建一个HashSet用于存储字符进行比较当right小于 字符串长度时无限循环直到等于即遍历结束当set1中不包含时加入set1 求得ans取max 并且right扩展滑动窗口存在时代表重复remove掉left left即窗口向右缩小一格。class Solution { public int lengthOfLongestSubstring(String s) { int left 0,right 0; int ans 0; SetCharacter set1 new HashSet(); while(right s.length()){ while(set1.contains(s.charAt(right))){ set1.remove(s.charAt(left)); left; } set1.add(s.charAt(right)); ans Math.max(ans,right - left 1); right; } return ans; } }439.找到字符串中所有异位词class Solution { public ListInteger findAnagrams(String s, String p) { ListInteger ans new ArrayList(); int n s.length(),pk p.length(); if(n pk){ return ans; } //初始化 int[] cnts new int[26]; for(int i 0;i pk;i){ cnts[s.charAt(i) - a]; cnts[p.charAt(i) - a]--; } if(allzero(cnts)) ans.add(0); //偏移 for(int i pk;i n;i){ cnts[s.charAt(i) - a]; cnts[s.charAt(i - pk) - a]--; if(allzero(cnts)) ans.add(i- pk 1); } return ans; } private boolean allzero(int[] cnts){ for(int c :cnts ){ if (c ! 0){ return false; } } return true; } }
延伸阅读

更多相关文章

2026/10/21 17:29:42

多模型聚合核心能力:场景化智能路由与动态负载择优算法工程实现

多模型聚合平台的核心竞争力,不在于整合了多少款大模型资源,而在于是否具备精细化、智能化、动态化的模型调度能力。行业内多数聚合产品仅实现了“模型堆砌手动切换”的基础功能,用户需要凭借经验手动选择模型,本质上只是多了一个…

2026/10/22 15:11:25

群晖DS223j NAS实战教程:从装盘入门到私有云存储配置

数据越来越多之后,很多人第一反应是“再买一块移动硬盘”,但用一段时间就会发现:硬盘越买越多,文件散落在各个设备里,想要跨设备读取、备份手机相册、多人共享资料,反而越来越麻烦。这篇文章就以群晖 DS223…

2026/10/23 1:43:32

FGO-py:跨平台 FGO 自动刷本与每周任务助手上手

FGO-py:跨平台 FGO 自动刷本与每周任务助手上手 【免费下载链接】FGO-py 自动爬塔! 自动每周任务! 全自动免配置跨平台的Fate/Grand Order助手.启动脚本,上床睡觉,养肝护发,满加成圣诞了解一下? 项目地址: https://gitcode.com/GitHub_Trending/fg/FGO-py 免…

2026/10/23 1:43:32

如何参与free-claude-code开发?测试规范与CI流程完全指南

【免费下载链接】free-claude-code Use Claude Code for free in the terminal, VSCode extension, or via Discord 项目地址: https://gitcode.com/gh_mirrors/fre/free-claude-code 点击查看 免费下载 free-claude-code 是一个把 Claude Code 的 API 请求免费路由…

2026/10/23 1:38:32

AI泛滥时代,Apple Music为何强调人手制作

2026年,人工智能生成内容已经渗透到数字生活的每个角落。从社交媒体上批量生产的“AI slop”(AI垃圾内容),到流媒体平台算法推荐的合成音乐,用户正被一种低质、同质化的内容洪流所包围。在这样的背景下,App…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑