算法及数据结构
文章平均质量分 51
备战蓝桥杯 算法真难 我学不懂
Cabbage coder
我爱java
展开
-
数据结构每日学习 Day15 排序链表
原创 2022-01-24 22:30:49 · 228 阅读 · 1 评论 -
dp动态规划中差分递推的思路
举例思路比如 :我有一个计数最终答案res1 2 3 满足条件继续循环下一个 dp[2]=dp[1]+1=0+1=1 res=12 3 4 满足条件继续循环下一个 dp[3]=dp[2]+1=1+1=2 res=33 4 5 满足条件继续循环下一个 dp[4]=dp[3]+1=2+1=3 res=6重点就是他把右边界锁住了,然后左边取子集的感觉,然后累加就像差分递推那样。public int numberOfArithmeticSlices(int[] nums) {原创 2021-10-20 09:26:49 · 186 阅读 · 0 评论 -
二叉树-求叶节点个数
对任何一棵二叉树:度为0的结点数(即叶节点) = 度为2的节点数 + 1;当二叉树的总个数为奇数时,此二叉树"无度为1"的结点当二叉树的总个数为偶数时,此二叉树"只有一个度为1"的结点设:度为2的结点数为n个度为0的结点数+度为1的结点数+度为2的结点数=N( n+1 )+(n)=2019解得:n=1009所以 :度为2的结点数:1009个度为1的结点数:0个(因为2019是奇数,所以此二叉树没有度为1的结点)度为0的结点数(叶子节点数):1010个(等于度为2的结点数+1)满二叉.转载 2021-03-20 11:26:43 · 6301 阅读 · 0 评论 -
DFS之全排列问题 排列组合等相似题 区分思路
前言:我是洛谷题解的搬运工1.全排列:题目描述:输出自然数 1到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。输入格式一个整数 n。输出格式由 1∼n 组成的所有不重复的数字序列,每行一个序列。每个数字保留 5个场宽。输入输出样例输入3输出1 2 31 3 22 1 32 3 13 1 23 2 1思路:核心点就在于开一个数组记录 是否走过这里原创 2021-02-20 11:21:48 · 413 阅读 · 0 评论 -
STL中的set与map常见用法
set:1.所有元素都是排好序的2.无重复set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构,在插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,它不会插入相同键值的元素,而采取忽略处理。平衡二叉树的检索使用中序遍历算法,检索效率高于vector、deque和list等容器。对于set容器中的键值,不可直接去修改!应该先删除该键值,再插入新的键值。set中的count函数是判断该键值是否出现过,所以只有0/1,因为set中无重复元素题目:七段码co原创 2021-02-19 11:19:59 · 234 阅读 · 0 评论 -
‘xxxxx‘does not name a type
'xxxxx’does not name a type出现的原因可能有下面几点:1、没有加调用函数的头文件2、不存在xxx命名空间3、包含头文件,但是调用的时候,类名写错了转载 2021-02-18 22:19:13 · 579 阅读 · 0 评论 -
dp学习笔记(背包问题及变型题)
1.任务分配现有n个任务,要交给A和B完成。每个任务给A或给B完成,所需的时间分别为ai和bi。问他们完成所有的任务至少要多少时间。Input第一行一个正整数n,表示有n个任务。 接下来有n行,每行两个正整数ai,bi。Output一个数,他们完成所有的任务至少要的时间。SamplesInput Copy35 106 117 12Output12...原创 2021-02-11 11:49:57 · 407 阅读 · 0 评论 -
关于二进制的常用代码(学习笔记)
大佬们常用的无穷大量:const int inf = 0x3f3f3f3f;快速判断二进制中有几个1方法1:这里涉及一个&的知识点,&是按位与,就是在一位一位的做与运算,while(n>0) //这一句,当n不等于0的时候循环执行以下循环体,n等于0的变化条件在n>>=1这一句,将n左移一位,这样当n中所有的”1”位都移出时,就跳出循环了{if((n&1)==1) //这句逐个通过位与的方式查看当前n最左边的一位是不是1,若是,则n&1=1,原创 2021-02-09 21:53:07 · 3371 阅读 · 0 评论 -
二分+贪心思路的一些例题(学习笔记)
题目描述:(火车站)输入2 24 106输出34原创 2021-02-05 10:58:03 · 283 阅读 · 0 评论 -
蓝桥杯DFS和BFS例题(学习笔记)
前言:DFS和BFS都是图的遍历的两种形式。DFS的特点是不具有BFS中按层次顺序遍历的特性,所以DFS不具有最优性。DFS因此常用来求解有没有的问题。DFS所得到的解不一定是最优解。当题目中出现问题是否有解等字眼时,常用DFS来求解。BFS的特点是按照层次顺序遍历,因此,BFS可以用来求解最优解,当题目中出现最短路径,最少的时间等字眼时,常用BFS来求解。BFS:1.迷宫问题(输出最短字典序列)下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方。迷宫的原创 2021-02-03 17:03:41 · 2120 阅读 · 0 评论 -
第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 D题-Seek the Joker I
结合题解和大佬代码总结了一下思路和笔记,如有错误请指出题目描述:输入:41 123 26 4114 514输出:ma la se mi no.1!yo xi no forever!ma la se mi no.1!yo xi no forever!题解:此处引用出于博客:https://blog.csdn.net/NOIAu/article/details/77980240?utm_medium=distribute.pc_relevant.none-task-blog-B原创 2021-01-30 20:44:22 · 332 阅读 · 0 评论 -
第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 C题-上进的凡凡
记笔记记笔记 学习大佬代码思路(结合代码举例来看)假设数组 1 2 3 2 4 5因为只有一个for循环 先找到第一个非降序字串 1 2 3 然后len是3这个1 2 3 所包含所有nice(也就是非降序的字串,也包括它自身也是字串)还有1+……+len-1 (这里也就是1+2=3)包括1 2和2 3和1 2 3然后len=1回到原样 下一个 2 4 5 同样的道理一开始ans=n的原因是 这个数组里的每一个单独的数都看做nice字串code:#include<bits/stdc++原创 2021-01-30 20:19:28 · 288 阅读 · 0 评论 -
(跳台阶问题 dp/递推)有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式
dp好难呜呜呜 记一下思路ps:一道基础的线性dp题目描述:有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。输入输出格式输入格式:两个正整数N,K。输出格式:一个正整数,为不同方式数,由于答案可能很大,你需要输出ans mod 100003后的结果。1.先放一下递推的代码 和dp差不多 区别不大,听大佬说动态规划是递推的一种思路:从最后面开始想,到达第n阶台阶前的最后一步,可能是n-1阶 n-2阶 一直到n-k阶,所以加起来就可以原创 2021-01-29 12:16:46 · 3877 阅读 · 1 评论 -
最短路的三种算法及例题
跟着宇巨学习图论的一天 (最短路)记录一下学习笔记和宇巨的代码1.弗洛伊德算法3层for循环 时间复杂度n^3 数据量小感觉跟区间dp的涂色问题好像,但dp我也不会。。for(int k=1 ;k<=n ;k++)//k是分隔点 作为中间点更新最短路线for(int i=1 ;i<=n ;i++)for(int j=1 ;j<=n ;j++)a[i][j] = min(a[i][j],a[i][k]+a[k][j]);2.迪杰斯特拉算法具体思路:Dijkstra是基原创 2021-01-28 16:59:43 · 1532 阅读 · 0 评论 -
位运算中x&(-x) Lowbit(x)的理解
跟大佬学习树状数组的学习笔记:取到的结果就是把自身x最低位1和后面的0保存,前面都不要了e.g:lowbit(6):6的二进制是(110)所以结果就是(10)lowbit(7):7的二进制是(111)所以结果就是(1)然后把结果转化10进制就可以了快速办法直接看 最低位1取到的是第几位,然后2的几次方就可以了比如lowbit(6) 最低位1 在第1位上 所以2^1=2;lowbit (7) 最低位1 在第0位上 所以2^0=1附上一个特别棒的网站,帮助理解(动画演示代码):h原创 2021-01-26 13:58:50 · 1200 阅读 · 2 评论 -
dfs(回溯)的理解——分考场 例题
转载:https://blog.csdn.net/the_zed/article/details/105122669?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-6&spm=1001.2101.3001.4242留着当笔记了转载 2021-01-24 16:31:12 · 174 阅读 · 0 评论 -
scanf和gets关于读取字符串的回车问题
转载自https://blog.csdn.net/ReaF_star/article/details/85064010?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161093836216780264057204%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_转载 2021-01-18 11:27:46 · 9926 阅读 · 1 评论 -
关于子类继承父类构造器 super问题
关于子类继承父类构造器 super问题当子类想继承父类时,父类必须有无参的构造方法,如果不主动添加系统会默认添加一个无参的构造方法,此时子类可以顺利继承父类但是当父类添加了一个带参的构造方法时,此时系统将不会再默认添加无参的构造方法,所以此时必须自己手动添加一个无参的构造方法,这样才能保证被子类顺利的继承在实例化子类的时候会自动的实例化父类,如果此时的父类还继承了其他的类,那么便会逐级的向上查询,知道找到顶级的父类,然后开始逐个的实例化,在实例化的同时便会自动调用无参的构造方法,但是如果想要调用父类转载 2020-12-17 20:04:59 · 620 阅读 · 1 评论 -
编译错误:invalid types ‘int[int]‘ for array subscrip
invalid types ‘int[int]’ for array subscrip注意:可能是数组名和常量名重复定义了比如 int a; int a[];转载 2020-12-05 20:32:34 · 21840 阅读 · 4 评论