408数据结构算法题专项-链表总结归纳 2009 倒数第k结点2012 找共同后缀起始2015 删除绝对值相同点2019 重新排列结点①增 增加即利用头插法或尾插法进行结点添加②删 删除即对链表中结点进行删除③改 改常见的是对结点指针的改变④查 查即遍历链表⑤空间换时间 常常可根据题目提示反推开空间的思路,例如数组映射⑥双指针 即关注下标之间的关系
408算法题专项-2019年 思考:再开一个空间倒着存链表的数据。开一个空间存储最终结果。对两条数据链依次遍历。上面选一个,下面选一个。惊奇的发现可以用两个指针代替开空间。开空间实际是对于下标的方便映射。两个指针是一样的效果。思考:定义两个指针p,q。问题在于这两个指针该指向哪?如果是一个链表首,一个链表尾,链表尾的不能倒退。如果链表尾能倒退就好了。好思路!我们可以在遍历中将中间的后半段的next指针倒置,那么下次遍历的时候就可以倒退遍历了。q所指结点依次插入到p所指结点的后面。其中重点是怎么找到中间结点然后把后半段倒置,需要把两个指针
408算法题专项-2012年 思考:双重遍历找到共同后缀的起始位置。按照这种思路输入的数据必需保证共同后缀的地址是相同的。自己处理有点麻烦,所以没写完整的可运行代码。至于NULL的情况应该是没有的,题目应该是保证一定存在后缀。加NULL是为了严谨一些。
408数据结构算法题专项-线性表总结归纳 历年线性表题目详解:2010年:移动元素2011年:找中位数2013年:找主元素2016年:划分子集2018年:最小正整数2020年:三元组最小距离分析:难度从简单暴力出思路逐渐上升到不能直接暴力,需要发现题干重要信息才能找到思路。常见思考的方向:①若干重循环判断即可②空间换时间③双指针优化④进行排序处理⑤提取重要隐含性质(该点是最重要也是最难的,需要多积累才能做到总结:对于难度梯度大的题目,(难度梯度即该题的不同思路的思考难度将考生划
408数据结构算法题专项-2016 或看王道的真题讲解(个人感觉这次的讲解的不是很形象,可能是上来就是最优解的原因,必须熟悉和理解快排原理的基础上才能改动模板)。思考:想进一步在排序的思路上降低时间复杂度,就得实现真正O(nlogn)的算法即归并排序。思考:再再一次提升效率只能针对排序的内部实现优化,具体想了解参考。具体模板请自行搜索,推荐Acwing y总写的归并模板。
408专项数据结构2013 思考:对序列进行排序后,判断一段连续序列的长度是否超过n/2;用快排注意平均时间复杂度是O(nlogn),归并才是真正的最坏O(nlogn)。但我不确定实际书写的时候能否用sort函数代替加快速率,如果不能,我大概率不会选择去手写一个快排。思考:个人理解就是军团打架,一v一剩下来的肯定是最多军团的人。正式一点说应该是摩尔投票法。没必要纠结名字,思想很简单。思考:暴力双循环,但时间复杂度有点低,拿分可以拿9分。
408数据结构专项2011 个人觉得这种思路在考场上思考起来比较慢,没有接触过类似的思想并不会很快想出来。并且最优解与该题暴力解难度与分值性价比的原因,并没有深入学习。思考:将两条序列整合为一条序列,然后对整合后的序列判断中位数。
磨刀不误砍柴工,掌握DEVC++的一些实用技巧 写题目用的编译软件一直是devc++,本来也尝试过其他的比如vscode,vs2019。但最后发现目前阶段devc++已经完全够用了,而且参加大部分比赛用的编译器也是dev,所以为了提高编程的速度和效率,对dev这个软件又进行了深一步的探究