lower_bound()返回最后一个元素
lower_bound() return the last element
当我解决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()
不指向最后一个元素,而是指向最后元素之外的。重点矿:
在给定容器c或数组的末尾(即最后一个元素之后的元素(返回迭代器。
如果最后一个元素是您想要查找的,lower_bound
将返回end() - 1
相关文章:
- lower_bound()返回最后一个元素
- 获取向量C++中第一个值和最后一个值的和
- 获取用C/C++打印的最后一个字符串
- 使用运算符 [] 引用 std::vector 上最后一个元素时出现问题<>
- 为什么这个程序返回最后一个单词而不是最长的单词?
- 为什么我的最后一个 ELSE 条件无法正确执行
- Lower_bound不适用于具有 3 个元素的向量的最后一个元素
- 反转后不返回最后一个元素
- "如何使用C++将字符串的第一个和最后一个索引返回到向量中?
- 返回C++中没有 back() 方法的容器的最后一个元素?
- C 是否有办法仅返回for循环的最后一个实例
- 我是否应该将最后一个“返回”语句封装为“else { return .. }',如果它在逻辑上是可选的
- 迭代器返回最后一个元素上的"Junk"
- 从end()函数返回的迭代器中获取BST的最后一个节点
- 如何使用递归返回单链表中的第n个最后一个元素
- 为什么 ifstream 返回输入文件的最后一个值两次
- 指向vector的指针只返回vector的最后一个值
- 数组只返回最后一个元素.[C / Arduino]
- 当插入符号在最后一个位置时,EM_POSFROMCHAR没有返回正确的值
- 递归返回链表中的最后一个节点