![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 79
数据结构与算法
小莫神和他的的
这个作者很懒,什么都没留下…
展开
-
leetcodeのHashTable
哈希表这回,我决定一改题号顺序,而是根据特意的安排来安排题目顺序????????????242. 有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。放在了哈希表的专题里自然是要用到相关思想的,这是一道哈希思想简单使用的题目。关于哈原创 2021-02-10 00:20:34 · 161 阅读 · 0 评论 -
leetcodeのLinkedList
LinkedList来到了leetcode的链表专题。203. 移除链表元素删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5题虽然不难,但是用到了链表中一个非常重要的思想虚拟头节点思想,就是链表头节点之前加一个空节点来当头节点 ,原来的头节点就变成第2个节点了。之所以这样做是为了操作方便,如果没有虚拟头节点的话,在对链表操作时要对真正的原创 2021-02-01 16:13:55 · 83 阅读 · 0 评论 -
leetcode之array
Array最近在leetcode上写算法题,当然窝这样的????????只能从easy开始做起,就算是这样也发现自己在算法方面到底有多么的????/(ㄒoㄒ)/~~那么这篇博客记录array系列的题目,按照编号排版吧正文开篇之前,首先需要感谢力扣上各路大牛提供的思路和代码,同时也选择摘抄了我认为优雅的代码,如果需要删除的话,请私信我。????????????26.Remove Duplicates from Sorted Array给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只原创 2021-01-28 22:01:39 · 225 阅读 · 0 评论 -
排序
排序1.简单选择排序描述请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码。输入关键码的个数,以及各个关键码,采用简单选择排序的方法对关键码数组进行排序,输出每趟比较的过程。输入描述第一行输入关键码的个数n,第二行输入n个整型关键码。输出描述输出经比较需要交换的两个关键码 ,每趟一行,关键码之间以空格隔开,如果某趟没有交换,则不输出。最后输出排好序的所有关键码,以空格隔开,最后一个数据后面有空格。输入样例610 4 8 6 2 20原创 2020-11-21 19:10:21 · 543 阅读 · 2 评论 -
查找
查找1.顺序查找验证程序描述定义一个整型数组r,用于存储关键码集合,其中r[1]~r[n]用于存储有效的关键码,r[0]留作它用。按照哨兵设置在下标为0处的从后向前顺序查找方法,查找在关键码集合中是否有符合给定值的记录,如果有,返回该记录所在数组的下标,如果没有,返回0。要求输出查找过程,即查找过程中需要比较的关键码值都输出。(数组的长度小于<100),输入描述各个命令以及相关数据的输入格式如下: 第一行输入关键码集合中关键码的数目,假设输入的值为n(n为大于0的正整数) ; 第二行输入n个原创 2020-11-14 17:22:15 · 770 阅读 · 0 评论 -
图的遍历
图的遍历图的邻接矩阵存储及遍历题目描述采用邻接矩阵表示无向图,完成图的创建、图的深度优先遍历、图的广度优先遍历操作。其中图的顶点信息是字符型,图中顶点序号按字符顺序排列。本输入样例中所用的图如下所示:输入描述第一行输入两个值,第一个是图中顶点的个数,第二个是图中边的条数 第二行输入各顶点的信息,即输入每个顶点字符 第三行开始输入每条边,每条边的形式为两个顶点的序号,中间以空格隔开,输入完一条边换行输出描述首先输出图的顶点信息,输出完毕换行 接着输出图的邻接矩阵,假如图中有n个顶点,则输出形式为原创 2020-10-28 23:06:10 · 398 阅读 · 0 评论 -
树
树1.二叉树的基本操作这是下面所有题目的基础,所有题目要用到的东西都可以从这里copy,这里用到的遍历算法是最基础的递归实现算法,循环算法可自行百度。题目描述:设计二叉树类,能够对二叉树进行先序、中序、后序和层序遍历,遍历的操作为输出结点的值,设计主函数,输入一棵二叉树,按先序、中序、后序、层序的遍历顺序输出结点的值。二叉树的结点数不超过20。输入描述:输入数据只有一组, 二叉树的结点均为一个数字, 数据为0代表当前结点为空。输入结点的值按照二叉树的先序遍历顺序, 比如输入:1 2 4 0 0原创 2020-10-21 18:03:13 · 693 阅读 · 0 评论 -
矩阵的马鞍点
矩阵的马鞍点描述若在矩阵A中存在一个元素a i,j(0≤i≤n-1,0≤j≤m-1),该元素是第i行元素中最小值且又是第j列元素中最大值,则称此元素为该矩阵的一个马鞍点。假设以二维数组存储矩阵A,试设计一个求该矩阵所有马鞍点的算法。首行输入矩阵的的大小n*m, 然后n行每行输入m个元素。测试用例1:3 31 2 34 5 67 8 9运行结果:A[2][0]=7测试用例2:5 59 7 6 8 320 26 22 25 2328 36 16 30 4320 21 22 23 5原创 2020-10-11 18:11:41 · 4468 阅读 · 0 评论 -
杨辉三角
杨辉三角杨辉三角形至于什么是杨辉三角呢?描述求解如下杨辉三角形第i行元素。输入i,输出第i行元素值。11 11 2 11 3 3 11 4 6 4 1…….测试样例1:4输出结果1:1 3 3 1首先这是一道使用二维数组这样的数据结构的解法,当然用一维数组也能做到。#include<iostream>using namespace std;int main() { int dat[20][20]; int n, i, j; cin >> n;原创 2020-10-11 18:11:04 · 1558 阅读 · 0 评论 -
字符串
字符串1.字符串模式匹配算法描述输入主串和子串,匹配成功输出子串的位置,返回子串第一次出现的位置,若不存在,返回-1。这是一道最原始的匹配算法,原始算法。所以并不难#include <iostream>#include <string.h>using namespace std;int NaiveStrMatch(const string& T, const string& P){ int i = 0, j = 0; int star原创 2020-10-11 16:30:14 · 504 阅读 · 0 评论 -
队列
队列数组实现1.循环队列基本操作描述题目描述:请定义一个顺序队列,可以对队列进行“入队”、“出队”、“清空队列”、“获取队首元素”等操作。键盘输入一些命令,可以执行上述操作。本题中,队列的元素为字母, 队列的最大元素个数为100。输入描述:输入各个命令,它们对应的格式如下: 入队:E a,a代表入队的元素,这里E和元素之间用空格分隔。 清空队列:C;获取队头元素:当输入的命令为D时,输出出队的元素值; 当输入的命令是G时,输出当前队首元素值; 如果没有元素可出队或可取, 输出None;当输入的原创 2020-10-04 10:03:45 · 539 阅读 · 0 评论 -
栈
栈数组实现1.顺序栈的基本运算描述栈的顺序存储结构与操作题目描述:请你定义一个顺序栈,可以对顺序栈进行“将某个元素入栈”、“弹出栈顶元素”、“取栈顶元素(不删除)”、“判断栈是否为空”、“清空栈”等操作。键盘输入一些命令,可以执行上述操作。本题中,顺序栈元素为int数字,顺序栈的最大长度为10。#include <iostream>using namespace std;class Seqlist{public: Seqlist() { top = -1; } ~原创 2020-10-04 00:15:11 · 1025 阅读 · 2 评论 -
有效的括号
有效的括号描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。这一道题目只需要后面一个括号与前一位括号想匹配就行了,所以没有什么难度。#include <iostream>#include <string>using namespace std;#define MAX_SIZE (100)class原创 2020-10-02 13:29:13 · 167 阅读 · 1 评论 -
递归求二阶Fibonacci
递归求二阶Fibonacci描述Fibonacci数列从第3项开始,每一项都等于前两项之和F(1)=1, F(2)=1, F(n)=F(n-1) + F(n-2) (n>2)#include <stdio.h>#include <stdlib.h>/* TODO: 利用递归求二阶Fibonacci数列第n位的值 描述: 1. 先判断n是否为0,是则直接返回0即可 2. 再判断n是否为1,是则直接返回1即可 3. 其他情况下原创 2020-10-02 11:43:51 · 968 阅读 · 0 评论 -
有序表
有序表算法题今年开始上数据结构的课了,把写的题记录一下数组实现1.求两个集合的并集和交集这题我之前的博客其实写过了,所以稍微简单地改了改就写上了。题目描述:已知A和B均是由整型数据组成的集合,使用顺序表表示集合,设计算法求集合A、B的交集和并集,功能包括输入集合A,输入集合B,求A和B的并集,求A和B的交集。本题中, 线性表的第一个元素位置为1,线性表的最大长度为20。输入描述:各个命令以及相关数据的输入格式如下: 输入集合A:A,接下来的一行是要输入的集合元素个数n,下面是n行数据,每行数原创 2020-10-02 08:56:00 · 1466 阅读 · 0 评论