数据结构和算法题
Posted xxbbtt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构和算法题相关的知识,希望对你有一定的参考价值。
第一次学数据结构是在大二的时候了,那时候一口气学到了图,计算最小生成树什么的,不过那会都是用的c语言和matlab,也没保存下来,这会也忘记很多了,期间还刷了不少leetcode的题目但也很少记下来==,所以这次就打算开个新坑。
计划是这样的:
- 新建一个Algorithm空项目,上传到git hub上面,做一道题就新建一个类,把题目描述放在git介绍和类注释上面
- 至于题目解析的话,就有时间就写写,所以可能好几道题就是一篇博客==
- 然后其中还新建了数据结构类,像链表、栈、二叉树这样的基本类,其中的方法会随着题目的需要修改和添加
- 目标首先是先使用java,c语言的话慢慢来吧,其他语言的话,其实我还想用scala
- 这个博客将会随着git hub的介绍更新,所以这个更新就是增加题目或者数据结构
github地址:https://github.com/xbtshady/Algorithm
数组和字符串相关
- 不使用额外的数据结构,确定字符串中所有的字符是否全都不同
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Array/IsAllDifferent.java - 判断字符串1重组后能否变成字符串2
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Array/CheckSame.java - 将字符数组中的空格 转换为%20,假设字符数组足够大,已知字符数组中非空字符的长度 假设字符数组拥有这三个字符{‘1‘,‘2‘,‘3‘},也就是说 这个非空字符的长度为3,但它的长度不止3
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Array/SpaceReplace.java - 压缩字符串,例如"aaabbccddaaa" -> "a3b2c2d2a3",如果字符串没有变短 则保持原样
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Array/Compress.java - 给定一幅有N*N矩阵表示的图像,其中每个像素的大小为4字节,编写一个方法,将图像旋转90度。不占用额外的存储空间能否做到?
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Array/Rotating.java - 一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Array/findfrom2dArray.java
排序相关
- 冒泡排序
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Sort/BubbleSort.java - 鸡尾酒排序
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Sort/CocktailSort.java - 快排
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Sort/quickSort.java - 插入排序
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Sort/InsertionSort.java - 选择排序
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Sort/SelectionSort.java - 归并排序
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Sort/MergeSort.java
链表相关
- 单向链表的结点
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Linkedlist/Node.java - 单向链表
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Linkedlist/LinkedList.java - 删除链表中重复的元素,以及不使用额外的缓冲空间,该怎么解决?
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Linkedlist/deleteDups.java - 找到链表的倒数第K个节点
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Linkedlist/find.java - 给出一个基准x,把所有比x小的结点排在比x大或等于的后面
https://github.com/xbtshady/Algorithm/blob/master/src/xw/Linkedlist/partingLinkedList.java
栈相关
队列相关
二叉树相关
- 二叉树结点
https://github.com/xbtshady/Algorithm/blob/master/src/xw/BinaryTree/TreeNode.java - 使用链表实现的二叉树
https://github.com/xbtshady/Algorithm/blob/master/src/xw/BinaryTree/BinaryTree.java - 遍历二叉树
https://github.com/xbtshady/Algorithm/blob/master/src/xw/BinaryTree/TraversalBinaryTree.java
以上是关于数据结构和算法题的主要内容,如果未能解决你的问题,请参考以下文章