蚂蚁集团面试复盘 | 面试题复习

蚂蚁实习一面复盘总结4.13

算法题

1、设计一个算法,求第k个最大的数;

  • 直接排序求第k个
  • 使用选择排序、冒泡排序、插入排序等排到第k个就返回
  • 更快的方法:快排的分治法、最小堆最大堆法,当场写出来还是很难的

2、写单例模式

面试部分

1、RabbitMQ如何保证消息可靠性?

  • 生产者、消费者、消息队列本身

2、RabbitMQ如何保证消息有序性?

  • 出现乱序的情况:一个队列多个消费者、一个队列对应一个消费者,但预取消息prefetch>1
  • 解决办法:拆成多个队列,一个队列对应一个消费者;设置prefetch=1

3、保证消息不重复消费?

  • Redis去重;redis去重存在问题:
    • 当消息消费出现了异常,一般是需要broker重推消息,但是这个这个时候发现redis中已经存在消息id;所以redis去重不支持重复处理;
    • 如果在处理的过程中,如果redis宕机了,redis的数据没有恢复,那么redis去重失效;
    • 所以redis去重一般来说只适合短时间内的大量重复请求;这种情况下不够好,所以需要使用另一种方案:幂等性;
  • 利用幂等性;利用数据库键的唯一索引特性,消息重复插入报错,不再消费;

4、缓存的一致性怎么保证?

  • 旁路缓存模式
  • 缓存双删模式
  • 分布式锁

5、缓存存在ABA问题怎么解决?

  • 线程1写DB更新为A,线程2写DB更新B,此时B先更新缓存,A再更新缓存,缓存中一直存的是A(本来应该为B)

6、分布式锁原理?

  • set、set nx ex 、线程标识锁、lua脚本原子性判断释放
  • 使用lua脚本有什么问题吗?
    • 某些真正的线上运行是禁止lua脚本的;因为安全、性能、维护等原因?可恶啊应该问问面试官到底是什么原因的。

7、redis常用数据结构?

8、跳表?

9、场景题:给一台云端的2CPU4G阿里云机器,有20亿个整数,从中找到出现次数最多的一个数据是什么?有什么办法?

参考:

经典面试问题: Top K 之 ---- 海量数据找出现次数最多或,不重复的。 - 指尖下的幽灵 - 博客园 (cnblogs.com)

如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数 - 腾讯云开发者社区-腾讯云 (tencent.com)

大数据相关题目

第一眼思路:

可以采用哈希表来统计,把这个数作为 key,把这个数出现的次数作为 value,之后再遍历哈希表哪个数出现最多的次数最多就可以了。
但是内存不足。算一下,key 和 value 都是 int 型整数,一个 int 型占用 4B 的内存,所以哈希表的一条记录需要占用 8B,最坏的情况下,这 20 亿个数都是不同的数,大概会占用 16GB 的内存。(1GB= 10^9B, 10亿=10^9)

真正解法:

通过哈希法分成8份小文件, 一份小文件就是2GB,;装入到4GB内存中,2GB是key, 2GB是value。

通过哈希函数,一般整数能按照顺序均匀的分布在不同的文件中。比如-21亿~-15亿分布在文件1,-15亿~-10亿分布在文件2…15亿~21亿分布在文件8。因为hash函数使得同一种数不可能被散列到不同的小文件上。

然后对每一个小文件用哈希表来统计其中每种出现的次数,这样我们就可以得到16个小文件中各自出现次数最多的数,还有各自的次数统计,接下来选出16个小文件各自的第一名中谁出现的次数最多即可

在这里插入图片描述

如果这 20 亿个数数值比较集中的话,怎么优化?

如果给的这 20 亿个数数值比较集中的话,可以先把每个数先做哈希函数映射,根据哈希函数得到的哈希值,再把他们存放到对应的文件中,如果哈希函数设计到好的话,那么这些数就会分布的比较平均。

如果给的这 40 亿个数中数值都是一样的,那么哈希表中,某个 key 的 value
存放的数值就会是 40 亿,然而 int 的最大数值是 21 亿左右,那么就会出现溢出,该怎么办?

  • (把 int 改为 long 会占用更多的内存,同时拆分成更多文件,但不是最佳答案),可以把 value 初始值赋值为 负21亿,这样,如果 value 的数值是 21 亿的话,就代表某个 key 出现了 42 亿次了。

