算法
未秃秃
这个作者很懒,什么都没留下…
展开
-
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 · 1628 阅读 · 0 评论 -
必知之C++算法之七大排序算法相关万字究极集合
排序算法简介排序的概念概念排序是计算机内经常进行的一种操作,其目的是将一组无序的数据元素调整为有序的数据元素的过程。操作比较:任意两个数据元素通过比较操作确定先后次序。//比较数组中两个数据if (arr[i] > arr[j]) //arr[i]大于arr[j]else //arr[i]小于arr[j]交换:数据元素之间需要交换才能得到预期结果。//数据...原创 2020-01-23 13:26:55 · 327 阅读 · 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 · 789 阅读 · 0 评论 -
必知C++算法之位运算基本操作
布隆过滤器网页黑名单系统垃圾邮件过滤系统爬虫的网址判断重复系统…容忍一定程度的失误率对空间要求严格布隆过滤器可以精确的代表一个集合可精确判断某以元素是否在此集合中精确程度由用户的具体设计决定做到100%的精确即正确是不可能的优势:利用很少的空间可以做到精确率较高布隆过滤器的bitarray大小如何将确定?大小为m,样本数量为n,失误率为pn=100亿,p=0.01%...原创 2020-01-23 13:04:20 · 472 阅读 · 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 · 4803 阅读 · 0 评论 -
必知C++算法之链表基本问题
1.快慢指针判断链表有环、寻找环入口、计算环大小的原理问题: 给定一个链表: 1. 判断链表是否有环。 2. 如果链表有环,请找出环入口。 3. 计算环的大小。思路:快慢指针 分别定义一个快指针fast和慢指针slow,快指针一次走两步,慢指针一次走一步。如果链表没有环,那么fast最终会指向nullpt...原创 2020-01-23 13:01:23 · 231 阅读 · 0 评论 -
必知C++算法之概率基本问题
概率概率、期望计算(期望是概率和随机变量乘积的总和)往往利用古典概率进行计算(组合数学)概率应用1.利用随机来改进著名算法(快速排序)2.随机数的发生器(用给定的随机数发生器构造另外一个)8只球队,有3个强队,其余都是弱队,随机把他们分成4组比赛,每组两个队,问两强不相遇的概率是多大1.首先求出8只球队分成4组比赛的方法数7x5x3x1 = 105种2.没有两强相遇的方法数在5...原创 2020-01-23 12:59:34 · 4869 阅读 · 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 · 495 阅读 · 0 评论 -
必知C++算法之栈和队列基本操作
栈1.push2.pop3.top4.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 · 739 阅读 · 0 评论