数据结构与算法
数据结构与算法
夜石
韦海涛
展开
-
DP-LCS
最长公共子串LCS的使用public class DP_LCS { public static void main(String[] args) { char[] A = {'s','a','d','s','t','o','r','y'}; char[] B = {'a','d','m','i','n','s','t','o','r','y'}; int dp[][] = new int[A.length+1][B.length+1];.原创 2021-03-14 22:31:32 · 126 阅读 · 0 评论 -
LintCode刷题16
描述给出一个具有重复数字的列表,找出列表所有不同的排列。样例样例 1:输入:[1,1]输出:[ [1,1]]样例 2:输入:[1,2,2]输出:[ [1,2,2], [2,1,2], [2,2,1]]主要程序思路,与第15题思路一致,不过这次我将InnerParam作为索引链表了,所以代码有些出入,大家自行查看即可,public ...原创 2020-02-01 23:14:45 · 512 阅读 · 0 评论 -
LintCode刷题22
描述给定一个列表,该列表中的每个元素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。如果给定的列表中的要素本身也是一个列表,那么它也可以包含列表。样例样例 1: 输入: [[1,1],2,[1,1]] 输出:[1,1,2,1,1] 样例解释: 将其变成一个只包含整数的简单列表。样例 2: 输入: [1,2,[1,2]] 输出:[1...原创 2020-02-01 19:10:39 · 3168 阅读 · 0 评论 -
LintCode刷题15
描述给定一个数字列表,返回其所有可能的排列。你可以假设没有重复数字。样例样例 1:输入:[1]输出:[ [1]]样例 2:输入:[1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]import java.util.ArrayList;imp...原创 2020-02-01 15:11:04 · 385 阅读 · 0 评论 -
LintCode刷题17
描述给定一个含不同整数的集合,返回其所有的子集。子集中的元素排列必须是非降序的,解集必须不包含重复的子集。样例样例 1:输入:[0]输出:[ [], [0]]样例 2:输入:[1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]第一回因为没...原创 2020-02-01 12:23:26 · 391 阅读 · 0 评论 -
LintCode刷题5
描述在数组中找到第 k 大的元素。你可以交换数组中的元素的位置样例样例 1:输入:n = 1, nums = [1,3,4,2]输出:4样例 2:输入:n = 3, nums = [9,3,2,4,8]输出:4挑战要求时间复杂度为O(n),空间复杂度为O(1)。可以使用快排/堆排等等,这里我使用选择排序。public class E...原创 2020-02-01 00:31:20 · 518 阅读 · 0 评论 -
LintCode刷题1305
描述把一个非负整数转成英文单词的形式。给定的输入一定比2^31-1小。样例123 -> "One Hundred Twenty Three"12345 -> "Twelve Thousand Three Hundred Forty Five"1234567 -> "One Million Two Hundred Thirty Four Thousan...原创 2020-01-30 19:42:01 · 410 阅读 · 0 评论 -
LintCode刷题8
描述给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转)。offset >= 0str的长度 >= 0您在真实的面试中是否遇到过这个题?是题目纠错样例样例 1:输入: str="abcdefg", offset = 3输出: str = "efgabcd" 样例解释: 注意是原地旋转,即str旋...原创 2019-10-04 19:26:56 · 381 阅读 · 0 评论 -
LintCode刷题1312
描述中文English给定整数n,计算出现在小于等于n的所有非负整数中的数字1的总数。您在真实的面试中是否遇到过这个题?是题目纠错样例样例1输入: 13输出: 6说明:有以下五个数字包含"1": 1, 10, 11(两个1), 12, 13样例2输入: 100输出: 21第一个版本:时间超过public static int co...原创 2019-09-29 15:57:54 · 382 阅读 · 0 评论 -
LintCode刷题2
样例 1: 输入: 11 输出: 2 样例解释: 11! = 39916800, 结尾的0有2个。样例 2: 输入: 5 输出: 1 样例解释: 5! = 120, 结尾的0有1个。public class Solution { /* * @param n: An integer * @return: An intege...原创 2019-09-28 20:20:48 · 348 阅读 · 0 评论 -
Android实践(计算器的数据结构实现)
新的知识,新的开始。接下来一起探讨使用Android技术解决计算器诸多问题,首先这个方法并不是适合所有人,有数据结构基础的同学可以稍微看看。一般实现Android计算器都是只能进行例如 x + y = z的操作,但是需要实现类似于a + b * c = d的操作需要使用到逆波兰式。下面解释一下逆波兰式的功能,人类认识中缀表达式,例如a+b*c,但是计算机只会按部就班的操作(a+b)*c...原创 2020-03-08 21:40:07 · 701 阅读 · 1 评论 -
数据结构-图-深度优先搜索算法(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds如何实现图的深度优先搜索算法详细代码实现:package com.company.ch6;import com.company.ch3.queue.LinkSqeue;public class GraphFS { ...原创 2020-03-04 09:00:22 · 397 阅读 · 0 评论 -
数据结构-图-广度优先搜索算法(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds如何实现图的广度优先搜索算法详细代码实现:package com.company.ch6;import com.company.ch3.queue.LinkSqeue;public class GraphFS { ...原创 2020-03-04 09:00:05 · 437 阅读 · 0 评论 -
数据结构-图-连通分量(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds如何实现获取图的连通分量详细代码实现:package com.company.ch6;import com.company.ch3.queue.LinkSqeue;public class Exp6_1 { p...原创 2020-03-04 08:53:54 · 776 阅读 · 0 评论 -
数据结构-图-路径长度计算(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds如何图的实现路径长度package com.company.ch6;public class Exp6_2 { //访问标志数组 private boolean[] visited; //辅助变量,...原创 2020-03-04 08:51:20 · 2774 阅读 · 0 评论 -
数据结构-图-组建图(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds图结点代码:package com.company.ch6;public class ArcNode { //该弧所指向的顶点位置 public int adjVex; //边或弧的权值 pub...原创 2020-03-04 08:43:27 · 435 阅读 · 1 评论 -
数据结构-树-对比树是否相等(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds两种递归式方法,原理:首先对比根节点,再依次对比左右结点。详细代码实现:public boolean isEqual(BiTreeNode t1, BiTreeNode t2) { if (t1 =...原创 2020-03-04 08:34:53 · 1532 阅读 · 0 评论 -
数据结构-树-获取深度(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds两种非递归方法public int getDepth(BiTreeNode t) { if (t != null) { int lDepth = getDepth(t.lchild); ...原创 2020-03-04 08:32:32 · 1023 阅读 · 0 评论 -
数据结构-树-获取结点个数(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds三种实现方式有递归的,非递归的,还有使用类似于层次遍历算法的。详细代码实现://统计二叉树中结点个数的算法 //使用递归的方式 public int countNode1(BiTreeNode t) {...原创 2020-02-03 22:29:46 · 4375 阅读 · 0 评论 -
数据结构-树-树的组建(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds节点类实现:package com.company.ch5;public class BiTreeNode { public Object data; public BiTreeNode lchild,rchi...原创 2020-02-03 22:26:21 · 2736 阅读 · 0 评论 -
数据结构-树-非递归遍历(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds使用非递归遍历树中,主要存在前序、中序、后序历遍,分别为DLR、LDR、LRD。在这种请况下的历遍中,主要需要使用队列去实现//非递归先序历遍 public void preRootTraverse() throws E...原创 2020-02-03 22:20:28 · 3758 阅读 · 0 评论 -
数据结构-树-递归遍历(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds使用递归遍历树中,主要存在前序、中序、后序历遍,分别为DLR、LDR、LRD。//递归先序历遍 public void preRootTraverse(BiTreeNode t) { //DLR ...原创 2020-02-03 22:17:58 · 2937 阅读 · 0 评论 -
数据结构-字符串(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。接口:pa...原创 2020-02-03 21:56:20 · 3651 阅读 · 0 评论 -
数据结构-矩阵-三角矩阵(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds三角矩阵是方形矩阵的一种,因其非零系数的排列呈三角形状而得名。三角矩阵分上三角矩阵和下三角矩阵两种。上三角矩阵的对角线左下方的系数全部为零,下三角矩阵的对角线右上方的系数全部为零。三角矩阵可以看做是一般方阵的一种简化情形。比如,由于带三角...原创 2020-02-03 21:53:27 · 5579 阅读 · 0 评论 -
数据结构-矩阵-对称矩阵(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds对称矩阵(Symmetric Matrices)是指以主对角线为对称轴,各元素对应相等的矩阵。具体实现类package com.company.ch4.Matrix;import com.company.ch4.Tripl...原创 2020-02-02 21:12:58 · 4374 阅读 · 0 评论 -
数据结构-矩阵-稀疏矩阵(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。具体实现类:...原创 2020-02-02 21:08:21 · 3719 阅读 · 0 评论 -
数据结构-矩阵-对角矩阵(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds对角矩阵(diagonal matrix)是一个主对角线之外的元素皆为0的矩阵,常写为diag(a1,a2,...,an) 。对角矩阵可以认为是矩阵中最简单的一种,值得一提的是:对角线上的元素可以为 0 或其他值,对角线上元素相等的对角矩...原创 2020-02-02 21:02:22 · 4805 阅读 · 0 评论 -
数据结构-栈-链栈(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds栈一般分为顺序栈以及链栈,本文主要讲述链栈。所需要实现的接口功能。package com.company.ch3.Stack;public interface IStack { public void clear()...原创 2020-02-02 20:44:29 · 3450 阅读 · 0 评论 -
数据结构-栈-顺序栈(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds栈一般分为顺序栈以及链栈,本文主要讲述顺序栈。所需要实现的接口功能。package com.company.ch3.Stack;public interface IStack { public void clear(...原创 2020-02-02 20:42:18 · 432 阅读 · 0 评论 -
数据结构-队列-链队列(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds队列一般分为顺序队列以及链队列,本文主要讲述链队列。所需要实现的接口功能。package com.company.ch3.queue; public interface IQueue { public void...原创 2020-02-01 20:19:48 · 2925 阅读 · 0 评论 -
数据结构-队列-顺序队列(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds队列一般分为顺序队列以及链队列,本文主要讲述顺序队列。所需要实现的接口功能。package com.company.ch3.queue;public interface IQueue { public void cl...原创 2020-02-01 20:17:25 · 445 阅读 · 0 评论 -
数据结构-表-双向链表(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds双向链表所需要实现的接口功能。package com.company.ch2.interfaceFile; public interface SequenceTableInterface { void clear();...原创 2020-02-01 20:11:39 · 414 阅读 · 0 评论 -
数据结构-表-链表(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds表一般分为顺序表以及链表,本文主要讲述链表。所需要实现的接口功能。package com.company.ch2.interfaceFile; public interface SequenceTableInterfac...原创 2020-02-01 20:08:33 · 374 阅读 · 0 评论 -
数据结构-表-顺序表(Java语言)
详细的代码可见github:https://github.com/AbitGo/myClassWork/tree/master/workspace_ds表一般分为顺序表以及链表,本文主要讲述顺序表。所需要实现的接口功能。package com.company.ch2.interfaceFile;public interface SequenceTableInterfac...原创 2019-11-08 21:25:56 · 385 阅读 · 0 评论 -
c语言螺旋数组的递归操作
代码片段有static函数 请注意。#include <stdio.h>#define N 100int scan_1(){ int num; do{ scanf("%d",&num); if (num<=0||num>N) printf("please enter a true number"); }while(原创 2016-11-25 21:55:04 · 4341 阅读 · 0 评论 -
c语言排序(持续更新)
因为作者正在持续学习,所以该博客将会持续更新桶序法冒泡法简单排序法直接插入法 希尔排序法 桶序法 #include <stdio.h>#define N 11int main(void){ int a[11]={1,4,3,6,1,8,9,10,22,33,12}; int b[101]={0};//数组b全部初始化为0 for (int i=0;i<原创 2017-09-08 21:24:33 · 399 阅读 · 0 评论 -
2015年蓝桥杯决赛 C/C++大学A组第一题
** 标题:方格填数在2行5列的格子中填入1到10的数字。 要求: 相邻的格子中的数,右边的大于左边的,下边的大于上边的。如【图1.png】所示的2种,就是合格的填法。请你计算一共有多少种可能的方案。请提交该整数,不要填写任何多余的内容(例如:说明性文字)。 **接下来我们进行分析,我们将这个表格看成一个二维数组a[2][5],我们发现第一个是只可能是1,最后也只可能是10,所以我们按照题意原创 2017-07-04 20:37:32 · 673 阅读 · 0 评论 -
数据结构与算法(贪婪算法)
贪婪算法的最直观地实现是找零钱。 已知现存面额为100,50,20,10,5,1,0.5,0.2,0.1面额的纸币与硬币,现在我们算出超市找零方案。#include <stdio.h>#include <conio.h>#define MAX 10int value[MAX] = {1000,500,200,100,50,20,10,5,2,1};int num[MAX] = {0};in原创 2017-09-11 20:46:51 · 499 阅读 · 0 评论 -
数据结构与算法(二叉树)
这两天在跟着《零基础学算法》这本书学复杂数据结构,对于二叉树而言有三种历遍方式1.前序历遍(DLR) 2.中序历遍(LDR) 3.后续历遍(LRD) 而对于三种历遍方式是基于递归的。 接下来我们观察他们是如何运作的1.前序历遍(DLR) 我们看到对于前序历遍来说他的函数是这样的void BinTree_DLR(ChainBinTree *bt,void (*oper)(ChainBinTr原创 2017-07-26 21:52:02 · 1775 阅读 · 1 评论 -
数据结构与算法(双向链表)
#include <stdio.h>#include <stdlib.h>//用户自定义双向链表typedef struct node{ int num; struct node *prior;//前指针 struct node *next;//后指针}stud;//指针函数stud* create(int n){ stud *p,*h,*s;原创 2017-06-11 19:33:54 · 2791 阅读 · 0 评论