数据结构与算法
文章平均质量分 53
数据结构与算法
iii_ooo
这个作者很懒,什么都没留下…
展开
-
二分查找的两种方式
文章目录前言一、基于递归思想二、循环查找前言给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-search著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。一、基于递归思想class Solution { public int[.原创 2022-01-22 14:34:07 · 183 阅读 · 0 评论 -
基于堆排序的选择方法
文章目录前言一、堆排序实现二、PriorityQueue前言求数组中第K个最大元素,源自Letcode一、堆排序实现class Solution { public int findKthLargest(int[] nums, int k) { int heapSize = nums.length; buildMaxHeap(nums, heapSize); for (int i = nums.length - 1; i >= nums原创 2022-01-19 15:38:28 · 224 阅读 · 0 评论 -
Manacher Algorithm马拉车算法详解
Manacher Algorithm马拉车算法详解链接:https://www.zhihu.com/question/37289584/answer/465656849中心扩展算法我们先来看一个简单的算法,来解决这个问题。我们知道回文串一定是对称的,所以我们可以每次循环选择一个中心,进行左右扩展,判断左右字符是否相等即可。由于存在奇数的字符串和偶数的字符串,所以我们需要从一个字符开始扩展,或者从两个字符之间开始扩展,所以总共有 n + n - 1 个中心。代码就很好写了,遍历每个中心,然后判断对转载 2021-11-09 11:36:11 · 162 阅读 · 0 评论