Rrui的Leetcode刷題筆記(七)
阿新 • • 發佈:2018-12-21
388. 檔案的最長絕對路徑
class Solution { public: int lengthLongestPath(string input) { int res = 0, n = input.size(), level = 0; unordered_map<int, int> m {{0, 0}}; for (int i = 0; i < n; ++i) { int start = i; while (i < n && input[i] != '\n' && input[i] != '\t') ++i; if (i >= n || input[i] == '\n') { string t = input.substr(start, i - start); if (t.find('.') != string::npos) { res = max(res, m[level] + (int)t.size()); } else { ++level; m[level] = m[level - 1] + (int)t.size() + 1; } level = 0; } else { ++level; } } return res; } };
447. 迴旋鏢的數量
class Solution { public: int numberOfBoomerangs(vector<pair<int, int>>& points) { int res = 0; for (int i = 0; i < points.size(); ++i) { unordered_map<int, int> m; for (int j = 0; j < points.size(); ++j) { int a = points[i].first - points[j].first; int b = points[i].second - points[j].second; ++m[a * a + b * b]; } for (auto it = m.begin(); it != m.end(); ++it) { res += it->second * (it->second - 1); } } return res; } };