随笔分类 - 刷题
摘要:堆排序 堆排序(Heap Sort)是一种树形选择排序,是对直接选择排序的有效改进,利用了堆的性质对要排序的数据进行排序。 堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,如此
阅读全文
摘要:归并排序采用了分治的思想,以及递归的写法。 [图解来源:排序算法:归并排序【图解+代码】] 合并两个有序数组的示意图: [图解来源:图解排序算法(四)之归并排序] 代码实现: class Solution { public int[] sortArray(int[] nums) { int[] te
阅读全文
摘要:一、 大小固定的滑动窗口 例题: 解答: class Solution { public: int minimumDifference(vector<int>& nums, int k) { int n = nums.size(); sort(nums.begin(), nums.end()); i
阅读全文
摘要:快慢指针问题 **思路:**定义两个指针,一个快指针(fastp),一个慢指针(slowp),在单链表中,让快慢指针同时从同一位置,向后遍历,他们每次的步数都固定,比如慢指针每次向后移动1步,快指针移动2步,当快指针到达最后时,慢指针就是中间位置,主要是明白他们的每一步的差是恒定的,所以两个指针的路
阅读全文
摘要:解题思路: 申请一个数组,从1-N初始化 从第二个数开始,(2是素数),并且用循环把该数的倍数的数置为0 然后访问下一个不是1的数(一定为素数),重复上面一个步骤 在循环中把不是0的数输出 import java.util.*; //用筛法求之N内的素数。 public class Main { p
阅读全文

浙公网安备 33010602011771号