闲话 当我觉得我学习算法刚刚从萌新到入门的时候,一类给定一个区间然后给定一系列操作的题彻底的打击了我,那时我才醒悟,编程路上,我一直是萌新。 前言 啥是线段树? 线段树是一个具有树特性的数据结构,它是一颗二叉搜索树。如下图为区间[1,10]所建立的线段树 将每一个区间序列二分成小区间,线段树就存储小 ...
分类:
其他好文 时间:
2019-10-24 13:41:58
阅读次数:
102
传送门:https://www.luogu.org/problem/P1776 很久就想用二进制拆分做一下了,这道题本来是用单调队列优化可惜蒟蒻我不会。 于是我就用二进制拆分牺牲空间复杂度换来了时间复杂度。 任何一个数都可以拆成二进制(其实不鬼畜) e.g. 15=1+2+4+8 7=1+2+4 而 ...
分类:
其他好文 时间:
2019-10-23 11:59:31
阅读次数:
74
LintCode 81. Data Stream Median (Hard)思路: 用一个大根堆保存较小的一半数, 一个小根堆保存较大的一半数. 每次根据num和两个堆顶的数据决定往哪个堆里面放. 放完后进行平衡确保两个堆的size差不超过1. 利用两个堆的size和堆顶值计算median.大根堆可... ...
分类:
其他好文 时间:
2019-10-22 10:30:20
阅读次数:
68
1. 实践题目 —— 最大子段和 2. 问题描述 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。要求算法的时间复杂度为O(n)。 3. 算法描述 定义一个函数,返 ...
分类:
编程语言 时间:
2019-10-21 22:14:16
阅读次数:
93
1、实践题目 7-1数字三角形 2、问题描述 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 3、算法描述 定义一个二位数组a[ ][ ]用来存放三角形各行各列的数字,再定义一个数组 ...
分类:
编程语言 时间:
2019-10-21 09:44:00
阅读次数:
82
前言 T3想到正解然而并没有时间打。 T1送分几乎都A了,T2概率我啥也不会。 我会的别人都会+别人会的我不会=考挂。 T1 李煜东上有用kmp求最小循环节的例题,当初看了很久,所以…… 当然是选择Hash啦! 时间复杂度不超过$\Theta(NlogN)$。空间复杂度$\Theta(N)$。 #i ...
分类:
其他好文 时间:
2019-10-21 09:24:50
阅读次数:
63
一、实践题目 设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B所用的最少字符操作数称为字符串A到 B的编辑距离,记为d(A,B)。 对于给定的字符串A和字符 ...
分类:
编程语言 时间:
2019-10-20 18:27:11
阅读次数:
94
斐波那契数列问题是程序员学习和笔试中都会面对的问题,绝大多数的童鞋(包括笔者)都会采用递归的方式实现。这种方式简洁而且优雅,但其实写出的代码是垃圾代码,当n稍微大一点的时候,执行效率是非常低下的。本文对斐波那契数列问题常见的算法进行了分析和整理,避免以后在面试和工作中被鄙视到死! ...
分类:
其他好文 时间:
2019-10-20 13:12:59
阅读次数:
89
主要是hashmap。还有边插入边查找,提高效率和降低空间复杂度。 之前一直用map,结果发现还有hashmap,效率更高。 注意名称空间为 问题在于hash_map目前并没有纳入C++ 标准模板库中,在跨平台使用时就可能会出现问题, 但几乎每个版本的STL都提供了相应的实现。 头文件<hash_m ...
分类:
其他好文 时间:
2019-10-20 01:14:42
阅读次数:
115
本文索引目录: 一、PTA实验报告题1 : 数字三角形 1.1 实践题目 1.2 问题描述 1.3 算法描述 1.4 算法时间及空间复杂度分析 二、PTA实验报告题2 : 最大子段和 2.1 实践题目 2.2 问题描述 2.3 算法描述 2.4 算法时间及空间复杂度分析 三、PTA实验报告题3 : ...
分类:
编程语言 时间:
2019-10-19 09:43:57
阅读次数:
141