题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1]输出: 1示例 2: 输入: [4,1,2,1,2]输出: 4 来源:力扣(Lee ...
分类:
其他好文 时间:
2019-11-01 09:45:27
阅读次数:
67
题目: 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。 示例 : 输入: [1,2,1,3,2,5]输出: [3,5]注意: 结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。你的算法应该具有线性时间复杂度。你能否 ...
分类:
其他好文 时间:
2019-10-31 23:40:50
阅读次数:
129
算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较 ...
分类:
编程语言 时间:
2019-10-29 09:16:07
阅读次数:
86
在line19对rand()%(r-p)改成rand()%(r-p+1)陷入了死循环,目前难以理解 ...
分类:
其他好文 时间:
2019-10-26 21:09:55
阅读次数:
111
Tarjan算法总结 关于学习 《算法竞赛进阶指南》 前言 Tarjan算法能在线性时间内求出无向图的 割点 和 桥 ,进一步可求出无向图的 双连通分量 。并且能在有向图中求出有向图的 强连通分量 、 必经点和必经边 。 只打算给自己复习用,233. Tarjan算法 几个定义: 时间戳:其实就是d ...
分类:
编程语言 时间:
2019-10-24 20:01:25
阅读次数:
87
问题: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1]输出: 1示例 2: 输入: [4,1,2,1,2]输出: 4 来源:力扣(Le ...
分类:
其他好文 时间:
2019-10-16 13:17:44
阅读次数:
53
stl_vector.h : vector:可随机访问元素的序列容器,从后插入或删除在常量时间内完成,从首部或中间则需线性时间内完成; _Vector_alloc_base:vector分配基类模板;模板参数分别为数据类型T,分配器类型_Allocator,以及一个bool标识_IsStatic(用... ...
分类:
其他好文 时间:
2019-10-10 12:48:58
阅读次数:
107
stl_list.h : list:一个可从任意位置快速插入和删除元素的双向链表,可在常数时间内完成,但是取数据、查找等则需要线性时间; _List_node_base:链表节点基类struct,仅包含_M_next、_M_prev成员,其分别为指向当前节点基类类型的下一个、上一个节点的指针; _L... ...
分类:
其他好文 时间:
2019-10-10 12:47:46
阅读次数:
68
stl_deque.h : deque:一种具有双端插入和删除,可随机访问元素的容器,从首部或后插入或删除在常量时间内完成,从中间则需线性时间内完成; __deque_buf_size:获取队列节点缓冲区大小(工具函数),当数据元素类型字节size小于512时则为512/size,否则为1,(意味着... ...
分类:
其他好文 时间:
2019-10-10 12:45:05
阅读次数:
74
冒泡排序深入理解 对于冒泡排序有一个小性质: 每一次都会把序列未排好序的最大数"沉底", 即推到序列尾部 1. "P4378 Out of Sorts S" 留意着农场之外的长期职业生涯的可能性,奶牛Bessie开始在不同的在线编程网站上学习算法。 她到目前为止最喜欢的算法是“冒泡排序”。这是Bes ...
分类:
编程语言 时间:
2019-10-06 00:02:52
阅读次数:
100