刷题
文章平均质量分 55
qq_42725437
这个作者很懒,什么都没留下…
展开
-
树状数组笔记
对于区间修改的话,我们只需要对差分数组进行操作即可,例如对区间[L,R]+k,那么我们只需要更新差分数组add(L,k),add(R+1,-k),这是差分数组的性质.对于单点查询操作,求出b数组的前缀和即可,因为a[x]=差分数组b[1]+b[2]+…+b[x]的前缀和,这是差分数组的性质之一.找到当前节点的父亲节点:i += i&(-i),修改数组的值。查询在区间[1, i]的加和。原创 2024-03-04 16:03:08 · 259 阅读 · 0 评论 -
【刷题】前缀树
boolean startsWith(String prefix) 如果之前已经插入的字符串 word 的前缀之一为 prefix ,返回 true;Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);原创 2023-12-25 17:11:30 · 427 阅读 · 0 评论 -
【刷图】最短路径算法
a) 初始化:D[u,v]=A[u,v]c) 算法结束:D即为所有点对的最短路径矩阵。原创 2023-12-25 16:36:15 · 506 阅读 · 0 评论 -
【刷题】优先队列(最小堆)
与sort使用方式不同。原创 2023-12-10 23:25:05 · 33 阅读 · 0 评论 -
【刷题】位运算
2n1 << n判断某一位是否为1s & 1 << k将上面两个组合,可以得到判断一个集合中哪些内容包含,遍历所有情况。原创 2023-12-10 01:24:34 · 39 阅读 · 0 评论 -
【刷题】Modular Multiplicative Inverse 模逆元
整数a的模逆元是满足a⋅x模一个模数m等于1。也就是找到一个数xa⋅x≡1mod m.也可以把x表示为a−1需要注意模逆并不是总是存在。例如,m4a2,通过检查m的所有余数,可以很清楚地知道不能找到满足上面等式的a−1。当且仅当m和a互质的时候,模逆是存在的。下面是模拟存在时候找到它们的两种方法,还有一种方法是在线性时间内找到所有数的模逆。原创 2023-12-03 23:36:35 · 78 阅读 · 0 评论 -
【刷题】双指针
返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “”。解释:最小覆盖子串 “BANC” 包含来自字符串 t 的 ‘A’、‘B’ 和 ‘C’。对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。输入:s = “ADOBECODEBANC”, t = “ABC”解释: t 中两个字符 ‘a’ 均应包含在 s 的子串中,输入: s = “a”, t = “aa”输入:s = “a”, t = “a”原创 2023-11-29 23:51:12 · 52 阅读 · 0 评论 -
【刷题】DFS
给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。输入: [1,2,3,null,5,null,4]输入: [1,null,3]输出: [1,3,4]原创 2023-11-29 22:36:51 · 242 阅读 · 0 评论 -
【刷题】链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]链表中节点的数目范围是 [0, 5000]输入:head = [1,2]输出:[5,4,3,2,1]输入:head = []原创 2023-11-29 19:47:10 · 59 阅读 · 0 评论 -
【刷题】动态规划
输入: s = “catsandog”, wordDict = [“cats”, “dog”, “sand”, “and”, “cat”]解释: 返回 true 因为 “applepenapple” 可以由 “apple” “pen” “apple” 拼接成。请你判断是否可以利用字典中出现的单词拼接出 s。输入: s = “applepenapple”, wordDict = [“apple”, “pen”]输入: s = “leetcode”, wordDict = [“leet”, “code”]原创 2023-11-29 19:38:32 · 76 阅读 · 0 评论 -
【刷题】 哈希表
某套连招动作记作仅由小写字母组成的序列 arr,其中 arr[i] 第 i 个招式的名字。请返回第一个只出现一次的招式名称,如不存在请返回空格。输入:arr = “abbccdeff”输入:arr = “ccdd”原创 2023-11-29 19:17:29 · 54 阅读 · 0 评论 -
【刷题】其他
例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。而 arr = [3,2,1] 的下一个排列是 [1,2,3] ,因为 [3,2,1] 不存在一个字典序更大的排列。类似地,arr = [2,3,1] 的下一个排列是 [3,1,2]。例如,arr = [1,2,3] 的下一个排列是 [1,3,2]。输入:nums = [1,2,3]输入:nums = [3,2,1]输出:[1,3,2]输出:[1,2,3]原创 2023-11-29 19:11:59 · 47 阅读 · 0 评论 -
【刷题】二分查找
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。给你一个非负整数 x ,计算并返回 x 的 算术平方根。原创 2023-11-29 18:58:15 · 106 阅读 · 0 评论 -
【刷题】栈
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。每个右括号都有一个对应的相同类型的左括号。左括号必须用相同类型的右括号闭合。输入:s = “()[]{}”左括号必须以正确的顺序闭合。输入:s = “()”输入:s = “(]”原创 2023-11-29 18:32:39 · 34 阅读 · 0 评论 -
【刷题】树的遍历
层序遍历需要用到广度有限搜索,也就是需要队列1.将根节点加入队列、2.如果队列不为空,就得到队列的长度,对队列中现有的元素进行访问并从队列中删除,并将其子节点加入到队列中。原创 2023-11-29 18:23:49 · 36 阅读 · 0 评论 -
【刷题】快速排序
1.将第一个元素作为pivot(为了防止顺序数组,随机选择一个换到第一个)2.定义左右各一个指针3.移动右指针,使得指针右边的element都大于pivot,同样使得左指针左边的element都小于pivot,直到两个指针指向同一个位置4.交换pivot与当前指针指向的位置5.为提防全部相同的数组,排除掉当前左右与当前pivot相同的element,不纳入考虑。6.分别对左右两个数组进行快排。原创 2023-11-29 14:16:23 · 38 阅读 · 0 评论