问题 有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两个活动不能同时举行,如何选择这些活动,从而使得被安排的活动数量达到最多。 解析 共有10项活动,开始时间和结束时间分别为 {(1,4),(3,5),(5,7),(0,6),(3,8),(5,9),(8,11),(6, ...
                            
                            
                                分类:
其他好文   时间:
2020-05-20 14:14:50   
                                阅读次数:
55
                             
                    
                        
                            
                            
                                    快速排序 时间复杂度:O(nlogn) def partition(li, left, right): tmp = li[left] while left < right: while left < right and li[right] >= tmp: # 从右边找比tmp小的数 right -= ...
                            
                            
                                分类:
编程语言   时间:
2020-05-17 17:45:40   
                                阅读次数:
64
                             
                    
                        
                            
                            
                                首先想到的是异或,会出现一个与不为零得值 可以使用暴力查找或者快排,快排复杂度是o(nlogn) 或者是使用hash表,但是会占用多余得空间复杂度 异或: class Solution { public int singleNumber(int[] nums) { int ans=nums[0];  ...
                            
                            
                                分类:
其他好文   时间:
2020-05-17 09:14:57   
                                阅读次数:
63
                             
                    
                        
                            
                            
                                    0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时 ...
                            
                            
                                分类:
编程语言   时间:
2020-05-15 11:20:46   
                                阅读次数:
75
                             
                    
                        
                            
                            
                                    1.汉诺塔算法 实现这个算法可以简单分为三个步骤: (1) 把n-1个盘子由A 移到 B; (2) 把第n个盘子由 A移到 C; (3) 把n-1个盘子由B 移到 C;从这里入手,在加上上面数学问题解法的分析,我们不难发现,移到的步数必定为奇数步: (1)中间的一步是把最大的一个盘子由A移到C上去; ...
                            
                            
                                分类:
编程语言   时间:
2020-05-14 22:37:40   
                                阅读次数:
100
                             
                    
                        
                            
                            
                                    kruskal重构树 $\mathcal{O(nlogn)}$ 学习资料: "hwzzyr的博客" 定义?: 在kruskal算法的过程中,把最小生成树的边权改为点权而构建的二叉树。 抛开kruskal算法来讲,对原图(注意,不止对树,图也可以)的边集进行排序,然后将边当成节点建树。 性质: 是一个 ...
                            
                            
                                分类:
其他好文   时间:
2020-05-13 20:15:19   
                                阅读次数:
46
                             
                    
                        
                            
                            
                                题目:传送门 题意 输入 n (1 <= n <= 1000000000),问 n! 十进制形式末尾有多少个0; 思路 一般的思路就是,枚举 1 ~ n 中有多少个质因子 5 和 2,这样子做的复杂度是 o(nlogn)的,显然不行。 其实,我们只需要知道 1 ~ n 中,总共有多少个质因子 5 就 ...
                            
                            
                                分类:
其他好文   时间:
2020-05-13 11:43:53   
                                阅读次数:
67
                             
                    
                        
                            
                            
                                    Codeforces Round 395 div1 "contest链接" tags 、`费马小定理 树hash 换根 线段树 并查集` 码量细节:E C D A B 难度:C E D B A A. Timofey and a tree 题意:给一棵点染色树,求一个根节点,使得除了原树以外所有的子树 ...
                            
                            
                                分类:
其他好文   时间:
2020-05-11 15:47:23   
                                阅读次数:
52
                             
                    
                        
                            
                            
                                    堆排序(升序为例) 思路: 1. 首先要建一个大顶堆 2. 交换堆顶元素与最后一个元素,堆的size 1 3. 重复第二步,直至堆中只有元素一个 \ 最好、最坏、平均时间复杂度:O(nlogn) \ 空间复杂度: O(1) \ 稳定性: 不稳定 ...
                            
                            
                                分类:
编程语言   时间:
2020-05-10 19:07:12   
                                阅读次数:
68