![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法数据结构
hahavslinb
这个作者很懒,什么都没留下…
展开
-
每天三道冲刺工作
转自点击打开链接题目:1.把二元查找树转变成排序的双向链表,要求输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。题目来自:http://topic.csdn.net/u/20101023/20/5652ccd7-d510-4c10-9671-307a56006e6d.html 思路:一看到这样的问题首先想到转载 2015-04-29 22:04:21 · 241 阅读 · 0 评论 -
Java中String、StringBuffer和StringBuilder的区别和堆栈内存分配
Java中String、StringBuffer和StringBuilder的区别和堆栈内存分配Java中的String类是一个很常用,但最不注意其细节的类,因此大多数面试会那这个类做文章。比如String str = new String("hello");开辟了几个内存空间,String和StringBuffer的区别等等。下面就做一个我的理解:String是一个被fi转载 2015-06-29 15:10:43 · 483 阅读 · 0 评论 -
从头到尾彻底理解KMP
转自 从头到尾彻底理解KMP问题导读1.什么是暴力匹配算法?2.KMP包含哪些流程 步骤?1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得非常混乱,如此,留言也是“骂声”一片。所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟没有修改本文。转载 2015-06-29 16:54:45 · 319 阅读 · 0 评论 -
麻省--算法导论
转自麻省理工公开课《算法导论》学习笔记:第一讲主题:简介课程,渐近概念的大局观,插入排序和归并排序,递归式函数时间分析(递归树方法)教材:《算法导论》收获:很感动地看到算法分析那个log(n)是为什么出现了,更深层还要听第二讲,若不是因为要准备SAS,恨不得马上看。内容:1 何为算法分析? 计算机程序运行性能和存储空间的理论分析,叫算法分析。也就是关注2点:1 性...转载 2015-06-01 20:37:12 · 1074 阅读 · 1 评论 -
算法--最长公共子序列
转自点击打开链接1、先科普下最长公共子序列 & 最长公共子串的区别:找两个字符串的最长公共子串,这个子串要求在原字符串中是连续的。而最长公共子序列则并不要求连续。2、最长公共子串 其实这是一个序贯决策问题,可以用动态规划来求解。我们采用一个二维矩阵来记录中间的结果。这个二维矩阵怎么构造呢?直接举个例子吧:"bab"和"caba"(当然我们现在一眼就可以看出来最长公...转载 2015-04-23 14:20:55 · 467 阅读 · 0 评论 -
通过金矿模型介绍动态规划
不错的文章 点击打开链接 点击下载01背包测试数据.rar 对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方...转载 2015-04-21 20:36:54 · 466 阅读 · 0 评论 -
动态规划0—1背包问题
动态规划0-1背包问题Ø 问题描述: 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?Ø 对于一种物品,要么装入背包,要么不装。所以对于一种物品的装入状态可以取0和1.我们设物品i的装入状态为xi,xi∈ (0,1),此问题称为0-11背包问题。 ...转载 2015-04-20 20:25:45 · 221 阅读 · 0 评论 -
SVD分解
版权声明: 本文转载自LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gmail.com 前面说了这么多,本文主要关注奇异值的一些特性,另外还会稍稍提及奇异值的计算,不过本文不准备在如何计算奇异值上展开太多。另外,本文里面有部分不算太深的线性代...转载 2014-12-17 11:03:25 · 934 阅读 · 0 评论 -
机器学习 --高斯判别分析
转载自 机器学习笔记——高斯判别分析V1.0 同朴素贝叶斯一样,高斯判别分析(Gaussian discriminant analysismodel, GDA)也是一种生成学习算法,在该模型中,我们假设y给定的情况下,x服从混合正态分布。通过训练确定参数,新样本通过已建立的模型计算出隶属不同类的概率,选取概率最大为样本所属的类。一、混合正态分布(multivariate normal ...转载 2014-12-08 21:42:00 · 700 阅读 · 0 评论 -
备忘--用于机器学习每个算法较好的博客记录
统计学基础 点击打开链接机器学习(Machine Learning)&深入学习(Deep Learning)资料点击打开链接SVM点击打开链接点击打开链接点击打开链接逻辑回归点击打开链接 点击打开链接 adaboost 点击打开链接 点击打开链接局部权重线性回归 点击打开链接 CART 点击打开链接 点击打开链接 点击打开链...原创 2014-12-01 18:41:52 · 297 阅读 · 0 评论 -
逻辑回归不错的文章
记录下,明天好找些http://www.csdn.net/article/2014-02-13/2818400-2014-02-13http://www.csdn.net/tag/%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92/bloghttp://www.cnblogs.com/DjangoBlog/p/3653071.html http://blo...原创 2014-10-30 21:47:19 · 408 阅读 · 0 评论 -
每天三道冲刺工作--假设你有一个用1001个整数组成的数组
题:假设你有一个用1001个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1到1000(包括1000)之间。此外,除一个数字出现两次外,其他所有数字只出现一次。假设你只能对这个数组做一次处理,用一种算法找出重复的那个数字。如果你在运算中使用了辅助的存储方式,那么你能找到不用这种方式的算法吗?分析:方法一、若使用辅助的存储方式,该选择何种存储方式呢?可使用hash的存储方式,转载 2015-05-06 15:46:21 · 1244 阅读 · 1 评论 -
每天三道冲刺工作--用一种算法来颠倒一个链接表的顺序。现在在不用递归式的情况下做一遍。
问题:给一个单向链表,把它从头到尾反转过来。比如: a -> b -> c ->d 反过来就是 d -> c -> b -> a 。分析:假设每一个node的结构是:[java] view plaincopyclass Node { char value; Node next; } 因为在对链表进行反转的时候,需要更新每一转载 2015-05-06 10:42:11 · 867 阅读 · 0 评论 -
每天三道冲刺工作--有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关
有两间房,一间房里有三盏灯,另一间房有控制这三盏灯的开关(这两间房是分割开的,毫无联系).现在要你分别进这两间房一次,然后判断出这三盏分别是由哪个开关控制,你能想出办法吗?(注意:每间房只能进一次)由于工作时间长的灯泡的温度高,工作时间短的温度低,故可以先走进有开关的房间,将三个开关编号为A、B和C,将开关A打开10分钟,然后关闭A;再打开B,然后马上走到有灯的房间,此房间内正在亮着的等由开关转载 2015-05-04 15:40:15 · 2029 阅读 · 0 评论 -
每天三道冲刺工作--在二元树中找出和为某一值的所有路径
4.在二元树中找出和为某一值的所有路径题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22 和如下二元树10/ \5 12/\4 7则打印出两条路径:10, 12 和10, 5, 7。二元树节点的数据结构定义为:struct BinaryTreeNode转载 2015-05-04 10:38:39 · 277 阅读 · 0 评论 -
每天三道冲刺工作--输入n个整数,输出其中最小的k个。
转自点击打开链接题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。分析:这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前面的k个数就是最小的k个数。只是这种思路的时间复杂度为O(nlogn)。我们试着寻找更快的解决思路。 我们可以先创建一个大小为k的数据容器来存储最小的k个数字。接下来我们每转载 2015-05-04 11:24:31 · 472 阅读 · 0 评论 -
每天三道冲刺工作--根据上排给出十个数,在其下排填出对应的十个数
传说是一道腾讯的面试题题目如下: 根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数。 上排的十个数如下: 【0,1,2,3,4,5,6,7,8,9】没错,题目就是只有这么一点。思考过程:第一排的数字: 0 1 2 3 4 5 6 7 8 9 如果转载 2015-05-04 15:03:18 · 232 阅读 · 0 评论 -
每天三道冲刺工作--判断俩个链表是否相交。
转载自点击打开链接题目:给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。问题扩展:1.如果链表可能有环列?2.如果需要求出俩个链表相交的第一个节点列?解决方法:设第一个链表的起始指针为a(结点数为n),第二个链表的起始指针为b(结点为m)一、对于简化了的问题:转载 2015-05-04 15:34:01 · 252 阅读 · 0 评论 -
每天三道冲刺工作--颠倒一个句子中的词的顺序,比如将“我叫克丽丝”转换为“克丽丝叫我”,
转自 点击打开链接题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标 点符号和普通字母一样处理。例如,输入"I am a student.",则输出"student. a am I"。使用指针。主要也是为了能够当使用指针所指向的内容来改变字符串的值。在写代码的过程中依然有一些基础知识的问题困扰过我,主要是程序中不同作用范转载 2015-05-06 14:42:53 · 875 阅读 · 0 评论 -
每天三道冲刺工作--如何用递归算法判断一个数组是否是递增
http://www.cnblogs.com/cysolo/p/3584059.html?utm_source=tuicool思路分析:递归嘛之前数组求和已经见识到了,就是自己调用自己嘛。但是,这里一定要注意一点,凡是要求用“递归算法”的,你在递归之前一定要先分类讨论,判断一下当前条件是否允许递归,比如一个数组长度就是1,你用递归去判断它里面的某两个元素的大小,这就要出Bug了转载 2015-05-06 15:07:35 · 371 阅读 · 0 评论 -
每天三道冲刺工作--编写反转字符串的程序,要求优化速度、优化空间。
编写反转字符串的程序,要求优化速度、优化空间。思路 :例如 str ="abcd" 长度是4 ,只需要进行a 与d b 与 c交换 声明两个指针,不开辟新的空间,指针p ,sp = str ; //指向头s= str+len-1;//指向尾节点这样 p和 s交换然后p++ ;s--这样p 和s交换这样就可以实现字符串翻转,且空间最小,时间复杂度为只转载 2015-05-06 11:25:19 · 618 阅读 · 1 评论 -
每天三道冲刺工作--在排序好的数组中查找和为给定值的两个数字
转自点击打开链接题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,是的题目的和正好是输入的那个数字。要求时间复杂度为O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组[1,2,4,7,11,15]和数字15,由于4+11=15,因此输出4和11。 分析:这道题目想了一下就得出了结果,最主要的限制还是在时间复杂度为O(n)转载 2015-05-06 14:51:23 · 378 阅读 · 0 评论 -
每天三道冲刺工作--比较两个字符串,用 O(n)时间和恒量空间。
比较两个字符串,用 O(n)时间和恒量空间。int strcmp(char * p1, char * p2) {while (*p1 != ‘\0’ && *p2 != ‘ \0’ && *p1 == *p2) {p1++, p2++;}if (*p1 == ‘ \0’ && *p2 == ‘ \0’ ) return 0;if (*p1 == ‘ \0’ ) return -1转载 2015-05-06 15:19:22 · 343 阅读 · 0 评论 -
海量数据处理之BitMap(转)
现在 有10亿个int型的数字(JAVA中 int 型占4B),以及一台可用内存为1GB的机器,如何找出这10亿个数字的中位数? 中位数定义:数字排序之后,位于中间的那个数。比如将10亿个数字进行排序(位置从1到10亿),排序之后,位于第5亿个位置的那个数 就是中位数。关于中位数,可参考:快速排序中的分割算法的解析与应用 一种方法是定义一个长度为10亿的整型数组,采用排序算法排...转载 2018-11-06 14:38:48 · 218 阅读 · 0 评论