牛客网 | 高频面试题 | 容器盛水问题

2026版Java高频面试题解析与实战技巧 Java作为企业级开发的主流语言,其技术栈深度与广度始终是面试考察的重点。从JVM内存模型到并发编程原理,再到分布式系统设计,掌握这些核心概念是开发者进阶的必经之路。JVM的GC机制通过分代回收算法管理内存生命周期,而并发编程中的AQS框架则奠定了Java锁机制的实现基础。在实际工程中,这些技术显著提升了系统吞吐量与稳定性,广泛应用于电商秒杀、金融交易等高并发场景。针对2026年技术趋势,本文特别解析Java 17新特性与Redis分布式锁的优化实践,帮助开发者高效备战面试。 阅读详情

文章目录

题目

题目描述
给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。
具体请参考样例解释
示例1
输入
复制
[3,1,2,5,2,4]
返回值
复制
5
说明

在这里插入图片描述

示例2
输入
[4,5,1,3,2]
返回值
2

解析

通过遍历求出arr[i],左端和右端最大值;最后计算总容水量

class Solution {
public:
    /**
     * max water
     * @param arr int整型vector the array
     * @return long长整型
     */
    long long maxWater(vector<int>& arr) {
        // write code here
        int len = arr.size();
        long long res=0;
        vector<int> right(len),left(len);
        left[0]=arr[0],right[len-1]=arr[len-1];
        for(int i=1;i<len;++i){
            left[i]=max(left[i-1],arr[i]);
            right[len-i-1]=max(right[len-i],arr[len-i]);
        }
        for(int i=0;i<len;++i){
            res+=max(min(left[i],right[i])-arr[i],0);
        }
        return res;
    }
};
深入解析AndroidManifest.xml与device_admin.xml:打造完美DeviceOwner应用配置 本文深入解析了Android企业级开发中DeviceOwner应用的核心配置文件AndroidManifest.xml与device_admin.xml。详细阐述了如何精准声明DeviceAdminReceiver、定义管理策略,并提供了通过ADB命令进行设置与验证的实战指南,帮助开发者构建权限完整、配置正确的设备所有者应用。 阅读详情

相关推荐

一次HTTP完整得请求过程

一次HTTP完整的请求过程 一,大致流程: 根据域名和DNS解析到服务器的IP地址(DNS+CDN) 通过ARP协议获得IP地址对应的物理机器得MAC地址 浏览器对服务器发起三次握手 建立TCP连接后发起HTTP请求报文 服务器响应HTTP请求,将响应报文返回浏览器 短连接情况下,请求结束通过TCP四次挥手关闭连接,长连接在没有访问服务器得若干时间后,进行连接关闭 浏览器得到响应信...

qq_40760617的博客 342

容器盛水问题算法

缘起 最近在牛客网上看到一个容器盛水问题挺有意思,更有意思的是我还想了一天,然后再下班的地铁上顿悟了··· 这个算法题让我想起了读书时一位老师跟我说过的一句话:一个木桶能装多少水不是由最长的那根木板决定,而是由最短的那根木板决定。 这道算法题的解法就根据这句话求解。 思路 小编使用双指针的思路进行解题。 举个例子,假设给定的数组为:[4,3,3,5,1,3,2,3],我们根据这个数组画出对应的图: 其中,粉红色(是粉红色吧?)的方块就是可以盛水的位置,总的盛水量为所有粉色方块的总和。 我们定义两个指针

@起风了的博客 1622

用Python写个彩票小助手:自动生成双色球/大乐透号码并保存到桌面

本文介绍如何使用Python开发一个智能彩票助手,实现双色球和大乐透号码的随机生成与桌面文件保存功能。通过详细的代码示例,包括随机号码生成、文件操作、用户交互和错误处理,帮助Python初学者快速掌握实用工具开发技巧。

weixin_42566121的博客 514

leetcode力扣第11题:盛最多水的容器(算法题中等难度)

leetcode力扣第11题:盛最多水的容器(算法题中等难度)

weixin_44458771的博客 568

动态对抗Zygisk-IL2CppDumper:Unity游戏安全新策略

本文深入探讨了对抗Zygisk-IL2CppDumper攻击的Unity游戏安全新策略。通过实时内存监控、动态混淆技术和异常行为检测体系,有效防止关键代码被动态提取。文章详细介绍了内存指纹系统、运行时混淆方案和五维特征模型等实用防御手段,帮助开发者提升游戏安全性。

weixin_29325955的博客 305

STM32 ADC精准采集12V电池电压:从分压电路到软件校准全解析

