binary-tree-maximum-path-sum leetcode maximum

leetcode刷题随笔(2)

42.收集雨水(Trapping Rain Water) 方法一:利用双指针交叉循环求解,时间复杂度O(n) //接雨水 int trap(vector<int>& height) { int i=0,j=height.size()-1; int left_max=0,right_max=0; in ......
leetcode 随笔

LeetCode Top100: 反转链表 (python)

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] 提示: 链表中节点的数目范围是 [ ......
LeetCode python 100 Top

LeetCode Top100: 翻转二叉树(python)

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:root = [2,1,3] 输出:[2,3,1] 示例 3: 输入:root = [] 输出:[] 提示: ......
LeetCode python 100 Top

LeetCode Top 100: 二叉树的直径 (python)

给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度是以它们之 ......
直径 LeetCode python 100 Top

4月18日leetcode二叉树几种遍历方式的非递归和递归

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 二叉树的前序中序和后序遍历算法是学习二叉树必不可少的,若是使用c语言遍历前中后序还是比较繁琐的,因为要考虑遍历结果存放的序列大小问题,想要解决这个问题就得想用递归计算二叉树的节点数量,再调用递归子函数完成递归遍历。 解题思路, ......
leetcode 方式

leetcode_打卡7

leetcode_打卡7 题目:238. 除自身以外数组的乘积 思路: 代码: class Solution { public int[] productExceptSelf(int[] nums) { int n=nums.length; int sum=1,result=1; int j=0; ......
leetcode

LeetCode:Search Algorithm

LeetCode:Search Algorithm 1\First unique char Algorithm Design 利用字符数量的有限性,通过数组来映射(避免Hash_map的高复杂度) 注意数组声明为int A[26]而不是char A[26]; if(s=="") return ' ' ......
Algorithm LeetCode Search

LeetCode Top100: 合并二叉树(python)

给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的 ......
LeetCode python 100 Top

leetcode-206反转链表

反转链表 方法一:迭代法 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListN ......
leetcode 206

CF1810G The Maximum Prefix

题面传送门 挺好一题,综合了几种方法。 首先看到题会想到一个dp:设 $f_{i,j,k}$ 表示到了第 $i$ 个位置,历史前缀最大值为 $j$ ,当前前缀和为 $k$ 的概率,乘上期望就是答案。但是这个状态非常寄因为状态本身就有 $O(n^3)$ 了而且不易优化。所以我们需要另辟蹊径。 不妨假设 ......
Maximum Prefix 1810G 1810 The

leetcode刷题随笔(1)

11.盛水最多的容器 暴力求解超时问题的解决 int maxArea(vector<int>& height) { int max=0; int n=height.size(); int num; int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++) { if(i<j ......
leetcode 随笔

Codeforces 1810G - The Maximum Prefix(DP)

挺小清新的一道计数题。 首先先分析下这个“最大前缀和”,按照最朴素的思路就是扫一遍每个前缀,然后记录一下当前的 $sum$ 与前面的 $mx$,但是如果你一直陷在这个思路上你就似了,因为按照这个思路做,你 DP 状态里需要记录 $sum$ 和 $mx$ 两个维度,算上下标一维总共是 $n^3$,并且 ......
Codeforces Maximum Prefix 1810G 1810

【DP】LeetCode 72. 编辑距离

题目链接 72. 编辑距离 思路 分析动态规划题目的时候只需要考虑最后一个阶段,因为所有的阶段转化都是相同的,考虑最后一个阶段容易发现规律 在数组的动态规划问题中,一般 dp[i] 都是表示以 nums[i] 为结尾的状态;dp[i][j] 分别表示 以 nums1[i] 和 nums2[j] 为结 ......
LeetCode 72

【DP】LeetCode 139. 单词拆分

题目链接 139. 单词拆分 思路 分析动态规划题目的时候只需要考虑最后一个阶段,因为所有的阶段转化都是相同的,考虑最后一个阶段容易发现规律 在数组的动态规划问题中,一般 dp[i] 都是表示以 nums[i] 为结尾的状态;dp[i][j] 分别表示 以 nums1[i] 和 nums2[j] 为 ......
单词 LeetCode 139

Oracle 数据库设置最大进程数参数方法,oracle最大进程数满了处理方法,sysdba管理员登录报“maximum number of processes (150) exceeded“问题解决

oracle 数据库使用 sysdba 管理员登录报:ORA-00020: maximum number of processes (150) exceeded译:超过了最大进程数(150) 方法一:【修改 processes 参数】先通过 sysdba 身份登录。如果由于最大进程数满了登录不了,可 ......
进程 方法 processes exceeded 管理员

【LeetCode剑指offer 03】合并两个/K个排序链表

合并两个排序链表 https://leetcode.cn/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1 ......
LeetCode 两个 offer

Leetcode 1026. 节点与其祖先之间的最大差值

题目: 给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V = |A.val - B.val|,且 A 是 B 的祖先。 (如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先) 难度:中等 示例1: 输入 ......
差值 节点 祖先 Leetcode 之间

【前缀和】LeetCode 304. 二维区域和检索 - 矩阵不可变

题目链接 304. 二维区域和检索 - 矩阵不可变 思路 显然,一个矩阵的元素和可以拆分成每一行相加。 那一个矩阵的每一行不就是一个个一维数组,一维数组怎么快速求子数组的和?前缀和! 所以这道题很明显就是对输入矩阵建立一个前缀和矩阵,然后求每一行的前缀和差值便能就得子矩阵的和。 代码 class N ......
前缀 矩阵 LeetCode 区域 304

【LeetCode动态规划#07】01背包问题一维写法(状态压缩)实战,其二(目标和、零一和)

目标和(放满背包的方法有几种) 力扣题目链接(opens new window) 难度:中等 给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标 ......
写法 背包 实战 LeetCode 状态

LeetCode/子数组中占绝大多数的元素

设计一个数据结构,有效地找到给定子数组的 多数元素 。 子数组的 多数元素 是在子数组中出现 threshold 次数或次数以上(大于半数)的元素 分析 对于子区间进行多次查询,采用线段树的方法 给定的数组,我们可以将它分成任意的两部分,分别使用投票算法得到多数元素和出现的次数 如果该数组存在多数元 ......
数组 LeetCode 元素

leetcode_打卡06

leetcode_打卡06 题目:151. 反转字符串中的单词 思路: 先把字符串根据空格进行分割,分割成一个字符串数组; 对字符串数组进行逆置; 拼接字符串数组; class Solution { public String reverseWords(String s) { // 除去开头和末尾的 ......
leetcode

LeetCode Top100: 二叉树的最大深度 (python)

给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 以下是Python代码实现: cl ......
深度 LeetCode python 100 Top

4月17日leetcode二叉树的层序遍历II

给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)(出自力扣) 这个昨天的二叉树的层序遍历有所不同:需要将从后往前层序遍历二叉树,其实很简单,只需要用vector的逆置函数,将vector中的vector逆置即可。 这里顺 ......
leetcode

4月16日leetcode二叉树前序遍历创建字符串,二叉树的层序遍历

给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 "()" 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。 来源:力扣(LeetCode)链接:https://leetc ......
字符串 字符 leetcode

LeetCode Top100: 对称二叉树 (Python)

给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root = [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root = [1,2,2,null,3,null,3] 输出:false 提示: 树中节点数目在范围 [1, 1000] 内 -100 <= ......
LeetCode Python 100 Top

LeetCode Top100:二叉树的中序遍历(Python)

给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 提示: 树中节点数目在范围 [0, 100] 内 - ......
LeetCode Python 100 Top

2-211-(LeetCode-470) 用 Rand7() 实现 Rand10()

1. 题目 https://leetcode.cn/problems/implement-rand10-using-rand7/submissions/425373186/ 2. 解法 class Solution extends SolBase { public int rand10() { in ......
Rand LeetCode Rand7 211 470

2-209-(LeetCode-121) 买卖股票的最佳时机

1. 题目 https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/ 121. 买卖股票的最佳时机 2. 解法 2.1 解法一:动态规划 2.2 解法二:非动态规划 if (prices.length < 2) { return 0; ......
时机 LeetCode 股票 209 121

2-207-通过(LeetCode-509)熟悉动态规划的解题步骤

1. 题目 运态规划的定义 动态规划的解题步骤 2. 解法 2.1 递归 public static int fibonacci(int n) { if (n == 0) { return 0; } if (n == 1) { return 1; } return fibonacci(n - 1) ......
LeetCode 步骤 动态 207 509

LeetCode Top100: 爬楼梯 (python)

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入:n = 3 输出:3 解释:有三种方法可以爬到楼顶 ......
楼梯 LeetCode python 100 Top