拓扑 前缀 线性leetcode

【LeetCode剑指offer 02】矩阵中的路径(老鼠走迷宫plus,应用深度优先搜索与回溯机制)

矩阵中的路径 https://leetcode.cn/problems/ju-zhen-zhong-de-lu-jing-lcof/ 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照 ......
矩阵 迷宫 路径 深度 LeetCode

【LeetCode剑指offer 01】数组中重复的数字、两个栈实现队列

数组中重复的数字 数组中重复的数字 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, ......
队列 数组 LeetCode 两个 数字

Leetcode(剑指offer专项训练)——DP专项(7)

矩阵中的距离 题目: 给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 链接 TLS思路题解 暴力DFS的结果是超时😢,就是找每个位置的距离它最近的零点的位置 class Solu ......
专项 Leetcode offer

用前缀树实现中文敏感词过滤器

前言 本文代码实现一个中文的敏感词过滤器,预先将准备好的敏感词写入前缀树数据结构中实现快速检索,并且节省内存。一般用于检查注册用户名称、言论是否包含不文明的词汇。 可以判断内容是否包含敏感词;找出内容中的敏感词;将内容中的敏感词替换成设置的字符。 运行环境 代码使用了JDK8语法,以及测试框架Jup ......
前缀 过滤器

LeetCode 81. 搜索旋转排序数组 II

