C++
文章平均质量分 60
caoyangxiaoyao
在校研究生
NS3网络仿真
WIFI
Qt5.7
展开
-
C++_回调函数的理解
由于最近项目需求,需要学习一些回调函数的知识。对于指针本来掌握就不够熟练的我来说,网上的资料看的也是一头雾水。其实,看文字描述不如看代码描述。下面就介绍一下我所理解的回调函数。 介绍之前,必须提醒读者,不要被“回调”两个字所迷惑,很多人觉得回调函数神秘,就是有了先入为主的观念,被“回调”所欺骗。我们首先来看一段很简单的例子:int main(int argc,char* argv[]){原创 2017-03-02 10:32:26 · 427 阅读 · 0 评论 -
进制转换
各种机制转换函数strtol函数它的功能是将一个任意1-36进制数转化为10进制数,返回long int型。函数为long int strtol(const char *nptr, char **endptr, int base)base是要转化的数的进制,非法字符会赋值给endptr,nptr是要转化的字符#include<iostream>#include<...原创 2018-09-25 16:25:15 · 211 阅读 · 0 评论 -
排序算法
排序算法比较冒泡排序选择排序插入排序希尔排序归并排序堆排序快速排序时间(平均)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 · 193 阅读 · 0 评论 -
容器的使用
Top K Frequent Elements给定一个非空整数数组,返回前K个最频繁的元素输入:nums = [1, 1, 1, 2, 2, 3],k = 2输出:[1, 2]/* 思路:遇到这种top k的题目,一般都使用堆这种数据结构,因为堆排序每次只需要输出顶部,输出k次即可。*/class Solution {public: vector<int> ...原创 2018-09-25 16:18:44 · 202 阅读 · 0 评论 -
贪心算法
跳跃游戏LeetCode 45给定一个非负矩阵,矩阵中每个位置的数字代表从这个位置最多可以跳的跳数。目标是求出到达最后一个元素的最小跳数。输入:[2, 3, 1, 1, 4]输出:2解释:从0位置跳到1位置,再从1位置跳到4位置,一共两跳到达终点。/* 思路:采用贪心算法,引入reach变量表示可能达到的最远处,这也就是全局最优解;当遍历到i时,局部最优解即次局部下最远可达...原创 2018-09-25 16:17:32 · 239 阅读 · 1 评论 -
其他问题
不使用加号的加法LeetCode 371输入:a=1,b=2输出:3/*思路:不使用加号的加法一般有三步:1)计算a^b,这个计算出来的是不考虑进位的值;2)a&b这个计算出来的是考虑进位的值;3)将考虑进位的值向左移动1位,作为b,将不考虑进位的值作为a,递归调用此函数。*/class Solution {public: int getSum(int a,...原创 2018-08-21 15:19:01 · 130 阅读 · 0 评论 -
字符串处理问题
大小写转换LeetCode 709 To Lower Case输入一个字符串,输出相同的小写后的字符串举例1:输入:”Hello”输出:”hello”举例2:输入:”here”输出:”here”举例3:输入:”LOVELY”输出:”lovely”/*思路:大小写转换有多种方法,这里介绍两种。1)根据ASCII码值,小写字母的ASCII码值比大写...原创 2018-08-21 15:18:32 · 325 阅读 · 0 评论 -
动态规划
编辑距离LeetCode 72给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符方法:/*采用动态规划来解决此类问题,定义一个dp矩阵,dp[m+1][n+1],其中m=word1.size(), n=word2.size()。dp[i-...原创 2018-08-21 15:18:03 · 246 阅读 · 0 评论 -
Top K问题
出现频率Top k的元素LeetCode 347给定一个非空整数数组,返回出现最多的k个元素输入:[1,1,1,2,2,3] k=2输出:[1,2]/*思路:对于此类求top k的问题,都可以用堆排序来实现。map容器和set容器是按照key值来进行排序的,且是按照从小到大排序。而priority_queue是优先级队列,它的底层是大顶堆。因此可以将元素的出现次数放在pai...原创 2018-08-21 14:34:39 · 223 阅读 · 0 评论 -
牛客网C++知识点整理(持续更新)
1.堆栈的使用栈在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。 堆堆是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储原创 2017-09-04 11:38:04 · 924 阅读 · 0 评论 -
回溯法
回溯法是五大常用算法之一,回溯法也是一种暴力算法。我们在图的深度遍历时,其实就用到了回溯法,先选择一条路走,当出现走不通的情况,再返回上一种重新选择一种走法,直到遍历所有节点。常见的八皇后问题也能够使用回溯法来求解。八皇后问题回溯法解决八皇后问题时,是对每一行的每一个位置进行遍历,确定每一行可放皇后的位置。如果这一行没有可以放皇后的位置,则返回上一行,重新选择一个位置。依次类推。下面介绍八...原创 2018-09-25 16:26:11 · 1223 阅读 · 0 评论