随想

代码随想录 day18 找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树

找树左下角的值 最简单就是想到层序遍历之后取第一个位置元素就是了 递归的话需要先判断哪里最深的节点 至于最左 保持中左右的遍历顺序 第一次得到最大深度处就是最左的 路径总和 有点像查找子树路径 所以递归回溯是比较好的选择 在求路径的适合,targetSum - node->val 是否为0的判断比一 ......
随想录 总和 序列 随想 路径

[代码随想录] 第四天

19.删除链表的倒数第N个节点https://leetcode.cn/problems/remove-nth-node-from-end-of-list/ 思路:使用前后指针,当删除倒数第N个节点时,快慢指针之间应该间隔N个元素,当快指针到达链尾时,慢指针next指向所要删除节点。 时间复杂度:O( ......
随想录 随想 代码

代码随想录 day17 平衡二叉树 二叉树的所有路径 左叶子之和

平衡二叉树 之前一直写迭代代码 没有怎么写递归 正好这题不是很好写迭代 练习一下递归 这题递归逻辑相对简单 左右子树高度差判断是不是大于一 可以直接返回结果 不大于一就高度max(l,r)+1 二叉树的所有路径 关键要点 这题适合先序遍历 回溯过程和递归过程是一起写的 进来几次就回溯几次 这样才能回 ......
随想录 之和 随想 路径 叶子

[代码随想录] 第二天

203.移除链表元素https://leetcode.cn/problems/remove-linked-list-elements/ 思路:没什么好说的 /** * Definition for singly-linked list. * public class ListNode { * int ......
随想录 随想 代码

代码随想录算法训练营第一天

Leetcode704 二分查找 https://leetcode.cn/problems/binary-search/submissions/494474207/ 文档讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6 ......
随想录 训练营 随想 算法 代码

[代码随想录] 第二天

