算法进阶3-6

来源:互联网 发布:网络通信有哪些 编辑:程序博客网 时间:2024/06/07 10:02

 题目一:(改写单调栈)

给定一个矩阵,其中的值只有0和1,求内部全是1的最大的子矩 阵,返回该矩阵中有多少个1即可。


题目二:

给定一个数组,值为正、负、0。返回最大的子矩阵和


题目三:

KMP算法扩展题目二
给定一个矩阵,其中的值只有0和1,求边界全是1的最大的正方形边长。

  

题目四 :

求解斐波那契数列问题的O(logN)的解及其套路。


题目五:

产品经理有很多好的idea,这些idea需要程序员实现。现在有N个产品经理,会在某个时间点提出一个idea,每个 idea有提出的时间,完成所需时间和优先级。对于一个PM来说,最想实现的idea,首先考虑优先级高的,在优先 级相同的情况下会选择所需时间最小的,还相同的情况下选择最早提出的。没有产品经理会在同一个时刻提出两 个idea。
同时又M个程序员,每个程序员空闲时,会查看每个产品经理尚未完成并且最想完成的一个idea。然后在其中挑选 出所需时间最小的一个idea完成。如果所需时间一样,就选择产品经理序号最小的项目。完成了这个idea之后, 会重复上面的过程。如果有多个同时处于空闲状态的程序员。那么他们会依次查看idea并挑选。
请返回每个idea完成的时间。
输入: N,表示N个产品经理 M,表示M个程序员 P,表示一共有P个项目 一个P行4列的矩阵,每行代表一个项目的PM序号,提出时间,优先级,所需时间。
返回: 一个长度为P的数组,表示每个idea实现的时间点。

  


题目六:

完美洗牌问题详解及其实现与应用


题目七:

如何仅用递归函数逆序一个栈,不使用其他额外的数据结构


题目八:

给定一个字符串,求最大没有重复字符的子串长度



笔记:

1、解决矩阵问题时,先将矩阵压缩成数组,然后用成熟的数组算法求解矩阵问题。

2、辅助矩阵算任意矩阵内的和。

3、严格满足递推关系的第n个元素,时间复杂度可以优化到O(lgn)

4、快速幂运算

5、加题,输入一个n,n代表2进制的位数,求所有该位数的数字中,有多少数字满足0的左面一定是1。

6、加题,生牛问题。


原创粉丝点击