代码编织梦想

图论基础|417. 太平洋大西洋水流问题、827.最大人工岛、127. 单词接龙-爱代码爱编程

目录 417. 太平洋大西洋水流问题 827.最大人工岛 127. 单词接龙 417. 太平洋大西洋水流问题 题目链接(opens new window) 有一个 m × n 的矩形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。 这个岛被分割成一个由若干方形单

图论基础|695. 岛屿的最大面积、1020. 飞地的数量、130. 被围绕的区域-爱代码爱编程

695. 岛屿的最大面积 力扣题目链接(opens new window) 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 岛屿的面积是岛上值为 1 的单元格

代码随想录算法训练营 第14天 part03 | 二叉树的迭代遍历-爱代码爱编程

代码随想录 前序遍历(迭代法) 前序遍历是中左右,每次先处理的是中间节点,那么先将根节点放入栈中,然后将右孩子加入栈,再加入左孩子。 public List<Integer> preorderTr

代码随想录算法训练营第37天 | 738.单调递增的数字 ,968.监控二叉树-爱代码爱编程

贪心算法章节理论基础: https://programmercarl.com/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80

代码随想录算法训练营第14天 part02 | 二叉树的递归遍历-爱代码爱编程

递归三要素 确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。 确定终止条件: 写完了递归算法, 运行的时

代码随想录算法训练营第day14|二叉树理论基础、二叉树递归遍历、二叉树迭代遍历-爱代码爱编程

目录 a.二叉树理论基础 b.二叉树递归遍历 c.二叉树迭代遍历 迭代法前序遍历 迭代法中序遍历 # 迭代法后序遍历 a.二叉树理论基础 在我们解题过程中二叉树有两种主要的形式:满二叉树和完全二叉树 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。也可以说深度为k,有2^k-

代码随想录算法训练营第八天 | 344. 反转字符串、541. 反转字符串 ii、卡码网54. 替换数字、151. 反转字符串中的单词、卡码网55. 右旋字符串-爱代码爱编程

344. 反转字符串 使用双指针法,将两个指针分别指向数组两端,left<right时向中间移动,即可完成字符串的反转。 class Solution { public void reverseString(char[] s) { int left = 0; int right = s.length - 1

代码随想录算法训练营第八天 | 344.反转字符串、541. 反转字符串ii、151.翻转字符串里的单词-爱代码爱编程

344.反转字符串 利用双指针 class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s in-place instead. """

代码随想录算法训练营 day4|24. 两两交换链表中的节点, 19.删除链表的倒数第n个节点, 面试题 02.07. 链表相交, 142.环形链表ii-爱代码爱编程

Day4|24. 两两交换链表中的节点, 19.删除链表的倒数第N个节点, 面试题 02.07. 链表相交, 142.环形链表II 24. 两两交换链表中的节点 思路 两两交换链表中相邻的节点,返回交换后的链表,不能只

代码随想录算法训练营(java)| 第六章 二叉树part01-爱代码爱编程

      今日任务  力扣 144. 二叉树的前序遍历,  94. 二叉树的中序遍历,  145. 二叉树的后序遍历 三种解法: 递归方法: 这是最直观和简单的中序遍历方法,通过递归函数来实现。 当一个节点不为空时,先递归遍历它的左子树,然后将节点的值添加到结果列表中,最后递归遍历右子树。 这种方法的时间复杂度是 O(

代码随想录算法训练营(java)| 第五章 栈与队列part02-爱代码爱编程

      今日任务  力扣  20. 有效的括号  1047. 删除字符串中的所有相邻重复项  150. 逆波兰表达式求值 看了答案很疑惑为啥要用Deque而不是Stack,就去搜了一下: 【Java】Java双端队列Deque使用详解_dequeuejava-C

【leetcode】53. 最大子数组和(中等)——代码随想录算法训练营day31-爱代码爱编程

题目链接:53. 最大子数组和 题目描述 代码 测试用例 测试结果 测试结果 53. 最大子数组和 中等 相关标签 相关企业 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,

【leetcode】376. 摆动序列(中等)——代码随想录算法训练营day31-爱代码爱编程

题目链接:376. 摆动序列 题目描述 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。 相反,

【leetcode】455. 分发饼干(简单)——代码随想录算法训练营day31-爱代码爱编程

题目链接:455. 分发饼干 题目描述 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足

代码随想录算法训练营day07 | 哈希表part02-爱代码爱编程

Day06 哈希表part02 四数相加II哈希法 赎金信暴力枚举解法哈希法 三数之和双指针法 当我们要使用集合来解决哈希问题的时候,优先使用unordered_set,因为它的

代码随想录算法训练营(java) | 第三章 哈希表part01 day05-爱代码爱编程

   今日任务  力扣242. 有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和 什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。  什么时候使用哈希法,当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想

代码随想录算法训练营(java) | 第三章 哈希表part02 day06-爱代码爱编程

    今日任务  力扣454. 四数相加 II,383. 赎金信,15. 三数之和,  18. 四数之和 什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。  什么时候使用哈希法,当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。 使用数组和set

day50-爱代码爱编程

一、每日温度 题目一:739. 每日温度 739. 每日温度 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替 如果明天的温度比今天高,那么栈顶的元素就可以出栈。栈内保存的是

【leetcode】104. 二叉树的最大深度(简单)——代码随想录算法训练营day16-爱代码爱编程

题目链接:104. 二叉树的最大深度 题目描述 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root = [1,null,2] 输出:2 提示:

【leetcode】654. 最大二叉树(中等)——代码随想录算法训练营day20-爱代码爱编程

题目链接:654. 最大二叉树 题目描述 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的 最大二叉树 。 示例 1: