#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 行定义.
7572 {
7574 unordered_map<int, vector<int>> um;
7575 for(int i = 0; i < colors.size(); i++) {
7576 um[colors[i]].emplace_back(i);
7577 }
7578 for(auto &[k, vec]: um) {
7579 sort(
vec.begin(),
vec.end());
7580 }
7581 for(auto &query: queries) {
7582 int &i = query[0];
7583 int &c = query[1];
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));
7593 } else {
7594 ans.emplace_back(min(abs(*l - i), abs(*g - i)));
7595 }
7596 }
7598 }
vector< vector< int > > ans
被这些函数引用 leetcode::shortest_distance_to_target_color::TEST() , 以及 leetcode::shortest_distance_to_target_color::TEST().
该类的文档由以下文件生成: