![](https://i-blog.csdnimg.cn/direct/aa05f12104c24e58915c825288a991f4.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
leetcode
文章平均质量分 74
leetcode题解
wh233z
努力学习in……
展开
-
无重复字符的最长子串(leetcode)
如果我们用两重循环去遍历字符串,显然会超时,因此我们可以考虑用滑动窗口的思想做这道题,先定义两个指针l和r以及unordered_set(哈希表)用于存储出现过的字符,遍历字符串,若该字符未出现过,则r指针右移,当前字符进入哈希表,若出现过则比较l到r的距离(即r-l),然后在哈希表里将窗口的头元素删去,让l指针右移,最后输出最大的距离。如题,给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。原创 2024-07-18 15:19:10 · 200 阅读 · 0 评论 -
哈希表(知识点+leetcode)以及字符串哈希
哈希表是散列表,就是通过关键码值而直接进行访问的一种数据结构哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素其内部由一个个key:value 样式的键值对组成。哈希表中的key通过哈希函数得到内存地址,然后将key和value放到对应的内存地址,从而实现通过key获取Value的方式哈希碰撞:2个不同的key通过哈希函数(hash function)得到了相同的内存地址,也就是是内存地址已经被一个占用了,解决方法是将其中之一变为链表结构,使用next指向。原创 2024-07-16 19:49:28 · 1670 阅读 · 0 评论 -
c++数据结构——栈
由于题目求的是下一个更大元素,因此我们可以考虑用栈来模拟最大的元素,倒着遍历nums2,判断当前元素是否比栈顶元素大,满足则删去栈顶元素,直到不能删为止,判断栈是否为空,若为空则说明当前元素是最大的,我们可以标记当前元素为-1,不为空则标记当前元素为栈顶元素(栈顶元素大于当前元素),最后从头遍历nums1即可。用栈模拟一遍,将所有无法匹配的括号的位置全部置1,经过这样的处理后, 此题就变成了寻找最长的连续0的长度。(后进先出的叫法,也是可以的):栈的插入操作,叫做进栈,也称压栈、入栈。原创 2024-07-18 11:15:35 · 467 阅读 · 0 评论