那我如果把 40 亿增加到 80 亿呢?

以一边遍历一遍判断,如果在统计的过程中,发现某个 key 出现的次数超过了 40 亿次,那么,就不可能再有另外一个 key 出现的次数比它多了,那我直接把这个 key 返回就搞定了。

聊天环节

  • 我:笔试做的很差,笔试占比重要性多大?

    • 面试官:看情况,横向对比,可能题目难别人分也不高。考差了也没事,你才大三,还有机会。(婉拒了呗T_T)

    • 你有什么打算吗以后?打算考研保研工作?

    • 喜欢搞算法吗? -也挺有趣的

    • 关注chatGPT吗?-天天用

      • chatGPT出来以后,很多东西不一样了,简单的代码、基础工程工作容易被替代

      • 算法、AI的应用、智能化的应用是未来的一个趋势

      • 这些方面的应用需要更高的背景,因为现在工程技术红利时代已经过去。

    • 所以就是叫我去深造、读研是把T_T , 真是为我考虑啊,用心良苦T_T

    • 本科生和研究生投递简历比例不足 1 : 1 ,本科生简历少,连面试官都感到夸张,因为本科生基数大呀!简历却那么少。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/19394.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重磅发布:2023产业互联网安全十大趋势

3月21日,中国产业互联网发展联盟、《中国信息安全》杂志、南方日报、中国网络空间新兴技术创新论坛、腾讯安全、腾讯研究院联合推出《2023产业互联网安全十大趋势》。 报告汇聚了中国产业互联网发展联盟常务副秘书长陈胜喜、《中国信息安全》杂志社执行董事温哲、南…

点击劫持:CSP frame-ancestors 缺失

