-
leetcode 105 根据前序遍历和中序遍历重构二叉树
Mar 11, 2017 · 2 min read思路: 分治搞之。 实际上两个vector就够了。。。4个会MLE(在leetcode上。。。 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* res; TreeNode* reConstructBinaryTree(vector<int> …
Read More -
前言: hash这种东西人人都会用的东西还有必要说? 起因是...本问了hash中的一个细节...然后...我知道怎么做... 结果描述的不够清楚?如果知道那个做法的名字也许就不用费劲描述了呢。。。所以来复习一下吧2333 hash函数_维基百科 说起来其实哈希只有两个东西比较重要吧。。。 一个是哈希函数的构造: 构造散列函数 散列函数能使对一个数据序列的访问过程更加迅速有效,通过散列函数,数据元素将被更快定位。 1. [直接定址法](https://zh.wikipedia.org/w/index.php?title=&action=edit&redlink=1):取关键字或关键字的某个线性函数值为散列 …
Read More -
前言: 其实有了前文simhash算法的基础,局部敏感hash算法已经不存在理解上的问题了吧。。。毕竟simhash算法应该是局部敏感哈希算法的一种。。所以我就直接转载几篇我认为比较好的文档结合一下好了。。。会把比较重要的概念或者定义标记重点。 局部敏感哈希(Locality Sensitive Hashing,LSH)算法是我在前一段时间找工作时接触到的一种衡量文本相似度的算法。局部敏感哈希是近似最近邻搜索算法中最流行的一种,它有坚实的理论依据并且在高维数据空间中表现优异。它的主要作用就是从海量的数据中挖掘出相似的数据,可以具体应用到文本相似度检测、网页搜索等领域。 1. 基本思想 局部敏感哈希的基本思想类似于一种空间域转换思 …
Read More -
先放原始论文。。。以此表达对这个算法的敬意orz 论文链接 问题引出: 那天百度一面,frog学姐问了我如何判断两篇新闻稿的相似度的问题....我满篇口胡...也只是回答了一些诸如从图片上考虑。。或者去掉stop word之后得到特征向量然后计算余弦值之类得到传统想法。。。 今天看到了google在用的网页去重的算法(?。。。感觉好神奇。。。准备面试到现在,第一个让我感到惊异而不是套路的算法orz 对于处理**大规模文本(500字以上吧)**的时候效果很好。。。但是算法思想却又非常简单。 这才是算法的美丽之处吧。。。。leetcode上的那些纱布技巧也好意思叫算法。。。? 网页去重,其实本质还是网页相似度的计算....首先是两篇,之 …
Read More -
面京东被这个问题卡了QAQ,来补补这方面的课。 转自:链接 蓄水池抽样算法随机算法的一种,用来从 N 个样本中随机选择 K 个样本,其中 N 非常大(以至于 N 个样本不能同时放入内存)或者 N 是一个未知数。其时间复杂度为 O(N),包含下列步骤 (假设有一维数组 S, 长度未知,需要从中随机选择 k 个元素, 数组下标从 1 开始), 伪代码如下: array R[k]; // result integer i, j; // fill the reservoir array for each i in 1 to k do R[i] := S[i] done; // replace elements with gradually …
Read More -
题目链接 题意:给一个二维数组。。。每一行每一列都分别递增。。问某个value是否出现过。。。 思路:单调。。显然二分。。。唯一的技巧是从右上角开始搜。 /* *********************************************** Author :111qqz Created Time :2017年03月09日 星期四 19时03分07秒 File Name :74.cpp ************************************************ */ class Solution { public: bool …
Read More -
阿里一面.
Mar 5, 2017 · 1 min read一开始是晚上七点半,直接一个电话过来就开始面试》。。 窝说不方便,又约了周末下午或者晚上,然后周六上午来了电话....。。。。于是又约了周天下午。。。 然后窝从两点开始等。。。等到六点半。。。决定去教室写报告。。。然后刚到教室电话就来了orz... 先是常规的简单自我介绍。。 然后先是问了一些cpp的问题。。 问了一些cpp的问题: 先是问了c和cppneicu内存的区别。。。我:????? 内存区别什么鬼。。 然后就回答了malloc,free,delete,new的区别。。。好像就是这个问题。。。 第二个问题是什么时候会内存泄露。。 我说申请了内存没释放blablabla... 第三个问题是cpp哪些函数不能为虚函数: 我说构造 …
Read More -
回想起大一的时候打cf...那个时候对C++还不怎么熟悉。。。用sort不会自定义排序方式。。 于是手写快排。。。直接取中间元素没加随机化。。。跪了。。。 后来知道sort怎么写以后。。发现sort是可以通过的。。。 于是我就一直以为sort是带随机化的快排。。。 然而实际上是: sort在数据量比较大的时候用quick_sort...当分段后的数据量小于某个门槛,为了避免对此递归带来的额外负担。。采取插入排序的策略。。 以及。。。快排在最快情况下还是会到达平方的复杂度。。。 于是有人发明了introsort...中文翻译叫内省排序。。。? 维基百科_introsort 这个算法其实就是。。对于数据量大的时候。。。一开始还是快 …
Read More -
啊。。。虽然结果还没出来。。。不过回想发现有些细节已经有些记不清了。。。 所以打算先记录一下? 就算过不了。。。也算是积累一些经验。 一面: 先是简单自我介绍。。。 然后问了2-sum...?(。。。我之前真不知道这是套路题。。。花了较长时间。。。被面试官姐姐(or适牛?)吐槽不够smartQAQ 姐姐表示没听过。。我说就是two-pointer...之后要求我实现一下尺取做法的代码。。。 有点久没写尺取竟然写残了。。。?面试官姐姐看了之后说。。。你的two pointer 怎么head和tail都在一端啊。。。不应该在两端吗。。。我表示喵喵喵喵喵? 我写了好多尺取都是在一端。。。不过这倒是提醒了我。。。改对了代码。。。一头一 …
Read More -
起因是百度实习二面的时候被问了一道类似这样的题: 给我下面的代码,问有没有什么问题。 1 /* *********************************************** 2Author :111qqz 3Created Time :2017年02月28日 星期二 14时49分37秒 4File Name :vector.cpp 5************************************************ */ 6 #include <cstdio>7 #include <vector>8 #include <ctime>9 using namespace …
Read More