解决问题的题型有哪些

记得有一次,我在图书馆里翻看一本关于编程的书,突然卡在了一个算法题上。那个题是这样的:给定一个整数数组,找出其中两个数字,它们的和等于一个特定的值。我盯着屏幕,手指在键盘上敲打着,心里想着:这题好像是个“双指针”问题。
我尝试了暴力解法,写了嵌套循环,结果运行时间超长。我叹了口气,又想到了“哈希表”这个方法,但总觉得哪里不对劲。于是,我决定去网上搜搜看有没有现成的解法。
搜索结果里,我看到了几种解决这类问题的方法:
1. 暴力法:最简单,但效率低。时间复杂度通常是O(n^2),空间复杂度O(1)。
2. 双指针法:对于有序数组,可以通过两个指针从两头向中间移动,找到和为特定值的两个数字。这种方法的时间复杂度是O(n),空间复杂度是O(1)。
3. 哈希表法:遍历数组,将每个数字和它的索引存入哈希表,然后检查哈希表中是否存在另一个数字,其值为特定值减去当前数字。这种方法的时间复杂度是O(n),空间复杂度是O(n)。
4. 二分查找法:适用于有序数组,通过二分查找来找到特定的值,然后进行相应的操作。这种方法的时间复杂度是O(log n),空间复杂度是O(1)。
我试着用双指针法解决了那个问题,结果还真的通过了。那一刻,我突然想到,原来解决问题的方式有很多种,关键是要找到最适合的方法。
那,还有没有其他类型的题型呢?等等,我还记得,还有“动态规划”和“贪心算法”。。
这题型啊,种类可多了去了。就比如说,咱们2022年那个考试,题型可真是五花八门。有选择题,就是那种你一看就明白的,四个选项里选一个;有填空题,得把空填满;还有论述题,你得写一大堆;对了,还有案例分析,得分析案例里的对错;,还有简答题,就是简单回答一下问题;还有计算题,数学题,得算出结果;,还有实验题,得做实验记录;还有设计题,得画图或者设计方案;,还有比较题,得比较两个事物;还有应用题,得应用知识解决问题;,还有论述题,得写一大堆理论;还有综合题,就是综合多个知识点;,还有论述题,又来了;还有实验题,得做实验;,还有应用题,得应用知识;,还有案例分析,得分析案例;,还有简答题,简单回答问题;,还有论述题,还得写一大堆;,还有选择题,四个选项里选一个;,还有填空题,得填空;,题型真是多到数不过来啊。我当时也懵,看着这些题型,我后来才反应过来,题型啊,其实就那么多,关键看你怎么灵活运用。可能我偏激了点,但这就是我对题型的一些理解。

相关推荐