![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
随笔
洲洋的编程课堂
希望组件一个快乐的编程社区
展开
-
如何从大量数据中找出高频词?
如何从大量数据中找出高频词?题目描述有一个 1GB 大小的文件,文件里每一行是一个词,每个词的大小不超过 16B,内存大小限制是 1MB,要求返回频数最高的 100 个词(Top 100)。解答思路由于内存限制,我们依然无法直接将大文件的所有词一次读到内存中。因此,同样可以采用分治策略,把一个大文件分解成多个小文件,保证每个文件的大小小于 1MB,进而直接将单个小文件读取到内存中进行处理。...原创 2020-03-10 22:48:40 · 2536 阅读 · 2 评论 -
如何在大量的数据中找出不重复的整数?
如何在大量的数据中找出不重复的整数?题目描述在 2.5 亿个整数中找出不重复的整数。注意:内存不足以容纳这 2.5 亿个整数。解答思路方法一:分治法与前面的题目方法类似,先将 2.5 亿个数划分到多个小文件,用 HashSet/HashMap 找出每个小文件中不重复的整数,再合并每个子结果,即为最终结果。方法二:位图法位图,就是用一个或多个 bit 来标记某个元素对应的值,而键就是该...原创 2020-03-10 22:47:13 · 439 阅读 · 0 评论 -
如何在大量的数据中找出不重复的整数?
如何在大量的数据中找出不重复的整数?题目描述在 2.5 亿个整数中找出不重复的整数。注意:内存不足以容纳这 2.5 亿个整数。解答思路方法一:分治法与前面的题目方法类似,先将 2.5 亿个数划分到多个小文件,用 HashSet/HashMap 找出每个小文件中不重复的整数,再合并每个子结果,即为最终结果。方法二:位图法位图,就是用一个或多个 bit 来标记某个元素对应的值,而键就是该...原创 2020-03-10 22:47:04 · 524 阅读 · 0 评论 -
如何从 5 亿个数中找出中位数?
如何从 5 亿个数中找出中位数?题目描述从 5 亿个数中找出中位数。数据排序后,位置在最中间的数就是中位数。当样本数为奇数时,中位数为 第 (N+1)/2 个数;当样本数为偶数时,中位数为 第 N/2 个数与第 1+N/2 个数的均值。解答思路如果这道题没有内存大小限制,则可以把所有数读到内存中排序后找出中位数。但是最好的排序算法的时间复杂度都为 O(NlogN)。这里使用其他方法。方法...原创 2020-03-10 22:40:04 · 1296 阅读 · 1 评论 -
如何查询最热门的查询串?
如何查询最热门的查询串?题目描述搜索引擎会通过日志文件把用户每次检索使用的所有查询串都记录下来,每个查询串的长度不超过 255 字节。假设目前有 1000w 个记录(这些查询串的重复度比较高,虽然总数是 1000w,但如果除去重复后,则不超过 300w 个)。请统计最热门的 10 个查询串,要求使用的内存不能超过 1G。(一个查询串的重复度越高,说明查询它的用户越多,也就越热门。)解答思路...原创 2020-03-10 22:39:33 · 264 阅读 · 0 评论 -
如何在面试中介绍自己的项目经验 - hsm_computer - 博客园
如何在面试中介绍自己的项目经验在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果。1 第一印象就不好了,至少会感觉该候选人表述能力不强。2 一般来说,面试官会根据候选人介绍的项目背景来提问题,...原创 2020-03-07 17:19:34 · 226 阅读 · 0 评论 -
Go 工程师,月薪一万起
7 天从 Java 工程师转型为 Go 工程师为什么要舍弃 Java,投奔 Go?我从 2014 年开始接触 Java,对 Java 这门语言有着一种母语情结。相比于 C,Java 拥有面向对象、支持跨平台、垃圾回收等优秀特性。且 Java 的强大而成熟的生态体系、丰富的工具类等使 Java 能够支持了无数大型的系统架构。所以被国内以阿里为代表的广大企业用作编程主语言。那么既然 Java 这...原创 2020-03-01 21:57:26 · 779 阅读 · 0 评论 -
多线程,设计模式,Netty 实战,带你手写一个分布式消息队列
多线程,设计模式,Netty 实战,带你手写一个分布式消息队列开题什么是 MQ ?MQ 就是 Message Queue 的简写,消息队列中间件。用过 MQ 的同学应该都知道,MQ 的主要作用是应用程序的解藕和异步。如果我们在更高的层面去想,MQ 是不是可以理解为一种应用层的通信协议,它实现了多个应用之间的异步通信,同时 MQ 对于用户屏蔽了底层通信协议的实现,我们不管它的 HTTP,TC...原创 2020-03-01 21:56:19 · 631 阅读 · 0 评论 -
微服务架构深度解析与最佳实践
微服务架构深度解析与最佳实践微服务架构的概念,现在对于大家应该都不陌生,无论使用 Apache Dubbo、还是 Spring Cloud,都可以去尝试微服务,把复杂而庞大的业务系统拆分成一些更小粒度且独立部署的 Rest 服务。但是这个过程,具体应该怎么做?现有的条件下到底要不要做微服务?服务拆分成什么粒度才是合适的?遗留的老系统需要如何考虑重构改造?有哪些坑需要我们注意?系统怎么在分布式服务...原创 2020-03-01 21:52:39 · 3369 阅读 · 1 评论 -
如何系统有效地准备一场面试
如何系统有效地准备一场面试1. 澄清阶段澄清阶段的任务,是理清我们有什么、想要什么,明确自己的求职目标。这个阶段的工作,可以分为下面 6 部分:明确自己的职业价值观盘点自我价值筛选公司分析职位寻找亮点设定期望1.1 明确自己的职业价值观职业价值观是个人追求与工作有关的目标,从事满足自己内在寻求的活动时所追求的工作特质或属性,它是个体价值观在职业问题上的反映。换句简单的话讲...原创 2020-02-27 11:25:20 · 2530 阅读 · 0 评论 -
Node + TypeScript 实战肺炎疫情实时动态数据爬虫
Node + TypeScript 实战肺炎疫情实时动态数据爬虫爬虫来自维基百科:爬虫,网络爬虫(英语:Web Crawler),也叫网络蜘蛛(Spider)。通俗一点讲,就是一段自动化的代码,它会模拟人的行为,去浏览一些网站,然后把需要的、有价值的信息拿回来。我们这篇文章的目标是把全国新冠肺炎疫情实时动态:https://ncov.dxy.cn/ncovh5/view/pneumo...原创 2020-02-26 20:25:31 · 1174 阅读 · 1 评论 -
铁总在用的高性能分布式缓存计算框架 Geode
铁总在用的高性能分布式缓存计算框架 Geode什么是 Geode,有哪些特性官网定义Apache Geode 是一个数据管理平台,可在广泛分布的云架构中提供对数据密集型应用程序的实时、一致的访问。Geode 跨多个进程汇集内存、CPU、网络资源和可选的本地磁盘,以管理应用程序对象和行为。它使用动态复制和数据分区技术来实现高可用性、改进的性能、可伸缩性和容错性。除了作为分布式数据容器之外,Ge...原创 2020-02-26 20:25:03 · 2148 阅读 · 2 评论 -
三种新姿势帮你写出精美简历
Markdown 内容生成简历准备工作掌握 Markdown 基本语法。标题、内容强调、段落、代码块、图片链接等。掌握 HTML、CSS 基本语法,因为 Markdown 编辑器支持 HTML 内容。写简历Markdown 基本语法标题,使用 # 可代表 1~6 级标题。例如:### 表示三级标题。内容强调,在强调内容两侧分别加上 * 或者 _。例如:*斜体*、_斜体_ 表示斜...原创 2020-02-26 20:24:26 · 486 阅读 · 0 评论 -
程序员跳槽时,如何高效地准备面试?
程序员跳槽时,如何高效地准备面试?今天和大家分享的主题是「程序员跳槽时,如何高效地准备面试?」,但其实今天主要涉及到的是 HR 在面试时有哪些套路,这样可以见招拆招,斩获 offer!主要包括以下内容:一、程序员面试过程中,面试官想要从"自我介绍"获得什么信息?二、如何去提炼简历中的精华?如何在沟通中体现你的软技能?三、如何去解释简历中的瑕疵?四、HR通常喜欢问哪些与技术无关的问题?这...原创 2020-02-12 08:14:13 · 285 阅读 · 0 评论 -
面试:100 能落地的面试技巧,没用来砍我
面试:100% 能落地的面试技巧,没用来砍我前言这篇文章真的是鸽了很久了,起初是想蹭秋招的热度,现在连秋招末班车的尾灯都看不见了…当初想写这篇文章的原因是因为当时刚经历了一段时间的面试,总结出一些非常实用的经验,于是迫不及待的想要分享,但是后来却因为事情太多就耽搁了。不过,在这段时间里,也对这些经验进行了不断地验证和优化,于是就总结出了这篇文章。关于标题: 虽然标题有点夸张,但是这么起标题...原创 2020-02-12 08:14:24 · 284 阅读 · 0 评论 -
如何学好 Linux、C++,并搞定 BAT 面试
如何学好 Linux、C++,并搞定 BAT 面试简介本科的时候对Linux特别感兴趣,心中向往成为一名运维工程师,就开始没日没夜的看相关的书籍,到了大约2013年前后的时候发现DevOps开始流行起来了,就开始学习Python希望成为一名DevOps工程师,后来出去实习发现从事运维相关的工作并不是我的追求,苦于在合肥这样的城市真的很难找到一份专职做DevOps的地方(当时在科大讯飞的时候,做...原创 2020-02-11 20:52:37 · 544 阅读 · 0 评论 -
数据库
数据库通常在开发中常用的数据库Mysql开始,MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL基础:MySQL的多存储引擎架构...原创 2020-02-09 07:31:35 · 443 阅读 · 0 评论 -
算法
算法什么是算法呢?算法是描述解决问题的方法。算法 (Algo付出m) 这个单词最早出 现在被斯数学家阿勒·花刺子密在公元 825 年(相当于我们中国的唐朝时期)所写的《印度数字算术》中。如今普遍认可的对算法的定义是 :算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。即算法是描述解决问题的方法.一、算法介绍二、算法分析数学...原创 2020-02-09 07:22:11 · 336 阅读 · 0 评论 -
数据结构
数据结构数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。通常我们的程序设计=数据结构+算法,学好数据结构也是我们学习编程的重要一部分.数据结构,本质上是数据之间的结构关系,或者理解成数据元素相互之间存在的一种或多种特定关系的集合。数据结构中的结构,也就是我们研究的主体对象。在数据结构中我们很少研究数据,因为数据在内存中的表现形式对于我们都是一样...原创 2020-02-09 07:19:47 · 180 阅读 · 0 评论 -
程序员求职全流程指南
程序员求职全流程指南转眼校招在即,而金三银四,又是跳槽的好季节,很多已经有工作经验的朋友也在着手找一份更好的工作。校招和社招校招(Campus Hire)校招流程很多企业都在每年的毕业季展开校招。大致流程是:校园宣讲会->收简历->笔试->面试。笔试不是每家企业都有。如果有的话,一般笔试题会比较难,这样做是为了达到减小通过比例的目的。如果笔试能够筛掉大部分,那么相应的...原创 2020-02-09 07:03:56 · 5574 阅读 · 0 评论