4 caoyangxiaoyao

尚未进行身份认证

在校研究生 NS3网络仿真 WIFI Qt5.7

等级
博文 41
排名 10w+

回溯法

回溯法是五大常用算法之一,回溯法也是一种暴力算法。我们在图的深度遍历时,其实就用到了回溯法,先选择一条路走,当出现走不通的情况,再返回上一种重新选择一种走法,直到遍历所有节点。常见的八皇后问题也能够使用回溯法来求解。八皇后问题回溯法解决八皇后问题时,是对每一行的每一个位置进行遍历,确定每一行可放皇后的位置。如果这一行没有可以放皇后的位置,则返回上一行,重新选择一个位置。依次类推。下面介绍八...

2018-09-25 16:26:11

进制转换

各种机制转换函数strtol函数它的功能是将一个任意1-36进制数转化为10进制数,返回longint型。函数为longintstrtol(constchar*nptr,char**endptr,intbase)base是要转化的数的进制,非法字符会赋值给endptr,nptr是要转化的字符#include<iostream>#include&lt...

2018-09-25 16:25:15

排序算法

排序算法比较冒泡排序选择排序插入排序希尔排序归并排序堆排序快速排序时间(平均)O(n2)O(n2)O(n2)O(n1.3)O(nlogn)O(nlogn)O(nlogn)时间(最好)O(n)O(n2)O(n)O(n)O(nlogn)O(nlogn)O(nlogn)时间(最差)O(n2)O(n2)O(n2)O(n2)...

2018-09-25 16:24:51

容器的使用

