Skip to content

Commit e5650c7

Browse files
committed
6 problems solved.
1 parent 313ffaf commit e5650c7

File tree

6 files changed

+184
-0
lines changed

6 files changed

+184
-0
lines changed

src/1037.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
bool isBoomerang(vector<vector<int>>& points) {
2+
if (points[0] == points[1] || points[0] == points[2] || points[1] == points[2])
3+
return false;
4+
if (points[0][0] == points[1][0])
5+
return points[0][0] != points[2][0];
6+
else if (points[0][1] == points[1][1])
7+
return points[0][1] != points[2][1];
8+
else
9+
return (points[1][1]-points[0][1])*(points[2][0]-points[1][0]) !=
10+
(points[2][1]-points[1][1])*(points[1][0]-points[0][0]);
11+
}

src/1128.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
int numEquivDominoPairs(vector<vector<int>>& dominoes) {
2+
int len = dominoes.size();
3+
if (len == 1)
4+
return 0;
5+
vector<vector<int>> vec(9, vector<int>(9, 0));
6+
for (int i = 0; i < len; ++i)
7+
{
8+
int r = dominoes[i][0];
9+
int c = dominoes[i][1];
10+
if (r > c)
11+
{
12+
int t = r;
13+
r = c;
14+
c = t;
15+
}
16+
vec[r-1][c-1]++;
17+
}
18+
19+
int res = 0;
20+
for (int i = 0; i < 9; ++i)
21+
{
22+
for (int j = i; j < 9; ++j)
23+
if (vec[i][j] != 0)
24+
res += vec[i][j]*(vec[i][j]-1)/2;
25+
}
26+
27+
return res;
28+
}

src/1154.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
int dayOfYear(string date) {
2+
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
3+
4+
int num = 0;
5+
if (date[5] == '0')
6+
num = date[6]-'0'-1;
7+
else
8+
num = date[6]-'0'+9;
9+
int ct = 0;
10+
for (int i = 0; i < num; ++i)
11+
ct += days[i];
12+
ct += (date[8]-'0')*10 + (date[9]-'0');
13+
14+
int year = atoi(date.substr(0,4).c_str());
15+
if (num >= 2 && ((year%4 == 0 && year%100 != 0) || year%400 == 0))
16+
++ct;
17+
18+
return ct;
19+
}

src/1184.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
int distanceBetweenBusStops(vector<int>& distance, int start, int destination) {
2+
int len = distance.size();
3+
if (len == 1 || start == destination)
4+
return 0;
5+
if (start > destination)
6+
{
7+
int t = start;
8+
start = destination;
9+
destination = t;
10+
}
11+
12+
int dist = 0, sum = 0;
13+
for (int i = 0; i < len; ++i)
14+
{
15+
sum += distance[i];
16+
if (i >= start && i < destination)
17+
dist += distance[i];
18+
}
19+
20+
sum -= dist;
21+
return dist < sum ? dist : sum;
22+
}

src/1232.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
bool checkStraightLine(vector<vector<int>>& coordinates) {
2+
int len = coordinates.size();
3+
if (len == 2)
4+
return true;
5+
6+
int dx = coordinates[1][0]-coordinates[0][0], dy = coordinates[1][1]-coordinates[0][1];
7+
if (dx == 0)
8+
{
9+
for (int i = 2; i < len; ++i)
10+
if (coordinates[i][0] != coordinates[0][0])
11+
return false;
12+
return true;
13+
}
14+
else if (dy == 0)
15+
{
16+
for (int i = 2; i < len; ++i)
17+
if (coordinates[i][1] != coordinates[0][1])
18+
return false;
19+
return true;
20+
}
21+
else
22+
{
23+
for (int i = 2; i < len; ++i)
24+
{
25+
int dy1 = coordinates[1][1]-coordinates[0][1];
26+
int dx2 = coordinates[i][0]-coordinates[1][0];
27+
int dy2 = coordinates[i][1]-coordinates[1][1];
28+
int dx1 = coordinates[1][0]-coordinates[0][0];
29+
if (dy1*dx2 != dy2*dx1)
30+
return false;
31+
}
32+
33+
return true;
34+
}
35+
}

src/594.cpp

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
int findLHS(vector<int>& nums) {
2+
int len = nums.size();
3+
if (len <= 1)
4+
return 0;
5+
6+
sort(nums.begin(), nums.end());
7+
int a = nums[0], b = nums[1];
8+
int maxlen = 0;
9+
int sublen = (b-a == 1) ? 2 : 0;
10+
int i = 2;
11+
int p = -1, q = -1;
12+
if (sublen == 2)
13+
{
14+
p = 0;
15+
q = 1;
16+
}
17+
while (i < len)
18+
{
19+
if (sublen != 0)
20+
{
21+
if (nums[i] == nums[i-1])
22+
{
23+
++sublen;
24+
q = i;
25+
}
26+
else
27+
{
28+
if (nums[i]-nums[i-1] == 1)
29+
{
30+
int j = i-1;
31+
while (j >= 0 && nums[j] == nums[i-1])
32+
--j;
33+
p = j+1;
34+
q = i;
35+
if (sublen > maxlen)
36+
maxlen = sublen;
37+
sublen = i-j;
38+
}
39+
else
40+
{
41+
p = -1;
42+
q = -1;
43+
if (sublen > maxlen)
44+
maxlen = sublen;
45+
sublen = 0;
46+
}
47+
}
48+
}
49+
else
50+
{
51+
if (nums[i]-nums[i-1] == 1)
52+
{
53+
int j = i-1;
54+
while (j >= 0 && nums[j] == nums[i-1])
55+
--j;
56+
p = j+1;
57+
q = i;
58+
if (sublen > maxlen)
59+
maxlen = sublen;
60+
sublen = i-j;
61+
}
62+
}
63+
++i;
64+
}
65+
66+
if (sublen > maxlen)
67+
maxlen = sublen;
68+
return maxlen;
69+
}

0 commit comments

Comments
 (0)