本文主要介绍在 LeetCode 题目 496. Next Greater Element I975. Odd Even Jump503. Next Greater Element II 中需要解决的共同问题:next greater element,就是对于一个数组中的每个 element,求出下标和值都比其大的一个 element,根据要求不同,这个问题又可分为 nearest of next greater elements 和 smallest of next greater elements,前者指的是 next greater elements 中离当前 element 最近的那个,后者指的是 next greater elements 中值最小的那个。两个问题都可通过 stack 解决,后者也可通过 treemap 解决。最后会将原来的问题进行的拓展,将原来的数据改成头尾相接的,其解决方法是将来的数组进行 duplicate, 然后把环解开,详细请看后文。

阅读全文 »

本文是 Effective Go 中的一些摘记,主要涉及 golang 中的语法、技巧、风格等。为了尽可能保持原文意思,会通过英文记录相关的知识点。

阅读全文 »

最近看到一篇关于 MLE (Maximum Likelihood Estimation) 和 MAP(Maximum A Posteriori) 的文章,写的很好,非常值得一看,文章链接为 聊一聊机器学习的 MLE 和 MAP:最大似然估计和最大后验估计,本文几乎不加修改地转载了文章,侵删。

阅读全文 »

本系列文章是学习课程 6.824: Distributed Systems 时的一些学习笔记,整个课程的相关材料已整理至 DistributedSystemInGo。本文是 LEC3 的内容,介绍了分布式文件系统 GFS,GFS 为 MapReduce 提供了存储,同样是出自 Google,同样是年代久远,但是其中的一些设计思想同样值得我们参考。

阅读全文 »

本系列文章是学习课程 6.824: Distributed Systems 时的一些学习笔记,整个课程的相关材料已整理至 DistributedSystemInGo。本文是 LEC2 的内容,主要介绍了 RPC 的概念并通过 RPC 实现了一个简单的 c/s 架构的 kv 数据库;同时介绍了多线程编程并通过两种方式实现了一个多线程爬虫。

阅读全文 »

一直都想系统性地学习一下分布式系统的一些理论,所以打算开个坑学习一下 MIT 的课程 6.824: Distributed Systems 。本文主要是 LEC 1 中的内容,简单介绍了分布式系统的几个核心问题,以及经典的分布式计算框架 - MapReduce, 虽然这是耳熟能详的一个框架(或者说是编程范式)了,但是其设计思想至今还是非常值得参考的。

阅读全文 »

EE (Exploitation & Exploration) 问题在计算广告 / 推荐系统中非常常见,甚至在更广义的范围上,任意决策问题都会牵涉到 EE 问题。简单来说,这个问题就是要解决的是在决策时到底是根据已有经验选择最优的策略 (Exploitation),还是去探索一些新的策略来提升未来的收益 (Exploration)。本文主要介绍解决这个问题的三种比较常见的方法:随机方法,UCB 方法,Thompson sampling 方法,侧重于方法的具体流程和基本思想。

阅读全文 »

题目有点拗口,其实就是给定一个数组,要求给出某个元素作为最小值或最小值的那些 continous subarrays 中最长的长度,如对于数组 [1, 2, 5, 6], 元素 5 作为最大值的 continous subarrays 有三个: [5], [2, 5], [1, 2, 5],长度最长的是 3。遍历的解法找出一个元素要 \(O(n)\) 的时间复杂度,找出所有元素则需要 \(O(n^2)\) 的时间复杂度,而通过栈能够在 \(O(n)\) 的时间复杂度内解决这个问题

阅读全文 »
0%