
数据结构与算法
sixabs
I am a coder, code my life.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《数据结构Java语言版》-- 基础概念
数据(Data): 描述客观事物的数值,字符以及能输入机器且能被处理的各种符号集合。 数据元素(Data Element): 数据的基本单位,是数据集合的个体,在计算机程序中通常作为一个整体来进行处理。 数据对象(Data Object): 是性质相同的数据元素的集合,是数据子集。 数据结构(Data Structure): 是指相互之间存在一种或多种特定关系的数据元素的集合。 逻辑结构与线性结...原创 2018-09-14 17:10:40 · 2691 阅读 · 0 评论 -
剑指offer学习3(Java语言版)
面试题11:旋转数组的最小数字 分析:题目的意思是,给一个升序数组的旋转后的数组,然后让你找他的最小值。 方法1:观察可以发现,由于数组只是把嘴前面的升序部分放在了后面,所以从前往后找,遇到第一个比前面小的数,就是我们要找的最小值。该方法时间复杂度为O(n)。 方法2:可以用2分法,至少需要分析代码中测试用例中的5中情况,实现比较复杂,但是时间复杂度能够提高到O(log(n)) public c...原创 2019-06-04 15:02:30 · 157 阅读 · 0 评论 -
剑指offer学习2(Java语言版)
目录面试题2:单例模式面试题3:数组中重复的数字面试题4:二维数组中的查找 面试题2:单例模式 设计一个类,我们只能生成该类的一个实例 这道题考察的是单例模式,这里给个对单例模式讲解的比较详细的网址 菜鸟教程|单例模式 面试题3:数组中重复的数字 分析:利用数组下标是连续的,且在该题中与数组存储的元素具有对应关系,如果没有重复,则排序后刚好和下标对应;如果有重复,则排序后存在不能和下标对应的...原创 2019-06-02 17:39:07 · 222 阅读 · 0 评论 -
剑指offer学习1(Java语言版)
题目列表 1.原创 2019-06-02 14:52:21 · 243 阅读 · 0 评论 -
剑指offer学习5(Java语言版)
题目列表面试题31:栈的压入弹出序列 面试题31:栈的压入弹出序列 public class Demo31 { public static void main(String[] args) { int[] pushArr = { 1, 2, 3, 4, 5 }; int[][] popArr = { { 4, 3, 5, 2, 1 }, { 4, 3, 5, 1, 2 } }; f...原创 2019-06-06 18:01:25 · 186 阅读 · 0 评论 -
二叉树
1 基础介绍 1.1 树的基本概念 树的定义、根结点、树的结点、结点的路径、路径的长度、结点的度、树的度、结点点、分支结点、子结点、父结点、祖先结点、子孙结点、兄弟结点、树的深度、有序树/无序树、森林。 1.2 二叉树介绍与性质 二叉树每个结点最多两个子结点,且有左右之分,是有序树。特殊的二叉树有满二叉树,完全二叉树,左支树/右支树。重要的是记住二叉树的性质,这在编程中可能用到: 性质1 二叉树中...原创 2019-06-01 14:47:35 · 218 阅读 · 0 评论 -
KMP模式匹配算法详解
1 问题描述 在进行字符串操作的时候,我们有一个需求,从给定的一个主串s=s0s1...sm−1s=s_0s_1...s_{m-1}s=s0s1...sm−1中查找是否包含了某个模式串t=t0t1...tn−1t=t_0t_1...t_{n-1}t=t0t1...tn−1,并返回模式串在主串中首次出现时的第一个字符在主串中的位置。用接口描述为 int indexOf(String st...原创 2019-06-01 11:43:55 · 389 阅读 · 0 评论 -
剑指offer学习4(Java语言版)
题目列表面试题21:调整数组顺序使奇数位于偶数前面 面试题21:调整数组顺序使奇数位于偶数前面 public class Demo21 { public static void main(String[] args) { int[] arr = { 3, -3, 4, 7, 4, 2, 9, 0, -1 }; adjustOrder(arr); for (int i = 0; i ...原创 2019-06-05 16:59:15 · 145 阅读 · 0 评论 -
《数据结构Java语言版》-- 顺序表
顺序表说的是存储结构,它的逻辑结构是线性表结构。顺序表的数据之间逻辑关系是:数据之间是顺序关系,即除了首位两个元素,其他元素都只有一个直接前驱,一个直接后继(首位元素无前驱,有一个后继,末位元素无后继,有一个前驱)。 首先定义数据的操作接口类: package com.snail.chapter2; public interface List { /** 返回线性表的大小,即数据元素...原创 2018-09-14 17:44:02 · 387 阅读 · 0 评论 -
剑指offer学习6(Java语言版)
题目列表面试题41:数据流中的中位数面试题42:连续子数组的最大和面试题43:1~n整数中1出现的次数面试题44:数字序列中某一位的数字 面试题41:数据流中的中位数 public class Demo { public static void main(String[] args) { Demo demo = new Demo(); System.out.println(demo....原创 2019-06-11 19:54:31 · 148 阅读 · 0 评论