左神面试算法整理
文章平均质量分 58
杨梦雨的博客
这个作者很懒,什么都没留下…
展开
-
左神面试算法整理--最大子串和
算法思想: 当一个数组中有一个子串它的累加和是最大的,那么它不存在一个前缀或是后缀是负数,如果存在的话,它就不是最大和,因为出去前缀或是后缀他的值会更大。因此此题的解题思路就是找有效的前缀,只要前缀是大于0的,都有可能成为最大和的一部分,当前缀小于0时,就将其舍弃,从下一位置重新开始。在寻找的过程中,用max记录前缀出现的最大值,这个最大值,也就是最大累加和值。 JAVA版原创 2017-07-27 17:14:34 · 462 阅读 · 0 评论 -
左神面试算法--哈希表
【题目】 工程师常使用服务器集群来设计和实现数据缓存,以下是常见的策略: 1.无论是添加、查询还是删除数据,都先将数据的id通过哈希函数转换成一个哈希值,记为key。 2.如果目前机器有N台,则计算key%N的值,这个值就是该数据所属的机器编号,无论是添加、删除还是查询操作,都只在这台机器上进行。 请分析这种缓存策略可能带来的问题,并提出改进的方案。 算法思想: 哈希函原创 2017-07-25 17:17:53 · 615 阅读 · 0 评论 -
左神面试算法整理--栈的逆序
算法思路: 建立两个栈,一个f,一个p。f实现找出栈中最底部的元素并返回。p利用递归和f函数,将从栈顶元素依次压入栈中实现逆序。 int f(stack a) { int result=a.top(); a.pop(); if(a.empty()) return result; else { int last=f(a); a.push(result); return原创 2017-07-27 10:56:11 · 274 阅读 · 0 评论 -
左神面试算法整理---单调栈
【题目】 小B负责首都的防卫工作。 首都处于一个四面环山的盆地中,周围的n个小山构成一个环,作为预警措施,小B计划在每个小山上设置一个观察哨,日夜不停的瞭望周围发生的情况。 一旦发生外敌入侵事件,山顶上的岗哨将点燃烽烟。 若两个岗哨所在的山峰之间的那些山峰,高度都不大于这两座山峰,且这两个山峰之间有相连通路,则岗哨可以观察到另一个山峰上的烽烟是否点燃。 由于小山处于环上,任意两个小山之间原创 2017-07-25 17:15:34 · 4473 阅读 · 0 评论