
数据结构和算法
logevey
这个作者很懒,什么都没留下…
展开
-
字符串的后缀数组
今天看到一个编程题,题目是:给定一个字符串,求出其最长的重复子串。例如输入”abczzacbca”,那么应该输出”bc”;输入”canffcancd”,输出”can”。 首先想到的是,对于字符串中的每个字符遍历,对于每个字符找到最大的重复出现的子串。然后取最大的那个。然而看到下面提示说可以使用后缀数组,原创 2016-06-21 15:13:54 · 733 阅读 · 0 评论 -
数组去重 算法实现
最近同学在面试的过程中,连续被问道了这个问题,因此做个总结!package com.lee.wait;import java.util.Arrays;import java.util.HashSet;import java.util.Set;/** * ArrayUniue 数组去重的问题 * * @author wait * */public class ArrayUniue {原创 2016-07-26 19:22:45 · 10419 阅读 · 3 评论 -
字符的左右移动-java
题目:字符串移动(字符串为号和26个字母的任意组合,把号都移动到最左侧,把字母移到最右侧并保持相对顺序不变),要求时间和空间复杂度最小.解析:主要问题是时间复杂度和空间复杂度,不过不考虑时间和空间复杂度,可以另外建立两个字符数组,把’‘和非’‘,分别放进去,再组合成字符串,就可以了. 那么要保持时间复杂度为(n),空间复杂度为(1),就需要进一步考虑.思路就是设定一个下标i指向字符串第一个非’‘的原创 2016-06-21 11:23:05 · 2166 阅读 · 0 评论 -
二叉排序树的建立和各种遍历方法-java(附详细注释和单元测试)
二叉排序树的建立和各种遍历方法二叉排序树的定义: 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树; (4)没有键值相等的结点。原创 2016-08-04 21:54:22 · 2785 阅读 · 1 评论