![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 66
没有名字的小小怪物
这个作者很懒,什么都没留下…
展开
-
动态规划,背包问题等
动态规划基本步骤:1 确定dp,确定含义;2 确定递推公式;3 确定dp初始化;4 确定遍历顺序;一维dp例题1:;leetcode746//1dp[i]表示到达i阶梯时最小支付花费;//2 dp[i] = min(dp[i-2]+cost[i-2],dp[i-1]+cost[i-1]);因为能到达第i个楼梯//肯定是从i-1或者i-2阶梯来的。//3 dp[0]=0;dp[1]=0;//4 从小到大;int minCostClimbingStairs(vector<int&原创 2022-03-22 10:40:11 · 1505 阅读 · 0 评论 -
数据结构知识
bit数组//bit数组指的是相比于一般数组每一位上都是1bit,如何实现?//利用int数组拆分实现int arr[10];//10x4x8=320bitint i = 144;//第i位//如何拿到第i位的状态?int numindex = i/32;int moveindex = i%32;int state = ((arr[numindex]>>moveindex) &1);//如何将第i位改为1?arr[numindex] = arr[numindex]|(原创 2022-03-18 17:05:20 · 213 阅读 · 0 评论 -
图相关的算法总结
图的表示:邻接矩阵,邻接表目标:在一种图的表示上实现图的所有算法,在实际遇到,就只需要考虑怎么从一种图的表示转换到我们的表示上struct Node { int value;//类型根据实际变化 int in;//入度 int out;//出度 vector<Node> nexts;//当前节点的邻居有哪些,在有向图中,由当前节点指向他们 vector<Edge> edges;//属于当前节点的边有哪些,由当前节点指向其他 Node(int value){ thi原创 2021-11-02 10:30:55 · 125 阅读 · 0 评论 -
判断两个可能有环的链表相交问题
①链表是否有环判断,有环则返回第一个入环节点?方法:设置两个指针,快指针一次走两步,慢指针一次走一步,若快指针走到空节点,则说明无环,否则,等到两个指针在环内相遇,将快指针指向头节点,两个节点同时开始一次走一步,一定会在入环处相遇。Node* getLoopNode(Node* root) { if (root == nullptr || root->next == nullptr || root->next->next == nullptr) return nullptr;原创 2021-09-17 11:14:16 · 109 阅读 · 0 评论 -
常见排序总结
//实现一个数组指定两个位置交换/*void swap(vector<int>& arr,int a,int b){ arr[a] = arr[a]^arr[b]; arr[b] = arr[a]^arr[b]; arr[a] = arr[a]^arr[b]; //现在有i,j,i=i^j; j = (i^j)^j = i; i = (i^j)^i=j,就实现了交换。 //但是有一个致命缺点,若两个数来自同一个地址,则会清零。}*///补充几个异或规则,// 0 ^ m原创 2021-09-09 12:03:22 · 133 阅读 · 0 评论 -
回溯法的一些心得
回溯法,⼀般可以解决如下⼏种问题:排列,组合问题,满足某种条件的全部子集,即需要穷举才能完成的任务就可能需要回溯。排列有序,组合无序回溯的一般模板void back(参数) { if (End condition) { //Processing result; return; } for (dataset) { //Processing data(比如储存); back(参数); // 递归 //revoke processing(如删除本次储存) }原创 2021-08-27 10:45:54 · 935 阅读 · 0 评论 -
二叉树的一些做题心得
满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。完全二叉树:在满二叉树的基础上,从最底层到上层的顺序下,在每一层的从右到左依次剪枝,无论剪掉多少个,多少层,剩下的就是完全二叉树(当然只有下层全部剪掉了,才能在上层按顺序剪枝。)二叉搜索树:二叉搜索树的每个结点上有数值,二叉搜索树是一个有序树。××若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;××若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;××它的左、右子树原创 2021-07-27 10:44:45 · 349 阅读 · 0 评论