- 博客(13)
- 收藏
- 关注
原创 算法-树与图的深度优先遍历
树是一种特殊的图,是无环连通图。图分成有向图和无向图。ab无向边处理相当于a到b的有向边和b到a的有向边组成。所以简化为我们只用考虑有向图。
2023-12-10 22:04:09
441
1
原创 算法-DFS(基础)-全排列、n皇后问题
dfs是一种搜索方式——深度优先搜索,属于图算法的一种,所以DFS都可以建成树的形式进行遍历。主要涉及到递归。
2023-12-06 23:27:17
461
1
原创 算法-队列(数组实现)
队列是一种特殊的线性表,它允许在一端进行插入操作 ,在另一端进行删除操作。我们可以举个例子来帮助我们理解,队列类比为不能并排站的独木桥,它只能一个一个地从一边进入独木桥,并且按顺序一个一个从另一边出独木桥,不允许按照原路返回。
2023-11-25 23:37:21
427
原创 算法-栈(数组实现)
栈是一种线性表,主要实现了“先进后出”的模式。栈的模式在生活中可以类比为串糖葫芦,这个例子可以帮助我们理解。第一个糖葫芦相当于栈底元素,放到最底下,然后后面的糖葫芦再放进来,最后一个糖葫芦相当于栈顶元素。我们在取糖葫芦的时候只能从顶的一端进行操作,再一个个取出来,越后串上的糖葫芦越先出去,这就是栈的先进后出。形象理解这个例子或者记住下面的图可以更好地理解栈。
2023-11-24 22:55:25
434
1
原创 算法-链表(数组实现)
在Java中我们可以创建Node节点通过创建新节点 new Node() 的方式模拟链表实现,但是每一次都需要创建新节点,是比较慢的,而我们用数组进行模拟链表较快。而链表又分为单链表和双链表,具体来看看如何用数组进行单、双链表的模拟。
2023-11-23 23:27:18
672
原创 算法-双指针
双指针基于循环,是循环的一种优化,形象理解为可以自控制指针。由于双指针基于两层循环理解,在开始练习时,可以先写出朴素的两层循环,再进行双指针改写。
2023-11-16 22:48:59
388
1
原创 【贡献值计算】子串分值(蓝桥)and子串分值和(蓝桥)
类似于穿衣搭配例:有n件上衣,m条裤子,有多少种搭配方式:n * m种,对于子串问题(连续子串),可以类比为:假设当前元素为a,(当前a的位置与上一次a出现位置差)* (当前a的位置与下一次a出现位置差)该元素贡献值 = 元素左边的贡献值 * 元素右边的贡献值(边界进行判断)1.为什么可以进行类比/为什么搭配方式成立?2.(对于子串分值和)界限范围怎么判断/每个元素贡献值怎么计算(依据题意)?界限:当前元素在哪个区间有用。
2023-10-19 23:09:27
236
1
原创 【学习日志】-题:MT1027~1028【有关逆序输出问题】
要求:编写一个程序,要求输入一个两位数的数字,然后逆序输出数字。不考虑不合理的输入或是溢出等特殊情况。样例:输入:28输出:82//用代数方法:1.得到个位:28/10 = 2 2.得到十位:28%10*10 = 80 3.相加 System . out . println(a / 10 + a % 10 * 10);运行之后,发现用代数方法存在一些问题:遇到整十数,会把取模后的零与个位数加上,得到一个个位数。e.g.:输入: 20;
2023-05-01 11:15:49
138
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人