Skip to content

Commit f78380b

Browse files
committed
2345 solved.
1 parent ed1a1db commit f78380b

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
cmake_minimum_required(VERSION 3.22)
2+
project(cpp_2345)
3+
4+
set(CMAKE_CXX_STANDARD 14)
5+
6+
add_executable(cpp_2345 main.cpp)
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/// Source : https://leetcode.com/problems/finding-the-number-of-visible-mountains/
2+
/// Author : liuyubobobo
3+
/// Time : 2022-07-22
4+
5+
#include <iostream>
6+
#include <vector>
7+
#include <climits>
8+
9+
using namespace std;
10+
11+
12+
/// Points Transformation
13+
/// Time Complexity: O(nlogn)
14+
/// Space Complexity: O(n)
15+
class Solution {
16+
public:
17+
int visibleMountains(vector<vector<int>>& peaks) {
18+
19+
int n = peaks.size();
20+
21+
vector<pair<int, int>> points(n);
22+
for(int i = 0; i < n; i ++){
23+
int x = peaks[i][0], y = peaks[i][1];
24+
points[i] = {x + y, y - x};
25+
}
26+
27+
sort(points.begin(), points.end(), greater<pair<int, int>>());
28+
29+
int res = 0, ylimit = INT_MIN;
30+
for(int i = 0; i < n; i ++){
31+
int x = points[i].first, y = points[i].second;
32+
33+
if(i + 1 < n && points[i + 1] == points[i]){
34+
ylimit = max(ylimit, y);
35+
continue;
36+
}
37+
38+
if(i && x == points[i - 1].first) continue;
39+
40+
if(y > ylimit) res ++;
41+
ylimit = max(ylimit, y);
42+
}
43+
return res;
44+
}
45+
};
46+
47+
48+
int main() {
49+
50+
vector<vector<int>> peaks1 = {{2, 2}, {6, 3}, {5, 4}};
51+
cout << Solution().visibleMountains(peaks1) << '\n';
52+
// 2
53+
54+
vector<vector<int>> peaks2 = {{1, 3}, {1, 3}};
55+
cout << Solution().visibleMountains(peaks2) << '\n';
56+
// 0
57+
58+
return 0;
59+
}

readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2195,6 +2195,7 @@ email: [liuyubobobo@gmail.com](mailto:liuyubobobo@gmail.com)
21952195
| 2342 | [Max Sum of a Pair With Equal Sum of Digits](https://leetcode.com/problems/max-sum-of-a-pair-with-equal-sum-of-digits/) | [] | [C++](2001-2500/2342-Max-Sum-of-a-Pair-With-Equal-Sum-of-Digits/cpp-2342/) | | |
21962196
| 2343 | [Query Kth Smallest Trimmed Number](https://leetcode.com/problems/query-kth-smallest-trimmed-number/) | [] | [C++](2001-2500/2343-Query-Kth-Smallest-Trimmed-Number/cpp-2343/) | | |
21972197
| 2344 | [Minimum Deletions to Make Array Divisible](https://leetcode.com/problems/minimum-deletions-to-make-array-divisible/) | [] | [C++](2001-2500/2344-Minimum-Deletions-to-Make-Array-Divisible/cpp-2344/) | | |
2198+
| 2345 | [Finding the Number of Visible Mountains](https://leetcode.com/problems/finding-the-number-of-visible-mountains/) | [] | [C++](2001-2500/2345-Finding-the-Number-of-Visible-Mountains/cpp-2345/) | | |
21982199
| | | | | | |
21992200

22002201
## 力扣中文站比赛

0 commit comments

Comments
 (0)