刷题
o
巴巴多斯小魔
这个作者很懒,什么都没留下…
展开
-
康复记录--------
康复记录原创 2022-06-19 23:57:38 · 183 阅读 · 1 评论 -
?海量数据?问题排查?
100亿个整数,内存足够,如何找到中位数?内存不足,如何找到中位数? 第K大?内存足够: 直接快排查找第K大内存不足: 将100亿个整数分成几个文件存到硬盘里。以高位当桶(24~31),以此处理每个文件,将每个文件写到对应桶的文件(比如程序中 到达一定的数量之后就执行写磁盘操作)。我们根据这256个桶的数的个数,来得到中位数再哪个桶?,这样就变成了求这个桶文件的第K大,我们可以继续将这个文件分成好几个文件,然后以(16~ 23)当桶,这些桶里面(24~ 31)位都是一样的,只需比较(16~23)就可以.原创 2021-03-03 16:46:35 · 172 阅读 · 1 评论 -
几何题
判断一个点是否在封闭图形里边,封闭图形所有点坐标都给出,说思路这个查了下有个专门的算法 https://www.zhihu.com/question/26551754任一射线穿过多边形,奇数个交点则位于多边形之内,偶数个交点则位于多边形之外...原创 2021-03-03 15:35:39 · 106 阅读 · 1 评论 -
字典序最小的最长递增子序列 logn
题目class Solution {public: vector<int> LIS(vector<int>& a) { int n=a.size(),d[n+1],tmp[n]; int len=0; if(n) d[++len]=a[0],tmp[0]=1; for(int i=1;i<n;++i){ if(a[i]>d[len]) d[++len]=a[i],原创 2021-02-23 15:53:11 · 492 阅读 · 0 评论 -
64匹马,8个赛道,最少比几次找出跑得最快的4匹马
首先8个一组,选出最快的4个。这4个分别是每一组的第一名。这4个可能被其他分组的第二名超过。所以这4个和这4个分组的第二名再比较一次。假如还是这四个比较快 那就是答案了。比较8+1次就能得到。假如被代替了一个分组,(A的第一名被D的第二名代替),说明BC的第二名打不过D的第二名。只需要D的第三名、第四名和BC的第一名比较一下即可。比较8+1+1次就能得到。假如被代替了2个分组,(A和B的第一名被C和D的第二名代替),比较8+1次就能得到。...原创 2021-02-21 00:10:57 · 538 阅读 · 0 评论 -
求1+2+...+n 不能用*/、while、for、if else、switch case 条件判断语句
题目class Solution {public: int cal(int n,int& sum){ n&&cal(n-1,sum); return sum+=n; } int Sum_Solution(int n) { int sum=0; return cal(n,sum); }};class A{public: static int n,sum; A()原创 2021-02-20 00:10:42 · 63 阅读 · 0 评论