gpt4 book ai didi

c++ - lower_bound() 返回最后一个元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:38:00 26 4
gpt4 key购买 nike

当我解决392.Is Subsequence的问题时.在 Leetcode 上。

当我使用 lower_bound() 函数时,我无法理解我想找到最后一个元素和找不到然后返回最后一个元素之间的区别。

这是我的代码:

class Solution {
public:
bool isSubsequence(string s, string t) {
vector<vector<int>> temp(26);
for (int i = 0; i < t.length(); ++i)
temp[t[i]-'a'].push_back(i);
int index = -1;
for (int i = 0; i < s.length(); ++i) {
auto it = upper_bound(temp[s[i]-'a'].begin(), temp[s[i]-'a'].end(), index);

//if the last element is we want to find what will happen?
if (it == temp[s[i]-'a'].end()) return false;
index = *it;
}
return true;
}
};

如果最后一个元素是我们要查找会发生什么?

最佳答案

end()不指向最后一个元素,它指向 beyond 最后一个元素。强调我的:

Returns an iterator to the end (i.e. the element after the last element) of the given container c or array array.

如果最后一个元素是您要查找的元素,lower_bound 将返回 end() - 1

关于c++ - lower_bound() 返回最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53150952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com