#include <leetcode.h>
◆ shortestDistanceColor()
vector< int > leetcode::shortest_distance_to_target_color::Solution::shortestDistanceColor |
( |
vector< int > & |
colors, |
|
|
vector< vector< int > > & |
queries |
|
) |
| |
|
static |
在文件 leetcode.cpp 第 7572 行定义.
7574 unordered_map<int, vector<int>> um;
7575 for(
int i = 0; i < colors.size(); i++) {
7576 um[colors[i]].emplace_back(i);
7578 for(
auto &[k,
vec]: um) {
7579 sort(
vec.begin(),
vec.end());
7581 for(
auto &query: queries) {
7584 vector<int> &
vec = um[c];
7585 auto g = lower_bound(
vec.begin(),
vec.end(), i, less());
7586 auto l = lower_bound(
vec.rbegin(),
vec.rend(), i, greater());
7587 if(g ==
vec.end() && l ==
vec.rend()) {
7588 ans.emplace_back(-1);
7589 }
else if(g ==
vec.end()) {
7590 ans.emplace_back(abs(*l - i));
7591 }
else if(l ==
vec.rend()) {
7592 ans.emplace_back(abs(*g - i));
7594 ans.emplace_back(min(abs(*l - i), abs(*g - i)));
引用了 pat::a::a7_2::vec.
被这些函数引用 leetcode::shortest_distance_to_target_color::TEST().
该类的文档由以下文件生成: