03 2020 档案

摘要:动态规划=分治(不是等分,是多阶段)+避免重复计算 是一个多阶段决策问题 核心是状态和状态转移方程 数字三角问题(单向无环最长/最短路径问题): 现有一张地图,各结点代表城市,两结点间连线代表道路,线上数字表示城市间的距离。如图所示,试找出从结点A到结点E的最短距离 递推公式(状态转移方程): 递归 阅读全文
posted @ 2020-03-30 21:43 小帆敲代码 阅读(376) 评论(0) 推荐(0)
摘要:其实滑动窗口类似队列一样,对一些数组区间挺好用的 滑动窗口 输入一个长度为n的序列,寻找尽量长的子序列,使得该子序列中没有相同的元素 思路:每次进来一个a[R],窗口拉伸用map记录出现的元素的下标,如果a[R]的已经出现过并且上次出现的下标值位于[L,R]区间,判断当前子序列[L,R-1]的长度是 阅读全文
posted @ 2020-03-30 00:52 小帆敲代码 阅读(158) 评论(0) 推荐(0)
摘要:贪心是一种解决问题的策略。 贪心算法就是按照贪心策略一步一步去求,当贪心选择最优时,具有贪心选择性质(最开始的贪心选择被包含在最优解中)和最优子结构性质。 与DP的区别:贪心是自顶向下的(递归),贪心可以看作DP中的某一个选择策略,DP是全局的。 背包相关问题 最优装载问题:给出n个物体,第i个物体 阅读全文
posted @ 2020-03-25 22:29 小帆敲代码 阅读(206) 评论(0) 推荐(0)
摘要:斐波那契数列 兔子问题:“假定一对大兔子每月能生一对小兔子,且每对新生的小兔子经过一个月可以长成一对大兔子,具备繁殖能力,如果不发生死亡,且每次均生下一雌一雄,问一年后共有多少对兔子?” 分析:第一个月兔子没有繁殖能力,所以还是一对;两个月后生下一对兔子,共有两对;三个月后,老兔子生下一对,小兔子还 阅读全文
posted @ 2020-03-25 11:45 小帆敲代码 阅读(275) 评论(0) 推荐(0)
摘要:很多问题都可以归结为图的遍历,但这些问题中的图却不是事先给定、从程序中读入的,而是由程序动态生成的,称为隐式图。 回溯法一般是要找一个(或者所有)满足约束的解(或者某种意义下的最优解)。 路径搜索问题可以归结为隐式图的遍历,它的任务是找到一条从初始状态到终止状态的(最优)路径。 BFS是图的广度遍历 阅读全文
posted @ 2020-03-25 00:06 小帆敲代码 阅读(598) 评论(0) 推荐(0)
摘要:练习题一:最大连续和问题:长度为n的序列,求最大连续和。 1 /** 2 * 最大连续和问题:长度为n的序列,求最大连续和。 3 * 枚举解法 4 * 时间复杂度O(n^3) 5 * @param a 6 */ 7 public static int test1(int[] a) { 8 int m 阅读全文
posted @ 2020-03-24 23:58 小帆敲代码 阅读(295) 评论(0) 推荐(0)
摘要:分而治之,各个击破 将大问题变成分成和原问题类似的小问题再分别解决每个小问题,递归地使用分而治之策略来解决 分治法的三个步骤: 划分问题:把问题的实例划分成子问题 递归求解:递归解决子问题 合并问题:合并子问题的解得到原问题的解 划分问题不一定要划分成相同的问题,可以是与原问题相似的子问题 分治法与 阅读全文
posted @ 2020-03-24 23:56 小帆敲代码 阅读(196) 评论(0) 推荐(0)
摘要:刚开始看书有些问题没有看懂,查阅了很多博客,发现说的很有道理但是又出现新的问题,这里谈谈我的理解: 一、目的和思想 有一些数据x和类别y,我们的目的是用这些数据做分类器,通过sigmoid函数(一种单位跃阶函数)实现分类: ƒ(z)=1/(1+e-z) 可以看到sigmoid函数值域(0,1),在0 阅读全文
posted @ 2020-03-23 17:26 小帆敲代码 阅读(177) 评论(0) 推荐(0)
摘要:1.递归 一个直接或间接调用自身的算法称为递归算法 一个使用自身给出定义的函数称为递归函数 2.应用 如果问题的数据结构是递归的(如链表),问题的定义是递归的(如fibonacci数列),问题的解法是递归的(整数划分问题),可以考虑使用递归算法 经典问题:汉诺塔问题:设有3根标号为A,B,C的柱子, 阅读全文
posted @ 2020-03-18 15:30 小帆敲代码 阅读(475) 评论(0) 推荐(0)
摘要:这是一个基于概率的分类器,朴素是指具有简单的假设:一是哪个分类的概率大,就是哪一类,二是独立性假设详情见下。 贝叶斯公式:p(c|x)=p(x|c)p(c)/p(x);在学习概率论的时候,这个公式是具有逻辑的公式。 比如,我们对一句评论分为两类,一类是褒义,一类是贬义。 一、文本处理,将句子分词,大 阅读全文
posted @ 2020-03-17 17:10 小帆敲代码 阅读(341) 评论(0) 推荐(0)
摘要:调用栈(Call Stack)描述的时函数之间的调用关系。它由多个栈帧(Stack Frame)组成,每个栈帧对应着一个未运行完的函数。栈帧中保存了该函数的返回地址和局部变量,因而不能再执行完毕后找到正确的返回地址,还很自地保证了不同函数间的局部变量互不相干——不同的函数对应着不同的栈帧。 在可执行 阅读全文
posted @ 2020-03-16 21:43 小帆敲代码 阅读(2471) 评论(0) 推荐(0)
摘要:递归函数不再调用他自己而是返回上一层调用,这种现象称为回溯。 当把问题分成若干个步骤并进行递归求解时,如果当前步骤没有合法选择,则函数将返回上一级调用。正是这个原因,递归枚举算法也经常被称为回溯法。 之前介绍了递归构造和简单枚举,简单枚举思路简单程序也简单,缺点是无法减小枚举量--必须生成(gene 阅读全文
posted @ 2020-03-16 21:29 小帆敲代码 阅读(225) 评论(0) 推荐(0)
摘要:枚举排列:(递归枚举) A.输入整数n,按字典序从小到大的顺序输出前n个数的所有排序 1 //递归,n是n个数,a是数组,cur是当前 2 public static void print_permutation(int n,int[]a,int cur) { 3 if(n==cur) { 4 fo 阅读全文
posted @ 2020-03-16 19:44 小帆敲代码 阅读(251) 评论(0) 推荐(0)
摘要:add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常 remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常 element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementExce 阅读全文
posted @ 2020-03-15 20:59 小帆敲代码 阅读(161) 评论(0) 推荐(0)
摘要:RMQ问题:对于长度为N的序列,询问区间[L,R]中的最值 RMQ(Range Minimum/Maximum Query),即区间最值查询。 常见解法: 1.朴素搜索 2.线段树 3.DP 4.神奇的笛卡尔树(https://www.cnblogs.com/jklongint/p/4777448. 阅读全文
posted @ 2020-03-15 20:47 小帆敲代码 阅读(329) 评论(0) 推荐(0)
摘要:A.1Mb=1024Kb B.多少个9 问题描述 在1至2019中,有多少个数的数位中包括数字9? 注意,有的数中的数位中包含多个9,这个数只算一次。例如,1999这个数包含三个数位9,但在计算时只算做一个数。 在考试中,不知道1至2019的至中包不包括2019这个数,从结果上看应该是包括的:[1, 阅读全文
posted @ 2020-03-15 17:43 小帆敲代码 阅读(941) 评论(0) 推荐(0)
摘要:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 阅读全文
posted @ 2020-03-13 23:03 小帆敲代码 阅读(208) 评论(0) 推荐(0)
摘要:输入没有标签的新数据后,将新数据的每个特征与样本数据集的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似的数据(最近邻)的分类标签,一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处 一、加载数据 二、归一化特征值 三、计算欧式距离 from n 阅读全文
posted @ 2020-03-13 22:18 小帆敲代码 阅读(237) 评论(0) 推荐(0)
摘要:决策树的一个重要任务,就是为了理解数据中蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,这些机器根据数据集创建规则的过程,就是机器学习的过程。 一、确定划分数据集的决定性特征 信息增益:划分数据集前后信息发生的变化 信息:l(xi)=-log2p(xi),p(xi)是选择 阅读全文
posted @ 2020-03-13 20:19 小帆敲代码 阅读(201) 评论(0) 推荐(0)
摘要:解决annacode与python冲突: 一、File->Setting-> 点击Add-> 然后就完美解决 二、记得重启,检查创建的项目是右键python package->python file而不是文件夹->python file 阅读全文
posted @ 2020-03-13 20:15 小帆敲代码 阅读(1026) 评论(0) 推荐(0)
摘要:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 阅读全文
posted @ 2020-03-11 22:23 小帆敲代码 阅读(166) 评论(0) 推荐(0)
摘要:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums 阅读全文
posted @ 2020-03-11 14:24 小帆敲代码 阅读(93) 评论(0) 推荐(0)