传统弱校HFUT的蒟蒻,真相只有一个

随笔分类 -  复习~~

摘要:目录 一、二分查找实现 upper_bound、lower_bound 二、排序——快排 三、排序——归并 四、排序——堆排 五、排序——冒泡 六、最大子数组和 七、最大子数组积 七、TopK问题 一、二分查找实现 upper_bound、lower_bound 记住两个函数的含义upper_bou 阅读全文
posted @ 2020-09-14 15:02 未名亚柳 阅读(377) 评论(1) 推荐(0)
摘要:leetcode 面试题51. 数组中的逆序对 本质上就是归并排序,并在合并区间过程中统计交换的逆序对的数目 归并排序需要开o(n)的辅助空间 class Solution { public: int deal(vector<int>&nums,vector<int>&tmp,int ll,int 阅读全文
posted @ 2020-04-26 12:24 未名亚柳 阅读(209) 评论(0) 推荐(0)
摘要:一、不能被继承的类 构造函数析构函数定义为 private public中定义static函数调用构造函数析构函数 class Sealed_classes { public: static Sealed_classes* getnew() { return new Sealed_classes() 阅读全文
posted @ 2020-04-09 16:10 未名亚柳 阅读(155) 评论(0) 推荐(0)
摘要:维护一个小根堆寻找最大的K个元素,不会改变存储空间的内容,时间复杂度o(nlogK),空间复杂度o(K) 0903加,一种优化方法:维护一个K个值的小顶堆,每次发现堆外值大于堆顶,就把堆顶替换成这个大值,重新维护堆平衡,直到最后,这个堆就是topk multiset<int,less<int>>维护 阅读全文
posted @ 2020-03-24 20:37 未名亚柳 阅读(227) 评论(0) 推荐(0)
摘要:没在现场,不知道能过多少样例: 第一题: 一副扑克牌,总共有 A 2 3 4 5 6 7 8 9 每张牌各4张,从中抽取任意张牌,牌可以有四种出法 单张牌,比如说 A 一对牌,比如说 两个2 五张牌顺子,比如说 A 2 3 4 5 六张牌连对,比如说 A A 2 2 3 3 现在输入是10种牌每张牌 阅读全文
posted @ 2020-03-21 09:27 未名亚柳 阅读(430) 评论(0) 推荐(0)
摘要:手撕字符串复制 char * strcppy(char * dest,const char *src,size_t count) { char *tmp = dest; while (count-- && (*dest++ = *src++) != '\0'); return tmp; } c++常 阅读全文
posted @ 2020-03-15 00:21 未名亚柳 阅读(130) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2020-03-01 21:56 未名亚柳 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2020-03-01 14:11 未名亚柳 阅读(0) 评论(0) 推荐(0)
摘要:一、动归引入 leetcode 70. 爬楼梯 class Solution { public: int climbStairs(int n) { map<int,int>donser; for(int i=1;i<=n;i++) { if(i==0||i==1||i==2) donser[i]=i 阅读全文
posted @ 2020-02-27 19:38 未名亚柳 阅读(205) 评论(0) 推荐(0)
摘要:一、需要还原状态的递归回溯 leetcode 46. 全排列 打印一串数字的全排列,定义一颗树,树的每个节点map<int,int>used保存当前哪些点用了哪些点还没用,Tnode *next[100]保存接下来的每一个点的索引 就是一个建树的过程,当前数字栈达到了最大长度就保存一次结果,每一个节 阅读全文
posted @ 2020-02-27 17:49 未名亚柳 阅读(175) 评论(0) 推荐(0)
摘要:一、拓扑排序 leetcode 207. 课程表 维护一个数据结构用于存储图的入度或者出度的结构,每次删除入度=0的点及它的出度连线,直到不存在入度=0或者所有节点都已经删除为止。 具体实现时需要有一个标记数组标记已经删除的结点,存储每一个点的入度是多少,出度所连的点有哪些 struct discr 阅读全文
posted @ 2020-02-26 21:23 未名亚柳 阅读(171) 评论(0) 推荐(0)
摘要:一、平衡二叉树 leetcode 110. 平衡二叉树 二叉树判断是否平衡。 对逐个结点判断左右子树是否满足条件。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * 阅读全文
posted @ 2020-02-23 21:52 未名亚柳 阅读(208) 评论(0) 推荐(0)
摘要:Dijkstra算法适用范围是单源最短路,有向图或者无向图,不能处理负权值 Floyd算法适用多源最短路,有向图或者无向图,可以处理负权值但是不能处理负权回路 Ford 算法单源最短路,可以处理负权值,能检测负权回路 Leetcode 743. 网络延迟时间 一、先用Dijkstra算法解,输入是v 阅读全文
posted @ 2020-02-23 10:38 未名亚柳 阅读(219) 评论(0) 推荐(0)
摘要:BFS leetcode 279. 完全平方数 vector存每一层的节点,弹出一个节点就压入这个节点所有的子节点。 从上往下维护一颗树,根节点是要找的n,第一层子节点是父节点减去i*i以后的值,一直到发现0为止。 注意必须要用一个标记数组记录已经走过的点避免重复查找,否则会超时 如果更改一下顺序, 阅读全文
posted @ 2020-02-22 22:32 未名亚柳 阅读(162) 评论(0) 推荐(0)
摘要:leetcode 239. 滑动窗口最大值 题解说用双端队列解,效率的确要高一点,有时间试试。 这里用标记数组实现的,先扫描一遍数组内记录比当前值大的下一个值的下标一边搜索 class Solution { public: vector<int> maxSlidingWindow(vector<in 阅读全文
posted @ 2020-02-15 18:39 未名亚柳 阅读(569) 评论(0) 推荐(0)
摘要:用两个栈实现队列,用两个队列实现栈都要会 leetcode 面试题09. 用两个栈实现队列 #include<stack> class CQueue { public: stack<int> in; stack<int> out; int state=0; CQueue() { } void app 阅读全文
posted @ 2020-02-15 16:47 未名亚柳 阅读(162) 评论(0) 推荐(0)
摘要:链表必须清楚掌握 链表定义 struct ListNode { int val; ListNode *next; }; 创建链表头 ListNode* creat()//创建头 { struct ListNode *node=(struct ListNode *)malloc(sizeof(stru 阅读全文
posted @ 2020-02-15 11:48 未名亚柳 阅读(247) 评论(0) 推荐(0)
摘要:leetcode 191. 位1的个数 维护匹配串 从1开始逐位移动比较 class Solution { public: int hammingWeight(uint32_t n) { // uint32_t为32位无符号类型数据 int count=0; uint32_t donser=1; f 阅读全文
posted @ 2020-02-12 09:55 未名亚柳 阅读(140) 评论(0) 推荐(0)
摘要:leetcode 69. x 的平方根 注意边界条件和判断条件 mid int存不下要用long long long long mid=lower+(upper-lower)/2 取上界 long long mid=lower+(upper-lower+1)/2 取下界 class Solution 阅读全文
posted @ 2020-02-08 10:37 未名亚柳 阅读(151) 评论(0) 推荐(0)
摘要:表示数值的字符串 以e或E分成两部分分别判断即可。 int maxl(int a,int b) { if(a>b) return a; return b; } class Solution { public: bool isNumeric(string str) { int lable=0,pos= 阅读全文
posted @ 2020-02-08 09:24 未名亚柳 阅读(162) 评论(0) 推荐(0)