- 博客(11)
- 收藏
- 关注
转载 C++ STL中sort()排序函数详解
1.所有sort算法介绍 所有的sort算法的参数都需要输入一个范围,[begin, end)。这里使用的迭代器(iterator)都需是随机迭代器(RadomAccessIterator), 也就是说可以随机访问的迭代器。 如果你需要自己定义比较函数,你可以把你定义好的仿函数(functor)作为参数传入。每种算法都支持传入比较函数。 以下是所
2017-07-31 15:10:34 6237
原创 直通BAT--数据结构与算法十一(概率)
概率常考题型:概率与期望的计算利用古典概率进行计算:组合数学随机数发生器:利用一个随机数发生器构造另一个随机数发生器1.球队分组问题 8只球队,有3个强队,5只弱队,随机把它们分成4组比赛,每组两个队,问两支强队在一起的概率是多大? 分析:8只球队分成两两一队:首先随机选一个人,他从剩余的7个中选择一个组队有7中情况;再随
2017-07-28 20:46:53 809
原创 直通BAT--数据结构与算法十(排列组合)
排列组合常考题型:传统排列组合题:高中数学知识卡特兰数应用:先详细了解卡特兰数原理1.括号合法问题//假设有n对左右括号,请求出合法的排列有多少个?合法是指每一个括号都可以找到与之配对的括号,比如n = 1时,()是合法的,但是)(为不合法。////给定一个整数n,请返回所求的合法排列数。保证结果在int范围内。////测试样例:
2017-07-28 17:28:32 604
原创 直通BAT--卡特兰数详解
1.关于卡特兰数 卡特兰数是一种经典的组合数,经常出现在各种计算中,其前几项为 : 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466
2017-07-28 11:18:07 650
原创 直通BAT--数据结构与算法九(动态规划)
动态规划: 利用申请的空间来记录每一个暴力搜索的计算结果,下次要用结果的时候直接使用,而不再进行重复的递归过程。且规定每一种递归状态的计算顺序,依次进行计算。动态规划方法步骤:暴力搜索方法:递归。记忆搜索方法:找到哪些参数代表递归过程,将重复计算的值存储下来,是某种形态的动态规划方法。不关心到达某一个递归过程的路径,单纯的对计算过的递归过程进行记录,避免重复的递归过
2017-07-27 21:47:20 443
原创 直通BAT--数据结构与算法八(位运算)
1.不用任何额外变量交换两个整数的值//请编写一个算法,不用任何额外变量交换两个整数的值。////给定一个数组num,其中包含两个值,请不用任何额外变量交换这两个值,并将交换后的数组返回。////测试样例://[1, 2]//返回:[2, 1]vector GetSwap::getSwap(vector num){ //同时与
2017-07-20 08:28:15 718
原创 直通BAT--数据结构与算法七(二叉树)
二叉树常考题型:能够结合队列、栈、链表、字符串等很多数据结构;需要掌握图的基本遍历方式,比如BFS和DFS;掌握递归函数的使用,并自己设计出递归过程;与实际工作紧密结合。二叉树类型:满二叉树:除了最后一层节点无任何子节点外,剩下每一层节点都有两个子节点。层数为L,节点数为N,则N=2的L次方-1。完全二叉树:除了最后一层外,其他每一层的节点数都是满的。最后一层如
2017-07-20 08:26:52 607
原创 直通BAT--数据结构与算法六(二分搜索)
二分法题解题技巧:边界条件的考虑,中间划分点,循环终点的设定;一般mid=(left+right)/2,但是 left+right可能造成溢出,所以mid=left+(right-left)/2;演算判断终点条件是否有等于号;特殊情况要列举完全 1.arr中找到这个数出现的最左边的位置//对于一个有序数组arr,再给定一个整数num,请在ar
2017-07-17 14:54:37 371
原创 直通BAT--数据结构与算法五(链表类)
链表题解题技巧: 链表调整函数的返回值类型,根据要求往往是节点类型;处理链表的过程中,先采用画图的方式理清逻辑;链表问题对于边界条件讨论要求严格;最好不要原链表的基础上改;链表赋值时,考虑链表头尾节点,当前节点的next指针是否要为NULL;善用stack栈结构;node->next ==NULL与node == NULL之间的区别;node = node->next循环前提不要忘记。
2017-07-16 20:25:22 526
原创 C++中vector, list, deque, set, map详解
1. vector向量:相当于一个数组 连续存储结构,每个元素在内存上是连续的;支持高效的随机访问和在尾端插入/删除操作,但其他位置的插入/删除操作效率低下;相当于一个数组,但是与数组的区别为:内存空间的扩展。vector支持不指定vector大小的存储,但是数组的扩展需要程序员自己写。 优点:不指定一块内存大小的数组的连续存储,即可以像数组一样
2017-07-13 11:32:30 1186
原创 C++ STL函数详解
STL函数详解:查找函数:find()、find_if()、adjacent_find()、find_first_of()、find_end();计数函数:count()、count_if();匹配函数:mismatch()、equal();查找函数:search()、search_n();复制函数:copy()、copy_backward();交换函数:swap()、iter_swap(
2017-07-13 11:29:00 1152
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人