Skip to content

Commit 5842da2

Browse files
committed
Add C++ solution for leetcode 335.
1 parent 34e9f2e commit 5842da2

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#include<vector>
2+
#include<algorithm>
3+
#include<iostream>
4+
using namespace std;
5+
6+
class Solution {
7+
public:
8+
bool isSelfCrossing(vector<int>& A) {
9+
const int N = A.size();
10+
if (N <= 3) return false;
11+
for (int i = 3; i < N; i++)
12+
{
13+
// case1: 4步之内有交点
14+
if (A[i-1] <= A[i-3] && A[i] >= A[i-2])
15+
return true;
16+
// case 2: 5步之内有交点
17+
if (i >= 4 && A[i-3] == A[i-1] && A[i] + A[i-4] >= A[i-2])
18+
return true;
19+
// case 3: 6步之内有交点
20+
if (i >= 5 && A[i-3] >= A[i-1] && A[i-1] + A[i-5] >= A[i-3] && A[i-2] >= A[i-4] && A[i-4] + A[i] >= A[i-2])
21+
return true;
22+
}
23+
return false;
24+
}
25+
};
26+
27+
// Test
28+
int main()
29+
{
30+
Solution sol;
31+
vector<int> nums = {2,1,1,2};
32+
auto res = sol.isSelfCrossing(nums);
33+
cout << (res ? "True" : "False") << endl;
34+
35+
return 0;
36+
}

0 commit comments

Comments
 (0)