12 2020 档案

摘要:组合:给你一个数组,找出所有大小为2的组合。 组合是无序的! path.size()是已经选取的元素个数,还需要k-path.size()个元素需要选取,还要选取的元素至多要从n-(k-path.size())+1的位置选取。 class Solution { private: vector<vec 阅读全文
posted @ 2020-12-30 22:26 不妨不妨,来日方长 阅读(178) 评论(0) 推荐(0) 编辑
摘要:https://zhuanlan.zhihu.com/p/37331092 虚函数和纯虚函数 https://blog.csdn.net/u012206617/article/details/87697667 虚函数和纯虚函数 https://www.cnblogs.com/chwei2ch/p/1 阅读全文
posted @ 2020-12-27 21:50 不妨不妨,来日方长 阅读(93) 评论(0) 推荐(0) 编辑
摘要:#include<iostream> #include<vector> using namespace std; void quick_sort(vector<int>& data, int left, int right) { if (left >= right) { return; } // 否 阅读全文
posted @ 2020-12-27 15:10 不妨不妨,来日方长 阅读(120) 评论(0) 推荐(0) 编辑
摘要:#include<iostream> #include<vector> #include<stack> using namespace std; struct TreeNode // 定义树节点的结构 { int val; TreeNode* left; TreeNode* right; TreeN 阅读全文
posted @ 2020-12-27 14:17 不妨不妨,来日方长 阅读(94) 评论(0) 推荐(0) 编辑
摘要:#include<iostream> #include<vector> #include<stack> using namespace std; struct TreeNode // 定义树节点的结构 { int val; TreeNode* left; TreeNode* right; TreeN 阅读全文
posted @ 2020-12-27 14:06 不妨不妨,来日方长 阅读(101) 评论(0) 推荐(0) 编辑
摘要:#include<iostream> using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(nullptr) { } }; class Solution { pub 阅读全文
posted @ 2020-12-26 22:50 不妨不妨,来日方长 阅读(99) 评论(0) 推荐(0) 编辑
摘要:#include<iostream> #include<unordered_map> #include<vector> using namespace std; class Solution { public: vector<int> twoSum(vector<int>& nums, int ta 阅读全文
posted @ 2020-12-26 22:25 不妨不妨,来日方长 阅读(71) 评论(0) 推荐(0) 编辑
摘要:一、最基本的二分查找,判断一个数在数组中是不是存在的问题 #include<iostream> #include<vector> using namespace std; int binary_search(vector<int>& arr, int left, int right, int tar 阅读全文
posted @ 2020-12-26 21:46 不妨不妨,来日方长 阅读(93) 评论(0) 推荐(0) 编辑
摘要:关于滑动窗口的题目,大概有两类,一类是“子串”问题;一类是“用单调队列来解决”的问题 一、“子串问题” https://labuladong.gitbook.io/algo/bi-du-wen-zhang/hua-dong-chuang-kou-ji-qiao-jin-jie labuladong大 阅读全文
posted @ 2020-12-24 18:59 不妨不妨,来日方长 阅读(304) 评论(0) 推荐(0) 编辑
摘要:C++的内存分为:堆、栈、自由存储区、全局/静态存储区、常量存储区。 全局变量、static全局变量、static局部变量时存放在全局/静态存取区的,是在程序编译的时候,就在全局存储区分配内存的,生存期为整个程序运行,直至运行结束才会被系统回收。 全局变量和static全局变量的区别在于作用域,全局 阅读全文
posted @ 2020-12-22 09:17 不妨不妨,来日方长 阅读(751) 评论(0) 推荐(0) 编辑
摘要:双指针分为“快慢指针“和”左右指针“ 快慢指针多用来解决链表中的问题;左右指针多用来解决数组(或者字符串)问题。 一、快慢指针的常见算法 1.判定链表中是否含有环 141 2.已知链表中含有环,返回值这个环的起始位置 142 3.寻找链表的中点,可以解决对链表进行归并排序问题 876 4.寻找链表的 阅读全文
posted @ 2020-12-19 20:59 不妨不妨,来日方长 阅读(156) 评论(0) 推荐(0) 编辑
摘要:#include<iostream> using namespace std; int main() { int a = 8; a += a *= a /= a - 6; cout << "Result :" << a << endl; return 1; } 注意赋值运算符是从右往左结合的,所以这 阅读全文
posted @ 2020-12-19 20:55 不妨不妨,来日方长 阅读(1622) 评论(0) 推荐(0) 编辑
摘要:回溯法也可以叫做回溯搜索法,是一种搜索的方式,回溯和递归是相辅相成的,回溯是递归的副产品,只要有递归就会有回溯,所以可以简单的理解回溯函数和递归函数是同一个函数。 大名鼎鼎的回溯法虽然很不好理解,但其本质就是暴力查找,穷举所有可能,然后找出我们想要的答案,并不是什么高效的算法,虽然有些可以剪枝一下, 阅读全文
posted @ 2020-12-19 20:52 不妨不妨,来日方长 阅读(493) 评论(0) 推荐(0) 编辑
摘要:大佬其实总结的很完善了,先查看大佬的总结: 数组:https://mp.weixin.qq.com/s/X7R55wSENyY62le0Fiawsg 链表:https://mp.weixin.qq.com/s/ntlZbEdKgnFQKZkSUAOSpQ 有几个小问题补充一下: (1)数组下标为什么 阅读全文
posted @ 2020-12-19 10:46 不妨不妨,来日方长 阅读(301) 评论(0) 推荐(1) 编辑
摘要:一些需要知道的基础知识点: 在程序代码中是通过变量名对内存单元进行存取操作的,但是代码经过编译后将变量名转换为该变量在内存中的存放地址,对变量值的存取都是通过地址进行的。比如i+j的运算,如果i等于3,j等于4,程序是先根据变量名与地址的对应关系,找到变量i的地址,从第一个地址开始顺序读取四个字节数 阅读全文
posted @ 2020-12-16 23:47 不妨不妨,来日方长 阅读(492) 评论(0) 推荐(0) 编辑
摘要:如果给定一棵二叉树,要找到二叉树中的所有众数(出现频率最高的元素)。 一、普通二叉树的众数 要统计出现的次数,一般使用到的是map中的unordered_map,因为不需要有序,也不需要有重复的元素,其key值一般是元素的值,value一般是元素出现的次数,这个只要遍历一遍二叉树就能得到unorde 阅读全文
posted @ 2020-12-15 12:55 不妨不妨,来日方长 阅读(266) 评论(0) 推荐(0) 编辑
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), r 阅读全文
posted @ 2020-12-14 15:53 不妨不妨,来日方长 阅读(275) 评论(0) 推荐(0) 编辑
摘要:strcpy函数的原型是 char *strcpy(char *strDest, const char *strSrc); 其中strDest 是目的字符串,strSrc 是源字符串。 不调用C++/C 的字符串库函数,编写函数 strcpy: char *strcpy(char *strDest, 阅读全文
posted @ 2020-12-14 13:08 不妨不妨,来日方长 阅读(758) 评论(0) 推荐(0) 编辑
摘要:二叉树的问题,一定要明白到底应该深度优先(前中后序)还是广度优先(层序遍历) 最基本的遍历方式:深度优先和广度优先 深度优先:前、中、后序(递归法和迭代法均可) 广度优先:层次遍历(迭代法) 栈其实就是递归的一种实现结构,也就是说前中后序遍历的逻辑其实都是可以借助栈使用非递归的方式来实现的; 广度优 阅读全文
posted @ 2020-12-12 20:45 不妨不妨,来日方长 阅读(525) 评论(0) 推荐(0) 编辑
摘要:一、普通二叉树的公共祖先问题 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x) 阅读全文
posted @ 2020-12-11 16:49 不妨不妨,来日方长 阅读(271) 评论(0) 推荐(0) 编辑
摘要:对于让你求二叉树节点个数的题目,无非就是普通二叉树、完全二叉树、满二叉树三种。这三者的关系是,二叉树>完全二叉树>满二叉树。 如果是题目没有给限定条件,只让你求二叉树的节点个数,则按照普通二叉树来求;如果给了限定条件,完全二叉树或者满二叉树,则根据他们的特性有更优化的算法。 一、求普通二叉树的节点个 阅读全文
posted @ 2020-12-11 15:23 不妨不妨,来日方长 阅读(6891) 评论(0) 推荐(0) 编辑
摘要:KMP算法解决的是字符串匹配的问题 文本串:aabaabaaf 模式串:aabaaf 判断文本串中是否存在模式串 需要用到前缀表: 前缀:包含首字母不包含尾字母的所有子串 后缀:包含为字母不包含首字母的所有子串 求最长相等前后缀 初始化 处理前后缀不相同的情况 处理前后缀相同的情况 更新next数组 阅读全文
posted @ 2020-12-07 19:32 不妨不妨,来日方长 阅读(208) 评论(0) 推荐(0) 编辑
摘要:总结: 两数之和——哈希表:时间复杂度O(n),暴力解法O(n^2) 三数之和——双指针:一层i的for循环,双指针left和right。时间复杂度O(n^2),暴力解法O(n^3) 四数之后——双指针:两层i和k的for循环,双指针left和right,时间复杂度O(n^3),暴力解法O(n^4) 阅读全文
posted @ 2020-12-07 19:11 不妨不妨,来日方长 阅读(261) 评论(0) 推荐(0) 编辑
摘要:1.链表中环的入口节点 首先判断头指针是不是空的然后需要判断这个链表中包不包含环:两个指针,一个一步一个两部,如果相遇,说明存在然后判断环节点的个数:从相遇的位置开始,往前走并计数,直到和自己再次相遇,得到个数然后找出入口节点:从头开始,俩指针一个先走n步,另一个再走,两个相遇的位置就是入口节点位置 阅读全文
posted @ 2020-12-04 18:54 不妨不妨,来日方长 阅读(391) 评论(0) 推荐(0) 编辑
摘要:1.数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1 第一种方法,也是我第一次实现的方法:先对数组进行排序,然后从数组头开始循环判断,步进值为数组的一半,如果当前和步进值处的数组元素是相等的,说明这个就是主要元素。 另外还有一些特殊情况,比如数组元素为0、 阅读全文
posted @ 2020-12-04 18:51 不妨不妨,来日方长 阅读(41) 评论(0) 推荐(0) 编辑
摘要:反转链表的题型总结一下无外乎就这几种: 1.从头到尾反转链表 2.反转链表的前n个节点 3.反转链表的m到n个节点 4.反转链表从a节点到b节点左闭右开区间节点 5.k个一组反转链表 1.从头到尾反转链表 从头到尾反转链表是最基本的反转链表题目,无论是迭代法还是递归法都是非常基础和简单的,但是也是考 阅读全文
posted @ 2020-12-04 18:49 不妨不妨,来日方长 阅读(315) 评论(0) 推荐(0) 编辑