TopKFrequentElements给定一个非空整数数组,返回前K个最频繁的元素输入:nums=[1,1,1,2,2,3],k=2输出:[1,2]/* 思路:遇到这种topk的题目,一般都使用堆这种数据结构,因为堆排序每次只需要输出顶部,输出k次即可。*/classSolution{public:vector<int>...

2018-09-25 16:18:44

贪心算法

跳跃游戏LeetCode45给定一个非负矩阵,矩阵中每个位置的数字代表从这个位置最多可以跳的跳数。目标是求出到达最后一个元素的最小跳数。输入:[2,3,1,1,4]输出:2解释:从0位置跳到1位置,再从1位置跳到4位置,一共两跳到达终点。/* 思路:采用贪心算法,引入reach变量表示可能达到的最远处,这也就是全局最优解;当遍历到i时,局部最优解即次局部下最远可达...

2018-09-25 16:17:32

其他问题

不使用加号的加法LeetCode371输入:a=1,b=2输出:3/*思路:不使用加号的加法一般有三步:1)计算a^b,这个计算出来的是不考虑进位的值;2)a&b这个计算出来的是考虑进位的值;3)将考虑进位的值向左移动1位,作为b,将不考虑进位的值作为a,递归调用此函数。*/classSolution{public:intgetSum(inta,...

2018-08-21 15:19:01

字符串处理问题

大小写转换LeetCode709ToLowerCase输入一个字符串,输出相同的小写后的字符串举例1:输入:”Hello”输出:”hello”举例2:输入:”here”输出:”here”举例3:输入:”LOVELY”输出:”lovely”/*思路:大小写转换有多种方法,这里介绍两种。1)根据ASCII码值,小写字母的ASCII码值比大写...

2018-08-21 15:18:32

动态规划

编辑距离LeetCode72给定两个单词word1和word2,计算出将word1转换成word2所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符方法:/*采用动态规划来解决此类问题,定义一个dp矩阵,dp[m+1][n+1],其中m=word1.size(),n=word2.size()。dp[i-...

2018-08-21 15:18:03

Top K问题

出现频率Topk的元素LeetCode347给定一个非空整数数组,返回出现最多的k个元素输入:[1,1,1,2,2,3]k=2输出:[1,2]/*思路:对于此类求topk的问题,都可以用堆排序来实现。map容器和set容器是按照key值来进行排序的,且是按照从小到大排序。而priority_queue是优先级队列,它的底层是大顶堆。因此可以将元素的出现次数放在pai...

2018-08-21 14:34:39

面试知识点总结——深浅拷贝

区别在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一对一拷贝(逐位复制),当类中数据成员没有指针时,利用浅拷贝完全没有问题;但当数据成员中有指针时,如果采用简单的浅拷贝,那么两个类中的两个指针将会指向同一块地址,当对象快结束时,会调用两次析构器,从而导致指针悬挂现象,所以此时必须使用深拷贝简单来说,带指针用深拷贝,不带指针用浅拷贝具体解释无指...

2018-08-09 10:28:54

面试知识点总结——虚继承

背景:尽管在派生列表中同一个基类只能出现一次,但实际上派生类可以多次继承同一个类。派生类可以通过它的两个直接基类分别继承同一个间接基类,也可以直接继承某个基类,然后通过另一个基类再一次间接继承该类。出现的问题:在默认情况下,派生类中含有继承链上每个类对应的子部分。如果某个类在派生过程中出现了多次,则派生类中将包含该类的多个子对象,这对于一些类时行不通的。比如iostream继承了ist...

2018-08-08 11:27:50

面试知识点总结——map与unordered_map

比较运行效率:unordered_map最高,而map效率较低但提供了稳定效率和有序的序列占用内存:map内存占用略低,unordered_map内存占用略高,而且是线性成比例的需要无序容器,快速查找删除,不担心略高的内存时用unordered_map;对有序容器稳定查找删除效率,内存很在意时候用map。原理map的内部实现是二叉平衡树(红黑树),查找、插入和删除复杂度为O...

2018-08-06 22:02:00

面试知识点总结——迭代器失效问题

在STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector、deque);另一类是以不连续节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。list,set,map容器在使用list、set或map遍历删除某些元素时可以这样使用://正确方法1std::list<int>List;st...

2018-08-06 15:30:53

面试知识点总结——操作系统页面置换算法

页面置换算法是在请求分页存储时,调页时候会用到的。页面置换算法的目标是,尽可能减少换入换出次数。常见的页面置换算法有:最优页面置换算法、先进先出算法、最近最久未使用算法(LRU)、时钟页面置换算法、二次机会算法和最不常用算法。我们还会介绍Belady现象。算法介绍最优页面置换算法特点:替换未来很长时间都不会被访问的页面可保证最低缺页率由于需要预知未来,所以很难实现可用作...

2018-08-03 10:05:30

面试知识点总结——排序算法

排序算法比较冒泡排序选择排序插入排序希尔排序归并排序堆排序快速排序时间(平均)O(n2)O(n2)O(n2)O(n1.3)O(nlogn)O(nlogn)时间(最好)O(n)O(n2)O(n)O(n)O(nlogn)O(nlogn)时间(最差)...

2018-08-02 10:16:43

面试知识点总结——构造函数解析

构造函数的作用是在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。一个类可以有多个构造函数,可根据参数个数不同或类型不同来进行构造函数的重载。默认构造函数Student();//没有参数//如果创建一个类没有写任何构造函数,系统会自动生成默认的无参构造函数//系统自动生成的默认构造函数为空,什么都不...

2018-07-31 10:35:24

面试知识点总结——字符串操作

本节将对C++中字符串的操作进行整理。字符串长度intlen=str.length();len=str.size()字符串比较可以直接进行比较也可以:str1.compare(str2);str1.compare(pos1,len1,str2,pos2,len2);//值为负,0和正附加str1+=str2;str1.append(str2...

2018-07-30 17:14:37

面试知识点总结——STL中map的用法

map属于关联容器,提供一对一的数据处理能力。内部是由红黑树实现的,具有自动排序能力。因此map内部的所有数据是有序的。1.插入操作在map中插入数据有三种方法:使用数组用数组方式插入数据#include<iostream>#include<map>#include<string>usingnamespacestd...

2018-07-27 15:35:50

面试知识点总结——C++中公有继承、私有继承和保护继承的区别

假设基类是一个快要退休的富豪,代码如下:classRichMan{public:RichMan();~RichMan();intm_company;private:intm_money;intm_car;protected:intm_house;};公司是public的,那么他自己(基类),创业伙伴(友元...

2018-07-24 16:15:07

面试知识点总结——const和static

const和static关键字的作用可以从两方面回答:一是和类的成员函数或者成员变量相关,二是不属于类的函数或者变量。const关键字的作用:想要阻止一个变量被改变,可以使用const关键字。在定义该const关键字时,通常要对它进行初始化对于指针来说,可以指定指针本身为const,也可以指定指针所指向的数据为const,或者两者同时指定为const。在一个函数声明中,const可以...

2018-07-24 15:59:28
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!