给定一个包含 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 示例 1: 示例 2: 说明: 你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现? 思路 因为给定的序列也是从0开始,所以可以进行排序,比较索引和索引对应的值,如果两个不等于说明就确实一个值了,还要注意一 ...
分类:
编程语言 时间:
2018-09-23 13:53:12
阅读次数:
194
十种常见排序算法可以分为两大类:1. 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。2. 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类... ...
分类:
编程语言 时间:
2018-09-21 15:17:34
阅读次数:
193
问题描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 示例 2: 方法1:1 ^ 1 = 0 ,1 ^ 0 = 1 方法2:字典法 方法3:排序后比较大 ...
分类:
其他好文 时间:
2018-09-12 21:17:41
阅读次数:
172
算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此 ...
分类:
编程语言 时间:
2018-09-05 21:55:43
阅读次数:
215
目的:掌握 排序算法的分类及不同算法复杂度的对比、搞清楚 XXX与数组初始状态无关分为几种情况: a、算法复杂度与初始状态无关; b、元素总比较次数与初始状态无关; c、元素总移动次数与初始状态无关。 1、算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次 ...
分类:
编程语言 时间:
2018-09-02 13:58:29
阅读次数:
162
题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 示例 2: 思路 计算二进制下,各个位上1的个数。 因为只有一个数出现1次,其他都出现3次,所以各个位 ...
分类:
其他好文 时间:
2018-08-31 22:20:09
阅读次数:
288
常见经典排序算法常见经典排序非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。时间复杂度... ...
分类:
编程语言 时间:
2018-08-25 14:13:49
阅读次数:
118
给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,4,2,3,5,7,0,1] 输出: 8 说明: 你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来 ...
分类:
其他好文 时间:
2018-08-25 00:40:59
阅读次数:
192
题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 示例 2: 解题思路 由于相同的两个数异或运算结果一定为0,所以讲数组中的数依次异或,最后所有出现两 ...
分类:
其他好文 时间:
2018-08-20 13:15:23
阅读次数:
133
给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例 1: 示例 2: 进阶: 给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗? 要求算法的空间 ...
分类:
其他好文 时间:
2018-08-19 21:55:16
阅读次数:
132