| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 12.15学习总结 -> 正文阅读 |
|
[数据结构与算法]12.15学习总结 |
晚自习19:00——22:00:刷题 刷题量:2 第二周:栈+队列+搜索模板 栈:栈是一种先进后出的数据结构,限定只能在一端进行插入和删除操作,允许操作的一端称为栈顶,不允许操作的称为栈底。 dfs:有点类似于递归,较为暴力。通俗一点说就是一条路走到黑,如果走到一个地方,发现无法继续走下去,就反回原来的地方,寻找新的路径,直到走通为止。 bfs:dfs类似,不在过多阐述。 第一题: 给出一个由1到n组成的无序数列,如果我们把这个序列看成是数字1~n出栈的顺序,并且入栈顺序是1, 2, 3, ..., n,请问操作时,栈内最多能有多少个元素? Input 输入有多组数据。 每组数据的第一行为一个整数n代表由1到n的序列。 1<= n ?<=100。 第二行为n个用空格隔开的整数,范围是[1,n]。 Output 若此序列能由进栈,出栈得到,输出所使用的最小栈容,否则输出-1 Sample Input 5 1 2 3 4 5 4 3 2 1 4 6 6 5 4 1 3 2 Sample Output 1 3 -1 题意:如果我们把这个序列看成是数字1~n出栈的顺序,并且入栈顺序是1, 2, 3, ..., n。以本题第二个输入示例为例:3代表1这个数第三个出列,为第一个入列的数,2代表2这个数第二个出列,第二个入列。 题解:进行多组输入,使用循环让小于a[i]的数入栈(即题意中的入列,让stack[top++]=m的原因为题意中的出列),由于为多组输入,要更新每一次栈容。代码如zh
ps:这道题刚开始不知道直接让小于a[i]的数入栈,还是一个hxd告诉我这个处理方法?,hxd牛皮。 第二题: 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, };
Input 一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。 Output 左上角到右下角的最短路径,格式如样例所示。 Sample Input 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 Sample Output (0, 0) (1, 0) (2, 0) (2, 1) (2, 2) (2, 3) (2, 4) (3, 4) (4, 4)
今日学习成果如上。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 17:39:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |