• 【代码随想录】二叉树1-遍历

    二叉树概念满二叉树和完全二叉树 二叉搜索树二叉搜索树是一个有序树。 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树 平衡二叉搜索...
  • 【代码随想录】栈和队列3-队列的应用

    239. 滑动窗口最大值 link 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值 。 思路滑动窗口就是一个队列...
  • 【代码随想录】栈和队列2-栈的应用

    20. 有效的括号 link 给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类...
  • 【代码随想录】栈和队列1-基础理论

    基础知识队列是先进先出,栈是先进后出 栈提供 push 和 pop 等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。 不像是 set 或者 map 提供迭代器 iterator 来遍历所有元素。 栈是...
  • 【代码随想录】双指针法

    数组移除元素 移除元素 在数组中原地移除元素,使用双指针,一个指向遍历的位置,一个指向删除后数组的长度 字符串反转字符串 反转字符串 两个指针分别从头和尾向中间遍历,相互交换字符 替换数字 替换数字 类似于移除元素,两个指针分别代表替换后字符串...
  • 【代码随想录】字符串2-KMP算法

    KMP 算法KMP有什么用KMP的经典思想就是:当出现字符串不匹配时,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配。所以如何记录已经匹配的文本内容,是KMP的重点,也是next数组肩负的重任。 next数组就是一个前缀表(pr...
  • 【代码随想录】字符串1

    344. 反转字符串 link 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入:s ...
  • 【代码随想录】哈希表2

    383. 赎金信 link 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符...
  • 【代码随想录】哈希表2

    349. 两个数组的交集 题目链接 link 给定两个数组 nums1 和 nums2 ,返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 思路 1将两个 list 转换为 set(确保一个数字在一个 ...
  • 【代码随想录】哈希表1

    Python 哈希表相关操作哈希表都是用来快速判断一个元素是否出现集合里。例如要查询一个名字是否在这所学校里。要枚举的话时间复杂度是O(n),但如果使用哈希表的话, 只需要O(1)就可以做到。 listdictdefaultdict 和 Counte...
/7