Skip to content

Commit 791754e

Browse files
author
kaidul
committed
Facebook phone interview tomorrow
1 parent 2802d39 commit 791754e

5 files changed

+36
-18
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class Solution {
2+
public:
3+
int maxProfit(vector<int>& prices, int fee) {
4+
int n = (int)prices.size();
5+
if(n == 0) return 0;
6+
vector<int> buy(n), sell(n), hold(n), skip(n);
7+
8+
buy[0] = -prices[0];
9+
hold[0] = -prices[0];
10+
sell[0] = skip[0] = 0;
11+
12+
for(int i = 1; i < n; i++) {
13+
buy[i] = max(skip[i - 1], sell[i - 1]) - prices[i];
14+
skip[i] = max(skip[i - 1], sell[i - 1]);
15+
hold[i] = max(hold[i - 1], buy[i - 1]);
16+
sell[i] = max(hold[i - 1], buy[i - 1]) + prices[i] - fee;
17+
}
18+
19+
return max(buy[n - 1], max(skip[n - 1], max(hold[n - 1], sell[n - 1])));
20+
}
21+
};

Diff for: source-code/Graph_Valid_Tree.cpp

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
class Solution {
22
public:
3-
bool hasCycle(int parent, int node, vector<vector<int> >& adj, vector<bool>& visited) {
3+
bool isTree(int parent, int node, vector<vector<int> >& adj, vector<bool>& visited) {
44
visited[node] = true;
5-
bool ret = true;
65
for(int i = 0; i < (int) adj[node].size(); ++i) {
76
if(adj[node][i] != parent) {
87
int child = adj[node][i];
98
if(visited[child]) {
109
return false;
1110
}
12-
ret &= hasCycle(node, child, adj, visited);
11+
if(!isTree(node, child, adj, visited)) {
12+
return false;
13+
}
1314
}
1415
}
15-
return ret;
16+
return true;
1617
}
1718

1819
bool validTree(int n, vector<pair<int, int>>& edges) {
@@ -24,13 +25,13 @@ class Solution {
2425
adj[v].push_back(u);
2526
}
2627
vector<bool> visited(n, false);
27-
bool isTree = hasCycle(-1, 0, adj, visited);
28+
bool isValidTree = isTree(-1, 0, adj, visited);
2829

29-
if(isTree) for(int i = 0; i < n; ++i) {
30+
if(isValidTree) for(int i = 0; i < n; ++i) {
3031
if(!visited[i]) {
3132
return false;
3233
}
3334
}
34-
return isTree;
35+
return isValidTree;
3536
}
3637
};

Diff for: source-code/H-Index.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ class Solution {
55
int hIndx = 0;
66
for(int i = 0; i < citations.size(); ++i) {
77
if(citations[i] < i + 1) break;
8-
hIndx = max(hIndx, i + 1);
8+
hIndx = i + 1;
99
}
1010
return hIndx;
1111
}
12-
};
12+
};

Diff for: source-code/H-Indx_II.cpp renamed to source-code/H-Index_II.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class Solution {
1414
if(citations[mid] < n - mid) {
1515
left = mid + 1;
1616
} else {
17-
hIndx = max(hIndx, n - mid);
17+
hIndx = n - mid;
1818
right = mid;
1919
}
2020
}
@@ -30,9 +30,9 @@ class Solution {
3030
int n = citations.size();
3131
for(int i = n - 1; i >= 0; --i) {
3232
if(citations[i] < n - i) break;
33-
hIndx = max(hIndx, n - i);
33+
hIndx = n - i;
3434
}
3535
return hIndx;
3636
}
3737
};
38-
*/
38+
*/

Diff for: source-code/Integer_to_English_Words.cpp

+2-6
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,6 @@ class Solution {
7575
process(r, result);
7676
}
7777

78-
if(result[(int)result.length() - 1] == ' ') {
79-
result.erase((int)result.length() - 1, 1);
80-
}
81-
82-
return result;
78+
return result.erase((int)result.length() - 1, 1);
8379
}
84-
};
80+
};

0 commit comments

Comments
 (0)