Skip to content

Commit 484b03e

Browse files
author
kwu130
committed
feat(src): add 55-canJump, 56-merge
1 parent 0551458 commit 484b03e

2 files changed

Lines changed: 98 additions & 0 deletions

File tree

‎src/55-canJump.cpp‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
//
2+
// Created by 1412 on 2025/11/3.
3+
//
4+
5+
#include <bits/stdc++.h>
6+
7+
using namespace std;
8+
9+
class Solution {
10+
public:
11+
bool canJump(vector<int>& nums) {
12+
int reach = 0;
13+
for (int i = 0; i < nums.size() && i <= reach; ++i) {
14+
reach = max(reach, i + nums[i]);
15+
if (reach >= nums.size() - 1) return true;
16+
}
17+
return false;
18+
}
19+
};
20+
21+
void test() {
22+
Solution s;
23+
vector<int> nums = {2, 3, 1, 1, 4};
24+
assert(s.canJump(nums) == true);
25+
26+
nums = {3, 2, 1, 0, 4};
27+
assert(s.canJump(nums) == false);
28+
}
29+
30+
int main() {
31+
test();
32+
return 0;
33+
}

‎src/56-merge.cpp‎

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
//
2+
// Created by 1412 on 2025/11/3.
3+
//
4+
5+
#include <bits/stdc++.h>
6+
7+
using namespace std;
8+
9+
class Solution {
10+
public:
11+
vector<vector<int>> merge(vector<vector<int>>& intervals) {
12+
ranges::sort(intervals);
13+
vector<vector<int>> res;
14+
for (const auto& interval : intervals) {
15+
if (res.empty() || res.back()[1] < interval[0]) {
16+
res.emplace_back(interval);
17+
} else {
18+
res.back()[1] = max(res.back()[1], interval[1]);
19+
}
20+
}
21+
return res;
22+
}
23+
};
24+
25+
void test() {
26+
Solution s;
27+
vector<vector<int>> intervals = {
28+
{ 1, 3},
29+
{ 2, 6},
30+
{ 8, 10},
31+
{15, 18}
32+
};
33+
vector<vector<int>> expect = {
34+
{ 1, 6},
35+
{ 8, 10},
36+
{15, 18}
37+
};
38+
vector<vector<int>> res = s.merge(intervals);
39+
assert(res == expect);
40+
41+
intervals = {
42+
{1, 4},
43+
{4, 5}
44+
};
45+
expect = {
46+
{1, 5}
47+
};
48+
res = s.merge(intervals);
49+
assert(res == expect);
50+
51+
intervals = {
52+
{4, 7},
53+
{1, 4}
54+
};
55+
expect = {
56+
{1, 7}
57+
};
58+
res = s.merge(intervals);
59+
assert(res == expect);
60+
}
61+
62+
int main() {
63+
test();
64+
return 0;
65+
}

0 commit comments

Comments
 (0)