
PTA
CodeUltraLab
上海交通大学新生,从事医疗AI方向。欢迎关注淘宝店铺CodeUltraLab询问深度学习,机器学习处理相关问题
展开
-
PTA 1051
题目解决方案抓住一个核心的要点就是一个数想要出栈,1种情况是比它大的数都没有进来,另一种情况是比它大的都出去了。我们怎么判断是否有比它大的数呢?通过一个maxvalue来记录能弹出的最大值的最小值。你可能看到这个会有一些懵,我来解释一下。比如6 5 4这样的出栈顺序,我们读取6时,6是最大值,到5时,最大值是5了。如果再判断4-6会浪费时间,5已经可以弹出了,说明比五大的都没问题了,我们只需要判断4-5中间的数是否清理干净即可。还有一个注意的点是栈的长度有限制,这个怎么解决呢就是通过判断出栈的数是否更原创 2022-04-21 22:03:21 · 230 阅读 · 0 评论 -
PTA1040动态规划题解
分析:看到好多题解都是利用dp去记录是否是回文串,其实dp可以直接记录回文串的长度,这里定义dp[i][j]是以i开头j结尾的字符串是否是回文串,不是为0,是的话记录它的长度。#include<iostream>using namespace std;int dp[1001][1001]={0};int main(){ string str; getline(cin,str); int maxans=-1; for(int i=str.size()-1原创 2021-10-18 12:17:12 · 160 阅读 · 0 评论 -
1017 Queueing at Bank (25 分) 有很多错误的题解大家注意
题目分析:有n个客户,k个窗口依次根据客户的到达顺序进行业务办理,类似于操作系统中的先来先服务算法,每个客户的办理时间不超过60min,很多题解说大于60就等于60的说法是错误,这里的样例就是不超过60min,是保证的。解题思路:好多题解都是找目前最快结束的窗口(可以考虑优先队列),我是统一起来根据秒从8点开始模拟,检测这一秒是否有客户办理完毕,以及是否有客户可以进行处理。时间复杂度是O(t*k),t是办理所需总时间,k是k个窗口。题解代码:#include<iostream>#in原创 2021-08-20 18:01:09 · 261 阅读 · 0 评论 -
字典树实现智能文本提示(思路讲解)
字典树:超详细讲解分析:我们在知道字典树的原理以后,可以用两种方式来实现:1.用数组记录parent和child。优点:速度快,在建立的时候可以直接哈希,遇到重复的可以快速更新频率。缺点:比较浪费空间,但是现在的程序对空间的要求都比较低,相对来讲用空间换时间是比较值得的。2.用指针来实现,类似多叉树。优点:节省空间。缺点:对指针的操作要求比较高,容易发生段错误。设计思路:我们根据链接提到的插入和查询函数,我们发现每一个字母有对应的编号,我们可以把频率进行相应的保存。遇到重复的和保存取最大值即原创 2021-03-17 21:39:07 · 416 阅读 · 0 评论