1 class Solution { public: bool search(vector<int>& nums, int target) { int index = -1; for (int i = 0; i < nums.size() - 1; ++i){ if (nums[i] > nums[ ......
数组 LeetCode 81 II

LeetCode 力扣 205. 同构字符串

给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。 示例 1: 输入 ......
字符串 字符 LeetCode 205

[LeetCode] 1339. Maximum Product of Splitted Binary Tree 分裂二叉树的最大乘积

Given the root of a binary tree, split the binary tree into two subtrees by removing one edge such that the product of the sums of the subtrees is max ......
乘积 LeetCode Splitted Maximum Product

非线性优化理论(求极小值)

梯度下降法 迭代条件: 梯度下降法的缺点: 初值的确定影响着迭代的快慢。 步长过小可能要好多步才能到达极小值 步长过大或则算法多次迭代后,可能导致在两个值之间反复振荡,收敛速度较慢 可以迭代的前期使用梯度下降法 牛顿法 迭代条件 证明: 牛顿法相对于梯度下降法 函数在较陡的地方梯度变化就会比较快,这 ......
非线性 理论

[LeetCode] 2405. Optimal Partition of String

Given a string s, partition the string into one or more substrings such that the characters in each substring are unique. That is, no letter appears i ......
Partition LeetCode Optimal String 2405

[算法] 线性筛

我搞了一个下午和一个晚上,网上的博客、视频讲得不清不楚,真的感觉很难!!!下面是自己的理解,不保证没问题! 以下代码按照该题来写:模板题:204. 计数质数。 埃氏筛算法中,同一个合数会被多个质数标记(例如 45 这个数,它会同时被 3,5 两个数标记为合数),线性筛则保证每个合数只会被其最小质数因 ......
线性 算法

【LeetCode排序专题02】最小k个数,关于快速排序的讨论

最小k个数 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例 2: 输入:arr = [0,1,2,1], k ......
个数 LeetCode 专题

代码随想录Day20-Leetcode654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树

654.最大二叉树 题目链接:https://leetcode.cn/problems/maximum-binary-tree/ 基本的模拟思路很快 /** * Definition for a binary tree node. * function TreeNode(val, left, rig ......
随想录 随想 Leetcode 代码 Day

滑动窗口-leetcode344-反转字符出啊

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入:s = ["h","e","l","l","o"] 输出:["o","l","l","e","h" ......
字符 leetcode 344

滑动窗口-leetcode-167-俩树之和

以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。 你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。 你所设计的解决方案必须只使用常量级的额外空间。 示例 1: 输入:numbers = [2,7,11 ......
之和 leetcode 167

快慢指针-leetcode27移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 说明: 为什么返回数值是整数,但输出的 ......
快慢 指针 leetcode 元素 27

快慢指针-leetcode-26

题目描述: 给定一个已经排序好的数组,删除重复的元素,使每个元素只出现一次,并返回新的数组长度。 不要为另一个数组分配额外的空间,必须采用 O(1) 额外内存复杂度的原地算法来解决这个问题。 示例 1: 输入: nums = [1, 1, 2] 输出: length=2, nums=[1,2] 解释 ......
快慢 指针 leetcode 26

MCMC的rstan贝叶斯回归模型和标准线性回归模型比较|附代码数据

原文链接:http://tecdat.cn/?p=25453 最近我们被客户要求撰写关于贝叶斯回归的研究报告,包括一些图形和统计输出。 现在有了对贝叶斯方法的概念理解,我们将实际研究使用它的回归模型 为了简单起见,我们从回归的标准线性模型开始。然后添加对采样分布或先验的更改。我们将通过 R 和相关的 ......
模型 线性 代码 标准 数据

【LeetCode排序专题01】由旋转数组的最小数字引出的关于排序算法的讨论(冒泡排序、二分查找+暴力法)

旋转数组的最小数字 剑指 Offer 11. 旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1 ......
数组 算法 暴力 LeetCode 数字

线性DP+区间DP复习

线性dp 即递推状态转移方程有明显的线性关系,可能是1维线性,可能是2维线性,等等 如数字三角形:https://www.acwing.com/problem/content/900/ 首先考虑状态表示和状态计算 给图一个编号,如图,7为(4,2) 状态表示: f[i][j]表示所有从起点,走到i, ......
区间 线性 DP

[Leetcode Weekly Contest]339

链接:LeetCode [Leetcode]2609. 最长平衡子字符串 给你一个仅由 0 和 1 组成的二进制字符串 s 。 如果子字符串中 所有的 0 都在 1 之前 且其中 0 的数量等于 1 的数量,则认为 s 的这个子字符串是平衡子字符串。请注意,空子字符串也视作平衡子字符串。 返回 s ......
Leetcode Contest Weekly 339

前缀和

[acwing]4405 .统计子矩阵 #include <cstdio> using namespace std; typedef long long LL; const int N = 510; int n, m, k; int s[N][N]; LL res; int main() { sca ......
前缀

「动态规划」LeetCode 70(爬楼梯)

Leetcode 70 题 有人问我:烤冷面你这两周怎么总搞简单题?我想说:一步一步来~ 题干简述 给定: 假设你正在爬楼梯,需要爬 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。 要求:计算出有多少种爬楼梯的方式。 解题思路 如果我们缩小视野(把大问题化为小问题),爬到第 n 阶台阶有 ......
楼梯 LeetCode 动态 70

刷爆 LeetCode 周赛 339,贪心 / 排序 / 拓扑排序 / 平衡二叉树

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 大家好,我是小彭。 上周末是 LeetCode 第 339 场周赛,你参加了吗?这场周赛覆盖的知识点比较少,前三题很简单,第四题上难度。 周赛大纲 2609. 最长平衡子字符串(Easy) 模拟:$O(n)$ ......
拓扑 LeetCode 339

拓扑排序

拓扑排序 前言 拓扑排序是一种图论算法,拓扑图被简称为 $\text{DAG}$(有向无环图)。 下面来说说拓扑序的定义吧:对于一个有向图 $G$,拓扑序是关于这个图的一个线性序列,这个序列满足当 $<u,v> \in G$ 且 $u \to v$ 时,$u$ 在 $v$ 的前面。这里解释的可能比较 ......
拓扑

LeetCode 145 二叉树的后序遍历

LeetCode | 145.二叉树的后序遍历 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 示例 1: 1 \ 2 / 3 输入:root = [1,null,2,3] 输出:[3,2,1] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1 ......
LeetCode 145

【贪心】LeetCode 45. 跳跃游戏 II

题目链接 45. 跳跃游戏 II 思路 如果某一个作为 起跳点 的格子可以跳跃的距离是 3,那么表示后面 3 个格子都可以作为 起跳点。 11. 可以对每一个能作为 起跳点 的格子都尝试跳一次,把 能跳到最远的距离 不断更新。 如果从这个 起跳点 起跳叫做第 1 次 跳跃,那么从后面 3 个格子起跳 ......
LeetCode 45 II

反转链表hard-leetcode25

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换 思路: 每k个节点翻转一次,相当于确定左右 ......
hard-leetcode leetcode hard 25

【贪心】LeetCode 55. 跳跃游戏

题目链接 55. 跳跃游戏 思路 如果某一个作为 起跳点 的格子可以跳跃的距离是 3,那么表示后面 3 个格子都可以作为 起跳点。可以对每一个能作为 起跳点 的格子都尝试跳一次,把能跳到最远的距离 不断更新。如果可以一直跳到最后,就成功了。 代码 class Solution { public bo ......
LeetCode 55

【DP】LeetCode 256. 粉刷房子

题目链接 256. 粉刷房子 假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n ......
LeetCode 房子 256

Leetcode刷题--最长回文子串/dp = [[False] * n for _ in range(n)]

官方动态规划解决最长回文串问题代码解释: class Solution: def longestPalindrome(self, s: str) -> str: n = len(s) #字符串的总长度 if n < 2: return s #如果字符串长度为1,则s本身就是最长回文串 max_len ......
回文 Leetcode False range for