zoukankan      html  css  js  c++  java
  • DS博客作业02--栈和队列

    0.PTA得分截图

    栈和队列题目集总得分,请截图,截图中必须有自己名字。题目至少完成2/3(不包括选择题),否则本次作业最高分5分。

    1.本周学习总结(0-5分)

    1.1 栈

    画一个栈的图形,介绍如下内容。
    顺序栈的结构、操作函数

    链栈的结构、操作函数

    1.2 栈的应用

    表达式
    中缀表达式转后缀表达式
    后缀表达式求值

    1.3 队列

    画一个队列的图形,介绍如下内容。
    顺序队列的结构、操作函数

    环形队列的结构、操作函数

    链队列的结构、操作函数
    队列应用,要有具体代码操作。

    2.PTA实验作业(4分)

    此处请放置下面2题代码所在码云地址(markdown插入代码所在的链接)。如何上传VS代码到码云

    2.1 符号配对


    2.1.1 解题思路及伪代码

    思路: 如果当前的符号是前一半,那么推入栈,如果是后一半就找最近的匹配括号,如果是就推出,遍历下一个,如果不匹配那么久失败退出

    2.1.2 总结解题所用的知识点

    2.2 银行业务队列简单模拟


    2.2.1 解题思路及伪代码

    将输入的人数N使用求余运算进行奇偶入队,在两队不为空的情况下,利用标志变量对2进行求余运算
    由于A队的业务处理速度是B队的两倍,所以,标志变量每轮递增,A队每轮循环都出队,B队只有当余数为0的时候出队,出队
    后重新将标志变量记为0。循环结束后,判断两队是否均为空,如果不为空,则将剩余队员出列。

    2.2.2 总结解题所用的知识点

    对于出队速度的控制,可以使用

    3.阅读代码(0--1分)

    3.1 题目及解题代码

    可截图,或复制代码,需要用代码符号渲染。

    `
    class Solution2 {
    public:
    vector topKFrequent(vector& nums, int k) {

    	// <数值,频率>
    	unordered_map<int, int> freq;
    	for (int i = 0; i < nums.size(); i++) {
    		freq[nums[i]]++;
    	}
    
    	// 开始维护K长的优先队列,pair<频率,数值>
    	priority_queue< pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>> > pq;
    	for (unordered_map<int, int>::iterator iter = freq.begin(); iter != freq.end(); iter++) {
    		// 队列长度已到达k
    		if (pq.size() == k) {
    			if (iter->second > pq.top().first) {
    				pq.pop();
    				pq.push(make_pair(iter->second, iter->first));
    			}
    		}
    		else {
    			pq.push(make_pair(iter->second, iter->first));
    		}
    	}
    
    	// 整理输出
    	vector<int> res;
    	while (!pq.empty()) {
    		res.push_back(pq.top().second);
    		pq.pop();
    	}
    
    	return res;
    }
    

    };`

    3.2 该题的设计思路及伪代码

    思路: 维护一个k数据长的优先队列,如果后来的数据的频率高于优先队列中的最小频率,那么替换,最终的优先队列中的数值就是我们的结果,复杂度为o(nlogk)

    3.3 分析该题目解题优势及难点。

    keep it up
  • 相关阅读:
    当扩展方法和类里定义的方法重名时,会优先调用类里自义的方法
    jquery.uploadify不支持MVC的Authorize
    .NET4中多线程并行方法Parallel.ForEach
    http://twitter.github.com/bootstrap/
    .NET 4.0中使用sqlite
    Extend Html.EditorFor MVC
    Custom Email Attribute在客户端不起作用原因
    使用webpack搭建vue环境
    新浪sae对storage的文档进行读写操作
    jquery+bootstrap插件
  • 原文地址:https://www.cnblogs.com/Z1188G/p/14617756.html
Copyright © 2011-2022 走看看