coursera算法公开课练习题Interview(3)
来源:互联网 发布:网络电缆是什么样的 编辑:程序博客网 时间:2024/05/21 11:01
Question: Queue with two stacks. Implement a queue with two stacks so that each queue operations takes a constant amortized number of stack operations.
问题描述: 这里的问题是想要使用两个堆栈来实现的队列。
解决方案: 这里主要的算法就是现将元素压入栈1,再从栈1弹出去这个元素并将其压到栈2。具体实现的伪代码如下:
- Enqueue: 将所有元素压入到栈1里面去
- Dequeue Operation : 如果栈2是空, 将栈1的所有元素压入到栈2
Question: Stack with max. Create a data structure that efficiently supports the stack operations (push and pop) and also a return-the-maximum operation. Assume the elements are reals numbers so that you can compare them.
问题描述: 这里就是要求含有一个寻找最大元素方法的栈的实现。
解决方案: 使用两个堆栈,一个包含所有元素,另一个包含最大值。 要添加一个元素,压到第一个栈里面去; 如果它大于第二堆栈上的最上面的元素,也将它压到第二堆栈。 要弹出元素,先从第一个堆栈中弹出; 如果它是第二个堆栈上的顶部元素,也从第二个堆栈弹出它。 要找到最大值,返回第二个堆栈上的顶部项。
Question: 关于为什么Java不支持泛型数组。
Answer: 这个问题就是Java里面的泛型实现中使用的类型擦除导致的问题,数组在创建的时候是必须知道内部数据类型的,并会根据类型信息来对添加的元素进行类型检查。
- coursera算法公开课练习题Interview(3)
- coursera算法公开课练习题Interview(1)
- coursera算法公开课练习题Interview(2)
- 文本检索 coursera公开课
- 【Coursera公开课】计算机程序设计 编程作业
- 【Coursera公开课】职场素养 笔记
- Coursera公开课-Machine_learing:编程作业
- 麻省理工算法导论公开课(3)
- Ng在coursera上的机器学习公开课——zai总结(3)_Logistic Regression
- Coursera Algorithms week1 Interview Questions: 3Sum in quadratic time
- Coursera公开课Functional Programming Principles in Scala习题解答:Week 3
- coursera公开课:機器學習基石 (Machine Learning Foundations) 作业一(Question15)
- 【转】【Coursera公开课】Applying to U.S. Universities(如何申请美国大学)笔记
- Ng在coursera上的机器学习公开课——zai总结(4)_Regularization
- coursera公开课——recommender system作业(第二周)
- coursera公开课——recommender system作业(第三周)
- Coursera公开课笔记: 第六课 逻辑回归
- 【转】【Coursera公开课】职场素养 笔记
- hdu1163
- 我的第一篇博客
- 高级加密标准 AES (Advanced Encryption Standard)
- js刷新页面方法大全
- Java 异步回调机制实例解析
- coursera算法公开课练习题Interview(3)
- RabbitMQ的安装及集群搭建方法
- Vue2+WebPack2使用css/sass+postcss的autoprefixer
- nyoj1047欧几里得
- 关系型数据库和非关系型数据库区别
- 详解 MapReduce 在 Yarn 中的调度细节
- windows 的使用 —— 注册表(软件的安装和卸载)
- 进程编程中的fork起步
- xxx.so has text relocations. This is wasting memory and is a security risk. Please fix