1.素数判断。 直接暴力判断,复杂度是根号级别。 2.筛选法。 普通筛法,对每个数,将其倍数全部标记。 复杂度是O(n/1+n/2+...+n/n),调和级数,O(nlogn)级别。 高级一点的筛法,我们发现,一个合数的倍数会被自己的因子提前标记,所以只需要对素数的倍数进行标记。 复杂度...我忘了 ...
分类:
其他好文 时间:
2020-10-10 16:55:29
阅读次数:
17
Flood Fill 可以在线性时间复杂度内找到某个点所在的连通块 1097.池塘计数 链接:https://www.acwing.com/problem/content/1099/ #include <iostream> #include <algorithm> #include <cstring ...
分类:
编程语言 时间:
2020-09-24 00:00:51
阅读次数:
38
题目描述 题解 知道是分块之后就不难了 把n分块,对于整块建AC自动机暴力跑,散块把全部串建AC自动机之后可以线段树查子树(因为往上查要考虑那些能查那些不能所以不好搞),也可以递归子树时用 出-入 计算 空间卡一卡可以$n\sqrt n$,如果再把询问[L,R]前缀和一下之后也许可以做到线性 时间O ...
分类:
其他好文 时间:
2020-09-21 11:52:07
阅读次数:
32
十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破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
LeetCode 136 只出现一次的数字 问题描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 执行用时:1 ms, 在所有 Java 提交中击败了99.65%的 ...
分类:
其他好文 时间:
2020-09-10 22:58:58
阅读次数:
32
1.常见的时间复杂度和空间复杂度有哪些?O(1):constantcomplexity:constant常数复杂度O(logn):对数复杂度O(n):线性时间复杂度O(n^2):平方O(N^3):立方O(2^n):指数O(n!):阶乘2.时间复杂度和空间复杂度的重要性随着现在存储空间的便宜,很多情况下,我们是愿意用空间复杂度来换取时间复杂度的,因为内存,磁盘等这些和程序算法比起来,真的是太便宜的,
分类:
其他好文 时间:
2020-08-18 13:41:29
阅读次数:
80
在一个无序数组中,存在一个数,它出现的次数大于数组长度的一半。输出这个数 一、排序、遍历 二、摩尔投票法 摩尔投票算法是一种使用线性时间和常数空间查找大部分元素序列的算法。 最简单的形式就是,查找输入中重复出现超过一半以上(必须大于n/2,等于不算)的元素。如果序列中没有这种元素,算法不能检测到正确 ...
分类:
其他好文 时间:
2020-07-18 22:36:05
阅读次数:
120
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 1.暴力法:排序后, ...
分类:
其他好文 时间:
2020-07-14 00:24:02
阅读次数:
72
百万考生分数如何排序 - 计数排序 关注 「码哥字节」,这里有算法系列、大数据存储系列、Spring 系列、源码架构拆解系列、面试系列……敬请期待。设置星标不迷路 其实计数排序是桶排序的一种特殊情况。 桶排序的核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序。桶内排完序之后, ...
分类:
编程语言 时间:
2020-07-13 13:31:53
阅读次数:
73