括号leetcode dfs

[Leetcode] 0058. 最后一个单词的长度

58. 最后一个单词的长度 题目描述 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 1: 输入:s = "Hello World" 输出:5 解释:最后一个单词是“World”, ......
单词 长度 Leetcode 0058

力扣22.括号生成(回溯)

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 示例 2: 输入:n = 1 输出:["()"] 提示: 1 <= n < ......
括号 22

[Leetcode] 0035. 搜索插入位置

35. 搜索插入位置 题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums = [1,3,5,6], target = 5 输出: 2 示例 ......
Leetcode 位置 0035

[Leetcode] 0027. 移除元素

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

[Leetcode] 0027. 移除元素

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

leetcode200 岛屿数量

链接 https://leetcode.cn/problems/number-of-islands/description/ 思路 跟岛屿周长差不多...但我觉得这个比岛屿周长还简单。不知道为什么这个算中等题目,岛屿周长算简单题目 代码 class Solution: def numIslands( ......
岛屿 leetcode 数量 200

Leetcode707. 设计链表

题目描述 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。 实现 ......
Leetcode 707

leetcode274 H指数 —— 排序后遍历/差分 c++

给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且每篇论文 至少 被引用 h 次 ......
leetcode 指数 274

Leetcode203.移除链表元素