977.有序数组的平方[https://leetcode.cn/problems/squares-of-a-sorted-array/] 思路:因为数组是非递减,数组有正有负,找到第一个非负数设为i,i将数组划分为前部分的负数组,后部分的非负数组,使用辅助数组将原数组平方部分存储,后部分使用正序存储 ......
随想录 随想 代码

代码随想录 day16 N 叉树的最大深度 完全二叉树的节点个数

N 叉树的最大深度 这题昨天做过二叉版本 n叉区别不大 完全二叉树的节点个数 层级遍历 入que的数量就是节点个数 ......
随想录 节点 随想 个数 深度

代码随想录 day15 十二题二叉树

二叉树的层序遍历 基本的层序遍历 二叉树的层序遍历 II 感觉直接正常遍历之后反转是最简单的想法了 二叉树的右视图 一开始很难想到 其实只需要返回每层的最后一个节点就可以了 也就是i == size - 1 二叉树的层平均值 比较简单 注意一下变量是double N 叉树的层序遍历 模板题 注意容器 ......
随想录 随想 代码 day 15

[代码随想录] 第一天

704.二分查找 [https://leetcode.cn/problems/binary-search/description/] 思路: 二分查找适用于在有序数组中查找目标值,左边边界为left,右边边界为right,每次使用middle=(right+left)/2,将原数组划分为[left, ......
随想录 随想 代码

day13 代码随想录算法训练营 递归遍历

题目: 144.二叉树的前序遍历 145.二叉树的后序遍历 94.二叉树的中序遍历 我的感悟: 用helper内部函数写更好 理解难点: 代码难点: 代码示例: 前序 # Definition for a binary tree node. # class TreeNode: # def __ini ......
随想录 训练营 随想 算法 代码

代码随想录 day13 滑动窗口最大值 前 K 个高频元素

滑动窗口最大值 这题第一次见 比较难找到思路 滑动窗口的移动比较类似于队列的行为 但是我们需要找到其中的最大值 在线性时间复杂度下 只能维护这个队列保持单调性 但是我们没有这样的一个可以在移动中保持单调的数据结构 只能自己手动创建 我们利用deque进行队列的创建 这个队列有三个基本函数 pop 用 ......
随想录 最大值 随想 元素 代码

day13 代码随想录算法训练营 347. 前 K 个高频元素 【待梳理】

题目:347. 前 K 个高频元素 我的感悟: 我用hash再排序。 卡尔用的小顶堆。 `heapq`是Python中的一个模块,它提供了堆队列(也称优先队列或者堆)的算法实现。在计算机科学中,堆是一种特殊的完全二叉树数据结构,其中每个父节点的值都小于或等于其子节点的值(在最小堆中)或者父节点的值都 ......
随想录 训练营 随想 算法 元素

day13 代码随想录算法训练营 239. 滑动窗口最大值

题目:239. 滑动窗口最大值 我的感悟: 来难度了,有点意思, 理解难点: 需要实现自定义队列, 看了国外的解题思路和其他的回答,感觉还是卡尔的思路,更有意思。 实现队列: pop只弹出左边边界且左边界为最大值的时候 push 要维护队列里的大到小的单调性。把队尾小的都卷走 front查询最大值 ......
随想录 最大值 训练营 随想 算法

代码随想录 day14 二叉树的递归遍历 迭代遍历(栈) 统一遍历(栈)

二叉树的节点的孩子数量称之为度 所有节点度为0或2的二叉树是满二叉树 完全二叉树是所有非叶节点都是度为2的节点 叶子都尽可能的靠左 前序遍历:中左右 中序遍历:左中右 后续遍历:左右中 这里左右中指的是当前节点的遍历顺序 中就是先遍历当前节点 再遍历子树 前序遍历递归代码: 中序遍历递归代码: 后序 ......
随想录 随想 代码 day 14

代码随想录算法训练营第二十七天 | 39. 组合总和,40.组合总和II,131.分割回文串

一、39. 组合总和 题目链接: LeetCode 39. 组合总和 学习前: 思路: 无 学习后: 思路: 需要额外定义的成员变量: private List<List<Integer>> res; private List<Integer> list; 调用函数: List<List<Integ ......
总和 随想录 回文 训练营 随想

编程随想曲周刊(第62期)

这里记录每周的所见所闻,周日发布。点击阅读原文可以直接访问文章链接。 工具 自动清除网站加在 URL 后面的冗余内容:ClearURLs 文章 去做吧,停止空谈 卸磨杀罗振宇 新巨富是如何诞生的 生活 泼天的富贵终于轮到哈尔滨了 孙燕姿妹妹发文:无法忍受姐姐的所作所为,决定断绝关系! 播客 东方甄选 ......
随想曲 随想 周刊

day11 代码随想录算法训练营 150. 逆波兰表达式求值

题目:150. 逆波兰表达式求值 我的感悟: 注意int(a/b)是0向截断 比如 -2.3 会得到-2; 比如3.6 会得到3 a//b是向下取整,比如是-2.3 会得到-3;比如3.6 会得到3 主要是负数不同 理解难点: 0向取整注意 注意先弹出的是右边的,(想象二叉树的结构。先弹出的是右边节 ......
随想录 训练营 表达式 随想 算法

day11 代码随想录算法训练营 1047. 删除字符串中的所有相邻重复项

题目:1047. 删除字符串中的所有相邻重复项 我的感悟: 做过的题,还是有印象的。 本身也不难,独立写出来了。 理解难点: 代码难点: 代码示例: class Solution: def removeDuplicates(self, s: str) -> str: stack = [] for i ......
随想录 训练营 字符串 随想 算法

day11 代码随想录算法训练营 20. 有效的括号

题目:20. 有效的括号 我的感悟: 脑回路清奇 理解难点: 遇到左括号存对应的右括号 3中情况, 1.左括号多了 2.右括号多了 3.左右括号不匹配 剪枝:奇数可以直接剪枝 注意为空的判断,防止报错 代码难点: 存3种情况 23情况要返回False 其他直接pop 最后判断stack栈为不为空,来 ......
随想录 括号 训练营 随想 算法

代码随想录算法训练营第二十五天 | 216.组合总和III,17.电话号码的字母组合

一、216.组合总和III 题目链接: LeetCode 216.组合总和III 学习前: 思路: 返回类型和参数: void fun(int n, int k, int start) 终止条件: int len = list.size(); if(len==k){ if(n==0 ){ List< ......
随想录 训练营 总和 随想 算法

代码随想录day11 有效括号 删除字符串中的所有相邻重复项 逆波兰表达式求值

有效括号 思路出来代码比较简单 左半括号出现就压右半进栈 这样比左右括号直接压进去 做的比较会少一些 栈为空但是还有符号出现或者是右半括号和当前元素对不上 显然为false 剩下的情况就是栈顶和当前元素匹配 pop即可 栈尤其适合做这类匹配类的题目 删除字符串中的所有相邻重复项 消消乐 直接压进栈做 ......
随想录 括号 表达式 字符串 随想

代码随想录算法训练营第二十四天 | 回溯算法理论基础,77. 组合

一、回溯算法理论基础 学习: 1. 基本概念 回溯法是一种搜索方式 回溯的本质是穷举,是递归的副产品,即回溯算法就是递归算法 回溯解决的问题都能理解成树形结构,一般是在集合中递归查找子集。集合的大小构成树的宽度(n叉树),递归的深度构成了树的深度 2. 回溯解决的问题 (1)组合问题:N个数里面按一 ......
算法 随想录 训练营 随想 理论

代码随想录 day10 栈模拟队列 队列模拟栈

栈模拟队列 大概了解一下思路自己就可以很快写出来了 我们需要第二个辅助栈帮助我们把stackIn的顺序颠倒,这样FILO的栈颠倒后 pop的顺序就和FIFO的队列顺序一致了 大概就是这张图 队列模拟栈 题目要求使用两个队列模拟栈 其实可以只需要一个队列就可以模拟 栈的出栈顺序是最后一个先出栈,那么队 ......
队列 随想录 随想 代码 day

day09 代码随想录算法训练营 459. 重复的子字符串

题目:459. 重复的子字符串 我的感悟: 重复两个子串,掐头去尾。 证明的话,不太会。 理解难点: 什么脑袋瓜子想出来的解法?? 代码难点: 总结概括: 代码示例: class Solution: def repeatedSubstringPattern(self, s: str) -> bool ......
随想录 训练营 字符串 随想 算法

代码随想录算法训练营第二十三天 | 669. 修剪二叉搜索树,108.将有 序数组转换为二叉搜索树,538.把二叉搜索树转换为累加树

一、669. 修剪二叉搜索树 题目链接: LeetCode 669. 修剪二叉搜索树 学习前: 思路: 递归。节点非空时的值与目标区间[low,high]右三种情况 节点值小于low 返回递归调用节点右孩子结果,即它右子树剪枝后的根节点 节点值大于high 返回递归调用节点左孩子结果,即它左子树剪枝 ......
随想录 训练营 数组 随想 算法

day08 代码随想录算法训练营 卡码网:55.右旋转字符串

题目:卡码网:55.右旋转字符串 我的感悟: python中的切片很厉害。 我感觉go好像也是切片的 理解难点: 没理解为什么是-n 代码难点: 总结概括: 代码示例: n = int(input()) s = input() res = s[-n:] + s[:-n] print(res) 通过截 ......
随想录 训练营 字符串 随想 算法

day08 代码随想录算法训练营 151. 反转字符串中的单词

words = s.split() 题目:151. 反转字符串中的单词 我的感悟: 虽然我自己写出来了,但是又不太确定 理解难点: words = s.split() 切记:这里split是去掉所有的空格。 words = s.split(" ") 如果这样写" "就仅仅去除" "一个空格,这样写不 ......
随想录 训练营 字符串 随想 算法

day08 代码随想录算法训练营 卡尔网54. 替换数字

题目:54. 替换数字 我的感悟: 过于简单,我有点不敢相信 理解难点: 代码难点: 总结概括: 本质要理解这个数字是如何判断的 用ord("0")算出字符0的ASCII码再和9的ASCII码对比 str1 = input() ans = "" for ss in str1: if ord("0") ......
随想录 训练营 随想 算法 代码

day08 代码随想录算法训练营 541. 反转字符串 II

题目:541. 反转字符串 II 我的感悟: 你别看这题简单,python里面细节很多 理解难点: 字符串转化为列表来算 s[1:99] 只会取到s[1:s.size] 这个range(0,size,k) 是可以取到步长的 或者用另外的思路。 代码难点: 总结概括: 注意[1:999]这里的容错机制 ......
随想录 训练营 字符串 随想 算法

day08 代码随想录算法训练营 344.反转字符串

题目:344. 反转字符串 我的感悟: 以为很难,其实不难。 坚持就是胜利!!!!!!!!! 理解难点: 我以为字符串不能修改,仔细看了题目发现是列表里面套的字符串 双指针,while 互相交互就可以了 代码难点: 总结概括: 代码示例: class Solution: def reverseStr ......
随想录 训练营 字符串 随想 算法
共572篇  :1/20页 首页上一页1下一页尾页