- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2025阿里巴巴技术面试题集锦!(附答案)
算法与数据结构类
问题1:给定一个字符串s,其中包含括号()[]{},要求找出最长的有效括号子序列的长度。有效定义为括号类型匹配且顺序正确,子序列不要求连续。
解答思路:子序列问题通常用动态规划(DP)解决,但需注意与子串的区别(子串要求连续)。有效括号子序列的关键是找到匹配的括号对,并累加中间的有效长度。
详细答案:
定义dp[i][j]表示字符串s从i到j位置的最长有效括号子序列长度。状态转移分两种情况:
-若s[i]与s[j]匹配(如s[i]=(,s[j]=)),则dp[i][j]=dp[i+1][j-1]+2;
-否则,dp[i][j]=max(dp[i+1][j],dp[i][j-1])。
边界条件:当i=j时,dp[i][j]=0。
例如,s=([)],i=0((),j=3(])不匹配,取max(dp[1][3],dp[0][2])。dp[1][3]对应[)],最长为2(]不匹配,()匹配);dp[0][2]对应[)],最长为2。最终dp[0][3]=2。
时间复杂度O(n2),空间复杂度O(n2),可通过滚动数组优化至O(n)。
问题2:设计一个支持插入、删除、查询中位数的动态集合,要求各操作时间复杂度不超过O(logn)。
解答思路:中位数是有序集合的中间值,需维护两个堆:大顶堆(保存较小的一半元素)和小顶堆(保存较大的一半元素)。保证大顶堆大小等于或比小顶堆大1(总元素数为奇数时,大顶堆顶为中位数)。
详细答案:
-插入操作:新元素先与大顶堆顶比较,若小于等于则插入大顶堆,否则插入小顶堆。调整堆大小,若大顶堆比小顶堆多2个元素,将大顶堆顶移到小顶堆;若小顶堆比大顶堆大,将小顶堆顶移到大顶堆。
-删除操作:需标记待删除元素(延迟删除),当堆顶是标记元素时弹出。需记录元素在两个堆中的出现次数。
-查询中位数:若总元素数为奇数,返回大顶堆顶;否则返回两堆顶的平均值。
关键点:堆的平衡调整和延迟删除机制,确保每次操作后堆结构满足条件,时间复杂度由堆的插入、删除(O(logn))决定。
系统设计类
问题3:设计一个支持亿级用户的双11秒杀系统,要求QPS10万+,库存扣减0超卖,页面响应时间500ms。
解答思路:秒杀系统的核心是流量削峰、库存精准控制、高可用。需从前端优化、流量分层、库存扣减、防刷等方面设计。
详细答案:
1.前端层:静态资源CDN加速,页面缓存(HTTP304),倒计时按钮(避免提前请求),验证码(防机器刷)。
2.流量分层:
-网关层:限制单用户请求频率(如1次/秒),拦截非法请求(如未登录用户);
-服务层:预生成秒杀令牌(用户需先抢令牌,持令牌才能进入库存扣减),令牌数量=库存数×1.2(防取消);
-缓存层:库存预加载到Redis(原子操作扣减),MySQL作为最终库存源(异步同步)。
3.库存扣减:
-Redis使用lua脚本原子扣减(库存0时扣减,返回成功/失败),避免并发问题;
-扣减成功后,异步将订单写入MQ(如RocketMQ),由下游服务处理订单生成和库存同步(最终一致);
-超卖防护:Redis库存设置为0时,直接拒绝后续请求;MySQL层面通过乐观锁(version字段)二次校验。
4.高可用:
-服务无状态化,横向扩容;
-Redis集群(主从+哨兵),避免单点故障;
-MQ分区存储,消息持久化(刷盘策略)。
关键指标验证:压测时模拟10万QPS,观察Redis响应时间(10ms)、MQ消息堆积情况(秒级消费)、页面超时率(1%)。
编程语言(Java)类
问题4:JVM中G1收集器如何实现跨代引用的高效处理?对比CMS有哪些改进?
解答思路:跨代引用指老年代对象引用新生代对象,GC时需扫描老年代以确定新生代存活对象。G1通过RememberedSet(RSet)优化此过程。
详细答案:
G1的RSet是每个Region的附加数据结构,记录其他Region中对象对本Region的引用。当发生新生代GC时,只需扫描RSet,无需全堆扫描。RSet的维护通过写屏障(WriteBarrier)实现:当对象引用被修改时(如o.f=newObj),若引用跨越Region,将记录到被引用对象所在Region的RSet中。
对比CMS的改进:
-CMS使用卡表(CardTable)标记老年代中的卡页(512字节)是否有跨代引用,扫描时需遍历整个卡表的脏卡页,精度粗(卡页级)
您可能关注的文档
- (车间级)员工安全考试题及答案.docx
- (核工程与核技术)核辐射防护试题及答案.docx
- 《船舶操纵与避碰》考核试题及答案.docx
- 《船舶货运》模拟试卷及答案.docx
- 《地下防水工程质量验收规范》测试题及答案.docx
- 《电子商务与现代物流》试题及答案.docx
- 《防洪防汛专项应急预案》题库及答案.docx
- 《工商企业经营管理》期末考试复习题库及答案.docx
- 《管理学》习题解答及答案.docx
- 《管理学基础》期末考试试题及答案.docx
- 2025四川天府银行社会招聘备考题库(攀枝花)含答案详解(最新).docx
- 2025四川银行首席信息官社会招聘备考题库及完整答案详解1套.docx
- 2025四川天府银行社会招聘备考题库(攀枝花)带答案详解.docx
- 2025四川天府银行社会招聘备考题库(成都)含答案详解(a卷).docx
- 2025四川广元市利州区选聘社区工作者50人备考题库及答案详解(基础+提升).docx
- 2025天津银行资产负债管理部总经理或副总经理招聘1人备考题库含答案详解(典型题).docx
- 2025四川天府银行社会招聘备考题库(西充)附答案详解(考试直接用).docx
- 2025年中国民生银行南宁分行招聘2人备考题库及答案详解(全优).docx
- 2025天津银行高级研究人才招聘备考题库附答案详解(达标题).docx
- 2025大连银行营口分行招聘2人备考题库及参考答案详解一套.docx
最近下载
- 苏教版六年级数学上册解决问题专项练习.docx VIP
- HIV初筛实验室质量管理手册.docx VIP
- 歌尔社招测评题.pdf
- (高清版)DB44∕T 1683-2015 《姜荷花切花生产技术规程》.pdf VIP
- 商业银行云平台设计方案.pptx
- 2025年第五届陶瓷基板及封装产业论坛:芯片陶瓷封装基板缺陷检测大模型关键技术与装备.pptx
- 北森行测题库2025 .pdf VIP
- 2025年信息系统安全专家零信任架构中的团队建设与协作专题试卷及解析.pdf VIP
- 2025年通信工程师HTTP协议标准化组织(IETF)与RFC文档专题试卷及解析.pdf VIP
- 商业银行数据中心灾备--网络架构设计方案.pptx
原创力文档


文档评论(0)