算法
未秃秃
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2020必知的20道C++精选算法题分享
1.Leetcode41 数组题:第一个缺失的正整数 class Solution1 { public: int firstMissingPositive(int A[], int n) { for (int i = 0; i < n;) { if (A[i] == i + 1) { ++i; } else if ((A[i] <= i) || (A[...原创 2020-02-28 12:03:06 · 1854 阅读 · 0 评论 -
必知之C++算法之七大排序算法相关万字究极集合
排序算法简介 排序的概念 概念 排序是计算机内经常进行的一种操作,其目的是将一组无序的数据元素调整为有序的数据元素的过程。 操作 比较:任意两个数据元素通过比较操作确定先后次序。 //比较数组中两个数据 if (arr[i] > arr[j]) //arr[i]大于arr[j] else //arr[i]小于arr[j] 交换:数据元素之间需要交换才能得到预期结果。 //数据...原创 2020-01-23 13:26:55 · 423 阅读 · 0 评论 -
必知C++算法之大数据相关基本内容
Map-Reduce和Hadoop热门 常见海量处理题目解题关键 1.分而治之。通过哈希函数将大任务分流到机器,或分流成小文件 2.常用的hashMap或bitmap 难点:通讯,时间和空间的估算。 请对10亿个IPV4的ip地址进行排序,每个IP只会出现一次 IPV4的ip数量约等于42亿 ip->转化为无符号整数 10亿个ip->转化为10亿个整数(每个整数4字节,空间约为4G) ...原创 2020-01-23 13:06:13 · 906 阅读 · 0 评论 -
必知C++算法之位运算基本操作
布隆过滤器 网页黑名单系统 垃圾邮件过滤系统 爬虫的网址判断重复系统 … 容忍一定程度的失误率 对空间要求严格 布隆过滤器可以精确的代表一个集合 可精确判断某以元素是否在此集合中 精确程度由用户的具体设计决定 做到100%的精确即正确是不可能的 优势:利用很少的空间可以做到精确率较高 布隆过滤器的bitarray大小如何将确定? 大小为m,样本数量为n,失误率为p n=100亿,p=0.01% ...原创 2020-01-23 13:04:20 · 571 阅读 · 1 评论 -
必知C++算法之排列组合基本操作
概率组合题目分类 1.高中数学为基础的古典概率计算方法 2.斐波那契数列和卡特兰数 6x9的方格,从左上角到右下角,每次只能向下或向右,一共多少种不同走法 一共13步,五步向下,剩下8步向右 组合问题C13 5= C13 8=1287种 ABCDEFG七人站队,A必须在B的左边,求不要求相邻与必须相邻有多少种排法 不要求相邻:7!/2 = 2520种 要求相邻:把AB看成一个人即可,6!=720种...原创 2020-01-23 13:03:08 · 5829 阅读 · 0 评论 -
必知C++算法之链表基本问题
1.快慢指针判断链表有环、寻找环入口、计算环大小的原理 问题: 给定一个链表: 1. 判断链表是否有环。 2. 如果链表有环,请找出环入口。 3. 计算环的大小。 思路:快慢指针 分别定义一个快指针fast和慢指针slow,快指针一次走两步,慢指针一次走一步。如果链表没有环,那么fast最终会指向nullpt...原创 2020-01-23 13:01:23 · 319 阅读 · 0 评论 -
必知C++算法之概率基本问题
概率 概率、期望计算(期望是概率和随机变量乘积的总和) 往往利用古典概率进行计算(组合数学) 概率应用 1.利用随机来改进著名算法(快速排序) 2.随机数的发生器(用给定的随机数发生器构造另外一个) 8只球队,有3个强队,其余都是弱队,随机把他们分成4组比赛,每组两个队,问两强不相遇的概率是多大 1.首先求出8只球队分成4组比赛的方法数 7x5x3x1 = 105种 2.没有两强相遇的方法数 在5...原创 2020-01-23 12:59:34 · 5291 阅读 · 0 评论 -
必知C++算法之二叉树基本操作
测试用树 TreeNode* root = new TreeNode(1); TreeNode* left = new TreeNode(2); TreeNode* right = new TreeNode(3); TreeNode* left2 = new TreeNode(4); TreeNode* right2 = new TreeNode(5); TreeNode* left3...原创 2020-01-23 12:57:38 · 608 阅读 · 0 评论 -
必知C++算法之栈和队列基本操作
栈 1.push 2.pop 3.top 4.size 注意:遍历打印栈空间时不要用for循环size(),因为栈的size()时在改变的,输出会少很多数据 cout << "s.size()=" << s.size() << endl; for(int i = 0; i < s.size(); ++i) { cout << s...原创 2020-01-23 12:55:49 · 855 阅读 · 0 评论
分享