![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法编程
leadershanzhi
乐观向上,崇尚自由。
展开
-
阿里17春招实习生笔试编程题:实现一个过滤功能,来匹配订阅关系是否符合
下面是原题目以及解答阿里的消息中间件,负责淘宝天猫支付宝等各个系统的消息中转,削峰填谷及架构的解耦。在每年的双11中承载了数万亿的消息。消息中间件中有Pub/Sub两个角色,Pub方发送消息到消息中间件,消息中间件再根据订阅关系投递给订阅方。例如用户成功购买了一个物品,交易平台(Pub)会发送一条交易完成(trade-done)的消息,购物车平台(Sub)订阅到这个消息后,会将用户的购物车物品删除掉原创 2017-04-28 15:47:30 · 448 阅读 · 0 评论 -
阿里17春招实习生笔试编程题:求解单行的逆波兰表达式
下面的题目是阿里巴巴2017年春季实习生招聘的最后一道编程题:。 一个对于一个单行的逆波兰表达式,由如下元素构成: 数字:十进制数字字符构成的正整数,比如 223 运算符:支持三种运算符^+和*,分别代表自增,加法和乘法 分隔符:一个或者多个空格 例如下面的字符串就是个逆波兰表达式 2 3 4 * ^ 5 + 逆波兰表达式在一个基于栈的虚拟机中求解,虚拟机的栈能保存16个整数,虚拟机原创 2017-04-28 01:02:18 · 537 阅读 · 1 评论 -
剑指Offer: (Java实现) 包含min函数的栈
* 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop德尔时间复杂度都是O(1) *此题需要设计出一个数据结构,需要满足栈先进后出的特性,还要满足随时可以取出来最小值。决定采用使用数据栈和辅助栈来实现。数据栈和普通栈一样为新的数据结构提供pop(),push()的支持;辅助栈是为了保存历次push时候的最小值,以便以O(1)的复杂度来原创 2017-05-28 14:20:56 · 345 阅读 · 0 评论 -
剑指Offer:(Java实现) 打印1到最大n位进制数
剑指offer 12 : Java实现 输入数字 n,按顺序打印出从 1 到最大的 n 位进制数。 比如输入 5,则打印出 1、2、3 一直到 99999注意:当 n 稍大,那么 long型也会溢出,所以需要变化思路,用一个一维数组来存储从1到Math.pow(10,n)之间的数。因为无法用到数值来遍历打印,所以我们每个数都是一个一维数组,然后从非0的元素开始打印一维数组。那么多的数一次打印原创 2017-05-26 15:11:23 · 266 阅读 · 0 评论 -
剑指Offer: (Java实现) 丑数
* 我们把只包含因子 2,3,和 5 的称为丑数。求按从小到大的顺序的第 1500个丑数。例如 6、8 都是丑数,但 14 不是,因为它包含因子 7.习惯上我们把 1当做第一个丑数 *该段程序中包含常规方法和最优方法。本篇博客的贡献在于用java实现 剑指offer面试题34:丑数。 相关讲解在此不再赘述(和剑指offer面试题34算法思想相同)。 重点是:应用空间来换取时间,效率提升一万倍。原创 2017-06-21 09:21:53 · 285 阅读 · 0 评论 -
剑指Offer: (Java实现) 栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出序列。假设压入栈的所有数字均不相等。例如压栈序列为 1、2、3、4、5.序列 4、5、3、2、1 是压栈序列对应的一个弹出序列,但 4、3、5、1、2 却不是。分析:学过数据结构的人都知道,这种判断是考试中必考的。现在用Java语言实现,无非就是将逻辑转化为代码。假设大家知道 某个序列能否从特定的入栈顺序的组成的栈中弹出的原创 2017-05-28 19:56:55 · 361 阅读 · 0 评论 -
剑指Offer: (Java实现) 连续子数组的最大和
* 类说明:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 O(n)。例如输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2}。** 非递归实现,打印出最大和的连续子数组的子序列; curSum表示算上当前元素的最大值,curMax表示截止到当前元素的最大值 *public原创 2017-06-13 12:07:07 · 510 阅读 · 0 评论