数据结构与算法分析
逐梦_person
为在读本科生
展开
-
最大子序列和及其算法复杂度分析
问题描述给定k个整数的序列{N1,N2,…,Nk },其任意连续子序列可表示为{ Ni, Ni+1, …, Nj },其中 1 <= i <= j <= k。最大连续子序列是所有连续子序中元素和最大的一个,例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{11,-4,13},最大连续子序列和即为20。注:为方便起见,如果所有整数均为负数,则最大子序列和为0。算法讲原创 2017-03-30 16:50:30 · 1131 阅读 · 0 评论 -
欧几里得算法原理
欧几里得算法原理欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 gcd(a,b)=gcd(b,a mod b);欧几里得算法证明过程a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 因此d是(b,a mod b)的公约数欧几里得算法核心代码public static long原创 2017-04-01 10:25:38 · 10791 阅读 · 1 评论 -
剑指offer算法 java实现 二维数组中的查找
问题描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解决思路例如下面的二维数组就是每行、每列都是递增排序。如果在这个数组中查找数字7,则返回true,如果查找数组5,由于数组中不含有该数字,则返回false。1 2 8 92 4 9 124 7 10 136原创 2017-06-30 16:38:41 · 237 阅读 · 0 评论 -
剑指offer第二题替换空格
问题描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路public String replaceSpace(StringBuffer str) ,我们看到默认给的是StringBuffer类型,因此首先将其转化为String类型,因为要判断空格的位置,因此需要将其转化为char[]类型原创 2017-06-30 17:05:05 · 287 阅读 · 0 评论 -
剑指offer-输入一个链表,从尾到头打印链表每个节点的值
引言本博客是为了准备面试做的剑指offer系列题目,近期还在不断更新中,主要分享了一些思路。问题描述输入一个链表,从尾到头打印链表每个节点的值做题思路首先将获得的链表赋值给一个临时的链表将这个链表存储在一个ArrayList中,接着讲这个数组链表进行反转代码描述/*** public class ListNode {* int val;* ListNo原创 2017-07-19 20:29:25 · 217 阅读 · 0 评论