蓝桥杯题目总结
这不蓝桥杯大赛和GDCPC快到了,提前准备好学习重点
目录
1. 题目类型
2. 常用算法
题目类型
字符串处理
题目大致意思就是给出两个字串,如果全等就输出equal,首尾相同但是中间是打乱的就输出yes,否则就输出no。那么这种题我们应该逐层递进,首先是判断全等,如果是就输出equal就完事了,如果不是则转到yes和no的输出,然后来判断首尾是否相同和中间字符是否按照题意即可
特殊数字处理
树与图
这类题型一般考验的是对树和图的遍历,其中树的遍历主要包括了深度优先遍历和广度优先遍历
数列
主要是对一些比较常用到的数列:例如斐波那契数列等
队列与栈
经常会以树和图的方式一起出,需要掌握栈的使用方法,并与问题联系起来
排序与查找
排序
排序按照原理可分为比较排序和非比较排序,其中比较排序包括转换,插入,选择和归并排序
- 比较排序
- 插入:
包括了插入排序和希尔排序,都是将待排序序列分为两部分,每次将未排序的序列的第一个值插入到已排序序列合适的位置来排序,其中: - 选择:
包括了选择排序和堆排序,都是将待排序序列分为两部分,每次从未排序序列中选择一个最小的值插入到已排序序列的末尾,其中: - 归并排序⑦:
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。
转换:
包括了冒泡排序和快速排序两种,都是通过比较两个值的大小然后进行转换位置的方式来实现排序,其中:
时间问题
计算日期差或者时间差等等问题
数学问题
联系生活的一些问题或者一些名人的数学公式以及猜想,重点就是读懂题目并且多实验数据
常用算法
分治算法
分治算法的基本思想就是分而治之。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思想。
贪心算法
对于人民币的面值有1元 5元 10元 20元 50元 100元,下面要求设计一个程序,输入找零的钱,输出找钱方案中最少张数的方案
动态规划
相比于只考虑眼前情况的贪心算法,动态规划更像是一个考虑全局状态的一种算法思想,动规将一个问题拆成多个子问题,然后从中筛选出最优秀的解法,正所谓大事化小,小事化了,动规会权衡分析下一个状态的最优解,大问题的最优解由小问题的最优解得出
最短路径问题、背包问题
分支限界
分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。最终是为了在解空间树中找到最后的解,每次非最终结果的返回都会选择性的将一些解空间树的分支给裁掉,所以会限界。过程就是将结果的可能表示出来,然后排除掉不会成为最终结果的值
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228147.html原文链接:https://javaforall.net
