#Big O notation **O(1):**常数复杂度 **O(long n):**对数复杂度 **O(n):**线性时间复杂度 **O(n^2):**平方 **O(n^3):**立方 **O(2^n):**指数 **O(n!):**阶乘 注意:在多个程序合在一起的时候,只看最高复杂度的运算 ...
分类:
其他好文 时间:
2020-05-31 22:03:10
阅读次数:
73
初始计数排序 摘自漫画算法: 计数排序是一种不基于元素比较,利用数组索引来确定元素的正确位置的。 假设数组中有20个随机整数,取值范围0~10,要求用最快的速度把这20个整数从小到大进行排序。 如何给这些无序的随机整数进行排序呢? 考虑到这些整数只能够在0、1、2、3、4、5、6、7、8、9、10这 ...
分类:
编程语言 时间:
2020-05-31 13:01:57
阅读次数:
77
#LeetCode 137. 只出现一次的数字 II 题目链接 我的掘金地址:https://juejin.im/post/5cb962dbf265da03761e8601 这题起初根本想不到.直到翻了leetcode.com的discuss.....然后我整个人都"awesome!!!!"地瞎叫了 ...
分类:
其他好文 时间:
2020-05-28 13:03:04
阅读次数:
54
题目: 滑动窗口最大值:给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 进阶: 你能在线性时间复杂度内解决此题吗? 示例: 输入: nums = [1,3,-1,-3 ...
分类:
移动开发 时间:
2020-05-26 18:35:29
阅读次数:
157
0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时 ...
分类:
编程语言 时间:
2020-05-15 11:20:46
阅读次数:
75
一、题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 二、思路及 ...
分类:
其他好文 时间:
2020-05-14 13:04:50
阅读次数:
48
描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 思路 方法1 set 遍历数组,使用set保存值,如果set中已有该 ...
分类:
其他好文 时间:
2020-05-14 01:04:26
阅读次数:
44
package com.example.demo; /** * 136. 只出现一次的数字 * 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 * <p> * 说明: * <p> * 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现 ...
分类:
其他好文 时间:
2020-05-13 10:20:41
阅读次数:
50
为了防止二叉搜索树中性能大大降低的最坏情况出现,我们可以采用一些方法,如:随机化、分期化和最优化来使其达到平衡。 下面函数使用分区函数在线性时间内使一棵二叉搜索树达到完美平衡状态。我们先划分以便把中值节点放入树根,然后(递归地)对子树执行同样的操作。 1 void balanceR(link& h) ...
分类:
其他好文 时间:
2020-05-13 09:32:37
阅读次数:
45
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1]输出: 1 示例 2: 输入: [4,1,2,1,2]输出: 4 思路:运用sort快速 ...
分类:
其他好文 时间:
2020-05-10 10:34:08
阅读次数:
45