点击劫持:CSP frame-ancestors 缺失 什么是Content Security Policy(CSP)启用CSP的两种方法CSP的实例CSP指令介绍限制选项default-src 点击劫持:CSP frame-ancestors 缺失参考 什么是Content Security Policy(CSP&…

chatgpt赋能python:Python如何进行DOS攻击

Python如何进行DOS攻击 随着互联网技术的快速发展,网络攻击也越来越普遍。其中,DOS攻击是一种常见的攻击方式,可以导致目标服务器无法正常工作。Python作为一种高效且易于使用的编程语言,可以用于编写DOS攻击脚本,造成…

账号和权限管理

用户帐号类型 计算机系统帐户的分类帐户共有三种类型 超级用户 指创建者用户 超级用户帐户通常称为root. 可以不受限制地管理系统,并且系统用户可以运行服务. 普通用户帐户由登录并使用系统的真实用户(人员)使用. 超级用户帐户通常称为root,您可以重新…

他们开源了GitHub上最火的双语对话模型,还说AI胡说八道不需要被纠正

衡宇 发自 凹非寺量子位 | 公众号 QbitAI 国产对话机器人ChatGLM,和GPT-4诞生于同一天。 由智谱AI和清华大学KEG实验室联合推出,开启alpha内测版。 这个巧合让智谱AI创始人兼CEO张鹏有一种说不清的复杂感觉。但看到技术被OpenAI做到这么牛,这…

2023爱分析 · 认知智能厂商全景报告 | 爱分析报告

报告编委 黄勇 爱分析合伙人&首席分析师 李进宝 爱分析高级分析师 陈元新 爱分析分析师 目录 1. 研究范围定义 2. 市场洞察 3. 厂商全景地图 4. 市场分析与厂商评估 5. 入选厂商列表 1. 研究范围定义 研究范围 人工智能的发展分为三个阶段——计算…

比尔·盖茨:AI时代已经开启,GPT是40年来最具革命性技术

Datawhale干货 选自:GatesNotes,来源:机器之能 比尔・盖茨表示:人工智能革命重要程度不亚于手机和互联网的诞生。 周二,微软公司创始人比尔・盖茨在他的博客 GatesNotes 中盛赞 OpenAI 的 GPT 模型,称其是…

ChatGPT就这样来了,你不接受它的话,时代就不接受你了

这一波来的太突然了,上个月还在聊ChatGPT会不会替代一部分人的工作,现在就已经发生了。这个周末两天没休息,周六见了在国内最大的ERP软件公司做了十几年的几个朋友,周日见了互联网的几个朋友,包括互联网大厂和游戏公司…

比尔盖茨最新全文:GPT是我一生中见到的两项最具革命性技术之一

ChatGPT狂飙160天,世界已经不是之前的样子。 我新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 今天微软公司联合创始人比尔盖茨在他的个人博客中畅谈ChatGPT和生成式人工智能对教育、医疗、生产力提升、公平等等方面的影响。…

大厂当“海王”,独角兽专情,谁是AI医生的扛鼎者?

比尔盖茨可能是ChatGPT的“头号铁粉”。 他对ChatGPT的“表白”,简直如同情话一般热烈,“这是我一生中见到的两项最具革命性的技术之一”。 ChatGPT在医疗领域的落地,则是比尔盖茨最为看好的赛道,他期待全球都束手无策的看病难、看…

关于中国的医疗改革,看人工智能(chatGPT)怎么回答!

1.对于中国的医疗改革你们什么好的建议? 作为一个语言模型,我可以为您提供一些建议,但请注意这仅仅是一些普遍的建议。医疗改革是一个复杂的议题,需要综合考虑各种因素,包括政治、经济、文化和社会等方面。以下是一些…

【重磅】OpenAI最新解密,ChatGPT的本质是无损压缩器

作者 | 费斌杰 熵简科技CEO 自从去年12月ChatGPT问世以来,AI的发展正式进入快车道,整个行业开始“按日迭代”。从1957年以来,人类在经历了数轮AI浪潮后,这次通用人工智能(AGI)是真的要来了。 我们团队在2月…

chatgpt赋能python:Python考点填空:必备知识点

Python考点填空:必备知识点 作为一种流行的编程语言,Python已经广泛应用于人工智能、数据分析、Web应用等领域。在Python编程中,我们时常接触到填空题,这些考点不仅是Python编程中的基础知识点,也是我们必须掌握的必备…

备考公务员2019

参考:https://www.zhihu.com/people/xi-chuan-3-5/posts 找准目标 你想好为什么考公务员了吗?这是准备公考的第一步也是最重要的一步。如果目标坚定,则遇到时间的紧张、复习的痛苦、深夜的孤寂等一系列困难时都能迎刃而解;如果仅仅…

ChatGPT 将冲击数据库!中国数据库开发者报告正式发布

作者 | 屠敏 出品 | CSDN(ID:CSDNnews) 经过一批批先行者和企业的努力,国产数据库崭露峥嵘,逐渐走上国际舞台,譬如:三年前阿里自主研发的金融级分布式关系数据库 OceanBase 在 TPC-C 基准测试中…

这里有一份教你每天用领英获取20个询盘的免费课程,手慢无

于2023年3月22日,我们圆满完成了深圳宝安的外贸分享交流会,时隔两个月即将迎来我们的广州场。 在上次深圳会议,有幸邀请到江西省跨境电商协会会长莅临 给大家分享了: 如何帮助传统制造业从“0”开始做外贸、如何借助平台为企业…

文心一言 VS 讯飞星火 VS chatgpt (27)-- 算法导论5.1 2题

二、请描述 RANDOM(a,b)过程的一种实现,它只调用 RANDOM(0,1)。作为a和b的函数,你的过程的期望运行时间是多少? 文心一言: 假设我们有一个伪随机数生成器,可以生成在[0,1)范围内的随机数。那么我们可以使…

文心一言 VS 讯飞星火 VS chatgpt (31)-- 算法导论5.2 3题

三、利用指示器随机变量来计算掷n 个骰子之和的期望值。 文心一言: 为了计算掷n个骰子之和的期望值,我们需要先了解一个重要的概念:指示器随机变量。 指示器随机变量是一种特殊的随机变量,它只有两个取值:0和1。通常…

Prompt提示工程的艺术: 解码 ChatGPT

随着ChatGPT的横空出世,prompt提示工程突然就成了一个时髦的技能,prompt的核心是制定科学有效的提示,以便于我们可以从大语言模型中得到更精确的输出。简单说,就是如何从任何人工智能模型中获得更好的输出结果。 做到这一点需要两…

一周 AIGC 丨马云回国首谈 ChatGPT,AIGC 用于旅游宣传片

图片来源:由无界AI生成 今天,在海外“流浪”近 1 年的马云回国的消息刷屏,被众多媒体解读为是对中国民营企业的一个重大的标志性事件。眼光一向超前的马云自然不会错过 ChatGPT 话题。他说:“ChatGPT 这一类技术已经对教育带来挑战…