摘要: 思路 方法一,递归。将head节点和后续所有节点看做两个部分,对后续部分执行递归函数,然后将两部分组合起来。关键在于head节点的next指向的是除head以外后续所有节点反转后的最后一个节点。 方法二,迭代。使用双指针依次修改每个节点的next即可。 要点 递归法要排除head或head.next 阅读全文
posted @ 2023-01-10 20:35 fxbest 阅读(25) 评论(0) 推荐(0)
摘要: 思路 我自己想到的是用排序,然后取下标为n-k的数字,但是这样时间复杂度是O(nlogn),不符合题目要求 题解中的快速排序法很好,我也想到了快速排序,但是具体实现没有写出来 要点 快速排序的递归中会往划分后的两边走,因此复杂度是O(nlogn),而本题中只往一个方向走,因此复杂度是O(n) 一开始 阅读全文
posted @ 2023-01-10 20:02 fxbest 阅读(22) 评论(0) 推荐(0)
摘要: 适用场景:求2~N范围内的素数 优点:线性筛,复杂度为O(n)。与埃氏筛相比,不会对已经被标记过的合数再进行重复标记,故效率更高。欧拉筛将合数分解为 (最小质因数 * 一个合数) 的形式,通过最小质因数来判断当前合数是否已经被标记过。 流程:我们知道当一个数为素数的时候,它的倍数肯定不是素数。所以我 阅读全文
posted @ 2021-03-15 09:27 fxbest 阅读(192) 评论(0) 推荐(0)