题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。 示例 提交的代码 /** * Definition for singly-linked list. * public class ListNode { ......
Leetcode 元素 203

[Leetcode Weekly Contest]367

链接:LeetCode [Leetcode]2903. 找出满足差值条件的下标 I 给你一个下标从 0 开始、长度为 n 的整数数组 nums ,以及整数 indexDifference 和整数 valueDifference 。 你的任务是从范围 [0, n - 1] 内找出 2 个满足下述所有条 ......
Leetcode Contest Weekly 367

include 引号和尖括号的区别

尖括号:适用于系统默认路径,如果要用自己的库要在尖括号里写明路径 引号:程序源文件所在目录 引申一下,如果引用了自定义的头文件又不慎写成了尖括号,会报找不到头文件,这时候可以用g++的-I参数指定头文件所在目录,如果在同一个文件夹的话就用-I .就ok ......
尖括号 引号 include

Leetcode 34. Find First and Last Position of Element in Sorted Array

题解 用了两次二分,分别计算第一个>=target的元素位置和第一个>target的元素位置。闭区间二分,[l,r]是未知的,保证每次答案都在[l,r]中,定义清楚nums[l-1]和nums[r+1]和target的关系。因为是while(l < r),所以到l == r时跳出循环,分析l == ......
Leetcode Position Element Sorted Array

32. 最长有效括号

给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例 1: 输入:s = "(()" 输出:2 解释:最长有效括号子串是 "()" 思路 class Solution { public: int longestValidParentheses(strin ......
括号 32

周赛363 Leetcode 2861. 最大合金数

题解 k个小问题,对每台机器分别计算这台机器最多能制造出多少合金,然后所有机器取max,就是最大合金数。 参数太多不好直接算 如果暴力,枚举制造1份合金,2份合金,... ,但是budget和stock都是1e8,会超时 但是暴力可以给我们一个启发:制造的合金数越多,花的钱越多。我们是否可以猜一个答 ......
Leetcode 2861 363

【DFS】129. 求根节点到叶子结点的和

链接 https://leetcode.cn/problems/sum-root-to-leaf-numbers/description/ 思路 时刻记住,DFS是递归的一种。而解决递归,最朴素的思路就是:递归的定义就是递归的解。 题目要求我们求根节点到叶子结点的和,我们要提供一个值保持其状态,退出 ......
结点 节点 叶子 DFS 129

【经典题目】【循环DFS】生成数组的全排列

问题描述 给你一个数组,生成这个数组中元素的全排列。 思路 经典的循环dfs。要点是我们需要设置visited数组来指代其是否被遍历过。 代码 class Solution: def islandPerimeter(self, grid): if not grid: return [] visite ......
数组 题目 经典 DFS

LeetCode54. 螺旋矩阵Ⅰ

题目描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 提交的代码 class Solution { public List<Integer> spiralOrder(int[][] matrix) { //行数 int m=matrix.l ......
矩阵 螺旋 LeetCode 54

leetcode45 跳跃游戏2——贪心 (C++/Python)

题目描述: 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处: 0 <= j <= nums[i] i + j < n ......
leetcode Python 45

LeetCode59. 螺旋矩阵Ⅱ

题目描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 提交的代码 class Solution { int matrixLen=0; public int[][] generateMatrix(int n) ......
矩阵 螺旋 LeetCode 59

Vijos P1448 校门外的树(括号序列法)

此题如果用常规的线段树或树状数组会非常麻烦,同时不好调试,在此介绍一种优美的做法: 由于本题是一条条线段,所以可以使用括号法: 如果需要在 \(l\sim r\) 区间种树,那么就在 \(l\) 和 \(r\) 上打一个括号表示这个区间里面种了一种树,我们使用两个树状数组 \(tr1,tr2\) 来 ......
括号 校门 序列 Vijos P1448

leetcode2845. 统计趣味子数组的数目

题解 class Solution { public: long long countInterestingSubarrays(vector<int>& nums, int modulo, int k) { int a[100010]; unordered_map<int, int> mp; mp[ ......
数组 数目 趣味 leetcode 2845

LeetCode Day04 24&19&02.07&142

24. 两两交换链表中的节点 这题使用虚拟头结点会更好做,因为有虚拟头结点我们交换结点的时候步骤会更加清晰。 操作此类有指针类型的题目要注意:1.画图避免混乱 2.注意指针先后顺序 class Solution { public ListNode swapPairs(ListNode head) { ......
amp LeetCode 02.07 Day 142

LeetCode209. 长度最小的子数组

题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 输入:targ ......
数组 长度 LeetCode 209

[LeetCode] 1354. Construct Target Array With Multiple Sums 多次求和构造目标数组

You are given an array target of n integers. From a starting array arr consisting of n 1's, you may perform the following procedure : let x be the sum ......
数组 Construct LeetCode Multiple 目标

DFS

题目:https://www.luogu.com.cn/problem/P1216 //还需理解 #include <iostream> #include <algorithm> #include <cstring> using namespace std; int r; int num[1005] ......
DFS

LeetCode题库22.括号生成

class Solution: def generateParenthesis(self, n: int) -> List[str]: if n==1: return ['()'] if not n: return None stack,res,l,r=[],[],[],[] for _ in ra ......
括号 题库 LeetCode 22

[刷题笔记] Luogu P5658 [CSP-S 2019] 括号树

Description 给定一棵树,树的每个节点都有一个左括号或者右括号,求从根节点到每个点简单路径上的括号序列上合法的子括号序列数。 Analysis 显然树形 dp。 考虑如何设计状态,定义 \(f_i\) 表示从 root 到 \(i\) 节点的字串合法数量。 考虑转移,如果当前的括号为左括号 ......
括号 笔记 Luogu CSP-S P5658

LeetCode977. 有序数组的平方

题目描述 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例1 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100] 排序后,数组变为 [0,1 ......
数组 LeetCode 977

P9233 [蓝桥杯 2023 省 A] 颜色平衡树 (dfs序 莫队)

P9233 [蓝桥杯 2023 省 A] 颜色平衡树 (dfs序 莫队) 莫队原理:https://zhuanlan.zhihu.com/p/115243708 对于树上的每个结点,按照 dfs 序打上时间戳,这样就可以把每一个结点对应的子树的答案转化为一个区间的答案。将子树询问离线下来变成 \(n ......
蓝桥 颜色 P9233 9233 2023

LeetCode27. 移除元素

描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例1 输入:nums = [3 ......
LeetCode 元素 27