#面试题#最长等差数列
来源:互联网 发布:郑州市招聘网网络 编辑:程序博客网 时间:2024/04/29 23:44
#面试题#给定未排序的数组,请给出方法找到最长的等差数列。
分析: 想以O(n^2)的复杂度计算出任意两个位置的数字差。用hash数组存储:
比如1 3 2 4 5 的 hash统计结果为: (注意都是位置)
差为1: (1,3) (2, 4) (4, 5)
差为2: (1,2) (3, 4) (2, 5)
差为3: (1, 4) (2, 5)
差为4: (1, 5)
之后 对每一条链表 遍历,用dp数组统计最长等差数列
比如 用第一个链表举例: 初始 dp = {1, 1, 1, 1, 1}
遇到(1, 3) 则dp[3] = dp[1] + 1 dp = {1, 1, 2, 1, 1}
遇到(2, 4) 则dp[4] = dp[2] + 1 dp = {1, 1, 2, 2, 1}
遇到(4, 5) 则dp[5] = dp[4] + 1 dp = {1, 1, 2, 2, 3}
最长等差数列 即为 3。
代码如下:
- #面试题#最长等差数列
- 微软面试题4 (最长等差数列)
- 基于visual Studio2013解决面试题之1004最长等差数列
- 每日微软面试题——day 4 (最长等差数列)
- 【每日面试题】找出数组中长度>=3的最长的等差数列
- 【每日面试题】随机数构成的数组中找到长度大于=3 的最长的等差数列
- 微软面试题:求整数随机数构成的数组中找到长度大于=3的最长的等差数列
- 微软面试题:求整数随机数构成的数组中找到长度大于=3的最长的等差数列
- 微软面试题:求整数随机数构成的数组中找到长度大于=3的最长的等差数列
- 微软面试题:求整数随机数构成的数组中找到长度大于=3的最长的等差数列
- 微软面试题:求整数随机数构成的数组中找到长度大于=3的最长的等差数列
- 微软面试题:求整数随机数构成的数组中找到长度大于=3的最长的等差数列
- 最长等差数列
- 最长等差数列
- 最长等差数列
- 寻找最长等差数列
- 找出最长的等差数列
- 寻找最长等差数列
- 算法大师资料
- Oracle 默认表空间(default permanent tablespace) 说明
- 面试题20130909
- 机器学习常用工具
- 接口和开发的首发机会降临的萨芬
- #面试题#最长等差数列
- 白话经典算法
- POJ 1936
- confluence+jira+mysql 破解记录
- 深入理解C/C++数组和指针
- 并查集
- netfilter内核态与用户态 通信 之 sockopt
- 轻松搞定面试中的二叉树题目
- auto_ptr 要点解析