由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - lc里面那个max points O(n3)的算法也不慢啊
相关主题
Leetcode 新题max points on a lineElements of Programming Interviews 第16.1题答案是不是有问题?
Max Points on a Line 用c++map老是没法compile问一个之前的一道题
Max points on a linec++里 这个template的写法是什么意思?
Fibonacci 非recursion非iteration的解法是神马问一个题目merge intervals
large file的一道题请问大牛们关于Regular expression matching
不用暴力,这道题有没有优化解这个Palindrome的Check的代码还有什么可以改进的?
做了一下scramble stringSearch a 2D Matrix的两种写法,哪种更好?
wildcard string matching,谁有最简洁的非递归解法?急问F家面试一题
相关话题的讨论汇总
话题: point话题: int话题: max话题: cntp1话题: cnt
进入JobHunting版参与讨论
1 (共1页)
w********s
发帖数: 1570
1
我试过人家什么dp的算法也就比我的n3解法差不多快。
关键是这个虽然是on3,但没有除法,没有浮点,只有整数,速度不慢。
bool online(const Point& p1, const Point& p2, const Point& p3)
{
int dy1 = p2.y - p1.y;
int dy2 = p3.y - p2.y;

int dx1 = p2.x - p1.x;
int dx2 = p3.x - p2.x;

if (dy1 * dx2 == dy2 * dx1) return true;

return false;
}
int maxPoints(vector &points) {
int s = points.size();

if (s < 3) return s;

int max = 1;

for (int i = 0; i < s; ++i)
{
Point& p1 = points[i];
int cntp1 = 1;
for (int j = i + 1; j < s; ++j)
{
Point& p2 = points[j];

if ((p2.x == p1.x) && (p2.y == p1.y))
{
cntp1++;
continue;
}
int cnt = cntp1 + 1;
if (cnt > max) max = cnt;

for (int k = j + 1; k < s; ++k)
{
Point& p3 = points[k];
if (online(p1, p2, p3)) cnt++;
if (cnt > max) max = cnt;
}
}

if (cntp1 > max) max = cntp1;

}

return max;
}
p***e
发帖数: 111
2
这道题还能用dp? 用排序是nlogn, 用dp有线性的解法?

【在 w********s 的大作中提到】
: 我试过人家什么dp的算法也就比我的n3解法差不多快。
: 关键是这个虽然是on3,但没有除法,没有浮点,只有整数,速度不慢。
: bool online(const Point& p1, const Point& p2, const Point& p3)
: {
: int dy1 = p2.y - p1.y;
: int dy2 = p3.y - p2.y;
:
: int dx1 = p2.x - p1.x;
: int dx2 = p3.x - p2.x;
:

w********s
发帖数: 1570
3
没有线性解法,dp还是n^2的,但比n^3看上去好,但实际上也不快。
hashmap和浮点都是要花不少时间的。

【在 p***e 的大作中提到】
: 这道题还能用dp? 用排序是nlogn, 用dp有线性的解法?
w********s
发帖数: 1570
4
排序是n^2logn

【在 p***e 的大作中提到】
: 这道题还能用dp? 用排序是nlogn, 用dp有线性的解法?
p***e
发帖数: 111
5
谢谢指出. 我记错了。

【在 w********s 的大作中提到】
: 排序是n^2logn
1 (共1页)
进入JobHunting版参与讨论
相关主题
急问F家面试一题large file的一道题
问个Zenefits电面题目,他家好难。。。不用暴力,这道题有没有优化解
Regular expression matching 在什么输入下时间复杂度是O(2^n)?做了一下scramble string
请教一个leetcode上的题wildcard string matching,谁有最简洁的非递归解法?
Leetcode 新题max points on a lineElements of Programming Interviews 第16.1题答案是不是有问题?
Max Points on a Line 用c++map老是没法compile问一个之前的一道题
Max points on a linec++里 这个template的写法是什么意思?
Fibonacci 非recursion非iteration的解法是神马问一个题目merge intervals
相关话题的讨论汇总
话题: point话题: int话题: max话题: cntp1话题: cnt