本文详细解析了STM32 ADC精准采集12V电池电压的全过程,涵盖分压电路设计、电阻选型、ADC配置优化及软件校准方法。针对电池电压监测中的噪声、温漂等挑战,提供了硬件滤波与软件过采样等实战技巧,确保测量精度达到1%以内,满足嵌入式设备对电源管理的严苛要求。

tech5的博客 1010

常考数据结构与算法:容器盛水问题

题目描述 给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。 示例 输入 [3,1,2,5,2,4] 返回值 5 思路 能装多少水是由左右两边较低的边决定的,因此采用双指针,从开头和最后向中间靠拢,当位置i的数小于较低边表示可以装水。当位置i的数大于较低边时,更新较低边为位置i的值。 public class MaxWaterStruct { public static void main(String[] args).

m0_37564426的博客 598

Qt5.12.12安卓开发环境搭建:Windows下避开SDK版本坑的保姆级教程

本文提供Qt5.12.12在Windows下搭建Android开发环境的详细教程,重点解决SDK版本兼容性问题,特别是cmdline-tools与JDK8的匹配陷阱。通过精准选择组件版本、手动配置路径和修复常见错误,帮助开发者高效完成环境配置,适用于Qt跨平台移动开发。

weixin_33737774的博客 542

容器盛水问题

题1:盛最多水的容器 解题:双指针 初始两个左右指针,可容纳水量min(左指针,右指针)*指针间距 S(i, j) = min(h[i], h[j]) × (j - i) 移动数字较小的指针,min(h[i],h[j])可能变大 public class Solution { public int maxArea(int[] height) { int left = 0; int right = height.length-1; int vomumn = 0; while(

Mikon_0703 405

黑猫带你学UFS协议第1篇:全网最全UFS协议中文详讲,这份学习框架图,你值得拥有!!!(持续更新中...)

本文由黑猫学长撰写,深入解析UFS协议,覆盖从基础概念到高级特性的全方位教程。适合存储芯片行业从业者和嵌入式开发者,旨在帮助读者快速掌握UFS协议,适用于高端智能手机、平板等智能设备。预计15万字,涵盖UFS 3.1协议,讲解UFS协议栈、物理层、链路层、传输层等内容。

黑猫奥利奥的博客 3687

基于YOLOv26的卫星遥感环境监测系统

本文介绍了一个基于YOLOv26的卫星遥感环境监测系统。该系统采用分层架构设计,包含数据采集、预处理、目标检测、图像分析、变化检测等核心模块。技术栈包括YOLOv26、PyTorch、OpenCV等深度学习框架和图像处理工具,以及GDAL、rasterio等地理信息处理库。系统支持获取多种卫星数据源(如Sentinel、Landsat、MODIS)的遥感图像,并进行时间序列分析。通过代码示例展示了数据采集模块的实现,包括卫星图像获取和模拟生成功能。该系统可应用于环境要素检测、变化监测等场景,为环境监测提供智

一键难忘的博客 934

容器盛水问题(同lc42 接雨水)

题目 给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。 示例1 输入: [3,1,2,5,2,4] 返回值: 5 示例2 输入: [4,5,1,3,2] 返回值: 2 思路: 左右高中间低时就会盛水。假如中间没有起起伏伏,都比左右两边矮,比较左右两边,取最小值,中间比最小值低的,就可以盛雨水,盛的数量就是min-这个值,可以从左向右遍历也可以从右向左遍历。 假如中间遇到比min高的,那么就以这个为新的左/右边,继续重复上面过程,直到左右两边相遇。 先从左向

Willow的博客 394

Python学习第32天:Web前端入门

本文介绍了Web前端开发三大核心技术:HTML、CSS和JavaScript。首先概述了HTML的发展历程和HTML5新特性,详细讲解了常用HTML标签如文本、列表、链接、图像、表格、表单等。其次介绍了CSS的基础语法、选择器、颜色字体设置、盒子模型和布局定位方法。最后简要提及JavaScript为网页添加交互功能的作用。文章为Python开发者提供了前端技术的基础知识,帮助理解网页的结构、样式和行为实现原理。

tigerhhzz的博客 1908

牛客网Java开发高频面试题,正在准备面试

先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

2401_83329718的博客 1000

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

牛客网Java开发高频面试题,难道Java真的凉了

1.HashMap 的内部结构?内部原理?和 HashTable 的区别,假如发⽣了 hash 碰撞,如何设计能让遍历效率⾼?2.讲一讲讲讲 ConcurrentHashMap吧。3.讲一下JVM虚拟机内存结构,以及它们的作⽤。4.讲讲JVM的类加载过程&&双亲委派模型。5.谈谈Java的垃圾回收算法。6.谈谈Java垃圾回收的触发条件。7.synchronized和Lock的区别。8.volatile的作⽤,为什么会出现变量读取不⼀致的情况,与 synchronized 的区别?

2401_83330193的博客 960

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

牛客网最新Java高频面试题汇总(2024最新含答案)

作为一名优秀的程序员,技术面试都是不可避免的一个环节,如果你是不是看上去很难,是不是和自己准备的“题库”中的问题不一样?不知道从何处下手?面对如此多的技术面试,怎么样才能说自己的技术已经过关了呢?

qq13321123的博客 1186

牛客网Java开发高频面试题,SpringBoot如何实现负载均衡

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣va开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

A1867350的博客 490

java高频面试题

面试题 Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、MySQL、Redis、JVM、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper 参考1:https://www.cnblogs.com/51ma/p/12462688.html 一、java java基础 1、JDK 和 JRE 有什么区别? 2、== 和 equals 的区别是什么? 3

weixin_43165676的博客 356

高频面试真题答案 -java后端 -java容器篇

原贴 2022届秋招高频面试真题汇总,千题奉送!!!- 后端篇_笔经面经_牛客网

qq_46529610的博客 279

牛客Java面试题【面试】

牛客Java面试题【面试】

小心星的博客 1144

牛客网最新 Java 高频面试合集,掌握这些你也能进大厂

进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全,对于 Java 后端的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了 BATJ 等大厂的 offer, 也已经帮助了很多的 Java 学习者,希望也能帮助到你借花献佛!

qq13321123的博客 397

牛客网高质量面试题,2025金三银四 Java 面试避坑指南

2025 年已经开始了,接近我们所说的“金三银四”也不到几个星期的时间了,时间晃眼就过去了,有的人为了金三银四跳槽早早做足了准备,有的人在临阵磨刀,想必屏幕前的你也想在 2025 年涨薪吧,那么问题来了,怎么才能达到目标呢,不妨跟我来看看为大家盘点整理的一些高频面试问题吧!!!

m0_69632475的博客 1015

牛客网Java面试题目收集整理归纳(2025版,持续更新)

9、通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?10、Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个master,另外 10 个选了另一个 master, 怎么办?35、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证redis 中的数据都是热点数据?31、简单描述 MySQL 中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)

m0_46995061的博客 1094

牛客网最新 Java 面试 1210 道题附答案汇总

以上就是有关程序员面试专题的一些总结,面试不仅考的是技术还有心态,只要你有足够的技术支撑,心态要好,拿到 offer 肯定不在话下。先不要把它想得很困难,自己给自己设置槛!希望大家都可以拿到心仪 offer,走向升职、跳槽、涨薪、赢娶白富美之路!

csdn1234561231的博客 1079

java实习生高频面试题(一)(来源于牛客网)

1、什么是spring? Spring是一个轻量级的IoC和AOP容器框架。它是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发。 2、什么是spring IOC IOC即控制反转,是指将对象的控制权转移给Spring框架,由 Spring 来负责控制对象的生命周期(比如创建、销毁)和对象间的依赖关系。IOC让对象的创建不用去new了,可以由spring自动生产,使用java的反射机制,根据配置文件在运行时动态的去创建对象以及管理对象,并调用对象的方法的。 3、什么是spring

weixin_51008024的博客 490

算法面试高频算法题(leetcode)详解 python3.7实现 最暴力、最佳的解题方法

很不错的内容呀

算法探索之路 4609

牛客网最新大厂Java高频面试题精选(附答案)

最近后台收到很多私信,问得最多的一句话就是:“2026年学Java还能找到工作吗?”说实话,每个月都要回答几次这种问题,感觉都要变成固定节目了。和几个猎头朋友聊了聊,再结合最近帮朋友改简历、做模拟面试的经历,我发现一个残酷的事实:2026年的Java面试,真的和以前不一样了。如果你还用2024年的方法准备,基本等于送人头。一、2026年Java求职为什么更难了?岗位需求下降约20%-30%,但这不是Java凉了——是“只会CRUD”的人凉了。企业要的是能抗住业务、框架、中间件、数据库、性能和稳定性的工程师。

m0_69632475的博客 263
上一篇: 牛客网 | 高频面试题 | 合并有序链表
下一篇: 牛客网 | 高频面试题 | 进制转换
stone_fall
博客等级 码龄9年 230粉丝 256原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值