HDU 6231 K-th Number 题目大意: 给一个序列A,将其所有的大于等于K长度的子区间中,第K大的数取出来,放到B数组中。求B数组中第M大的数。 思路: 将所有的区间都取出来显然不行,时间复杂度爆炸。维护起来更奇怪。 可以考虑二分答案——先二分出这个B数组中第M大的数x,然后判断行不行 ...
分类:
其他好文 时间:
2020-09-18 01:16:59
阅读次数:
36
问题描述 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 来源:力扣(LeetCode)链接:https://leetco ...
分类:
其他好文 时间:
2020-09-18 01:00:20
阅读次数:
25
设散列表有m个存储单元, 散列表函数H(key) = key % p, 则p最好选择 小于等于m的最大素数 具有3个节点的二叉树有 5种 以下排序算法是不稳定排序算法 希尔排序 快速排序 选择排序 堆排序 以下代码的时间复杂度 int foo(int n){ if(n <= 1) return 1; ...
分类:
Web程序 时间:
2020-09-17 23:24:09
阅读次数:
42
问题描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], tar ...
分类:
编程语言 时间:
2020-09-17 21:50:55
阅读次数:
30
有时,我们要维护一个数据结构,支持区间对x取min。 如果只有区间max/min查询,则可以把区间的所有节点的值对x取min。 标记可以合并,这样子时间复杂度是nlogn的。 但是如果有了区间和查询,则不能这么做。 虽然标记可以合并,但是无法更新区间最大值。 考虑维护区间严格次大值m2和区间严格次大 ...
分类:
其他好文 时间:
2020-09-17 19:22:52
阅读次数:
27
十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 摘自https ...
分类:
编程语言 时间:
2020-09-17 19:03:08
阅读次数:
91
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。 你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 进阶: 你能在线性时间复杂度内解决此题吗? 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], ...
分类:
其他好文 时间:
2020-09-17 19:01:09
阅读次数:
21
前言 这是一个判断大整数是否是质数的算法 讲解 我们如何判断一个数$n$是否是质数?首先我们肯定想到的是暴力找因数,时间复杂度为$O(\sqrt n)$ 但是当$n$达到$10^{18}$级别时,这个看似优秀的时间复杂度也行不通了 这时候我们就需要Miller Rabbin算法! 首先我们根据费马小 ...
分类:
编程语言 时间:
2020-09-17 17:52:32
阅读次数:
32
题目描述 设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能 set(key, value):将记录(key, value)插入该结构 get(key):返回key对应的value值 [要求] set和get方法的时间复杂度为O(1) 某个key的set或get操作一旦发生, ...
分类:
其他好文 时间:
2020-09-17 12:29:48
阅读次数:
31
动态规划:时间复杂度是O(N^2) Manacher算法,时间复杂度是O(N) 这篇文章主要是想讲怎么样能正确的填二维动态规划的二维表 动态规划比较简单: 用一个二维数组,dp[ i ][ j ] 表示 下标 i ~ j 字符串是否是回文的,false or true 边界条件是 i - j = 0 ...
分类:
其他好文 时间:
2020-09-15 21:10:06
阅读次数:
24