之和 随想录 随想day7
代码随想录算法训练营第二十三天 | 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 ......
代码随想录 day08 反转字符串 反转字符串2 替换数字 单词反转顺序 右旋
反转字符串 经典双指针法 头尾交换 反转字符串2 难点在于模拟题目设定的条件 一开始不明白怎么模拟 后来看了一行标准源码 就明白了 设定步长就可以了 然后对迭代器位置进行约束 替换数字 本题为acm模式 也是一道双指针解题 注意这道题需要扩容之后 从后往前填充 免去了从前往后填充时需要移动元素 单词 ......
代码随想录算法训练营第二十二天 | 235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,450.删除二叉搜索树中的节点
一、235. 二叉搜索树的最近公共祖先 题目链接: LeetCode 235. 二叉搜索树的最近公共祖先 学习前: 思路: 对于二叉搜索树,root不为空时与p和q的关系有4种,分别对应返回 root<p && root<q 递归调用右孩子 rootp || rootq return root ro ......
day07 代码随想录算法训练营 15. 三数之和
题目:15. 三数之和 我的感悟: 加油,我可以的。不能放弃。 理解难点: 双指针 思路打开 边界考虑 代码难点: 缩进问题 continue是跳出循环条件 我以前分不清循环条件和判断条件。哈哈哈。一个是if 一个是while / for 总结概括: 只要不放弃就行!!!!!!!! 代码示例: cl ......
谷粒商城 -day7
130、商城业务-商品上架-构造基本数据 131、商城业务-商品上架构造sku检索属性 133、商城业务-商品上架-远程上架接口 134、商城业务-商品上架-上架接口调试 135、商城业务-商品上架-抽取-测试完成 136、商城业务-首页-整合thymeleaf渲染首页 ......
day07 代码随想录算法训练营 383. 赎金信
题目:383. 赎金信 我的感悟: 我自己独立做出来了。 理解难点: so easy 代码难点: 扩展理解defaultdic, 定义的时候 hashmap = defaultdict(int) hashmap拿到一个不存在的值的时候会设置为0 int可以省略吗? 不可以,int是工厂函数。用于设置 ......
day07 代码随想录算法训练营 454. 四数相加 II
题目:454. 四数相加 II 我的感悟: 把握题意:这道题目是四个独立的数组,只要找到A[i] + B[j] + C[k] + D[l] = 0就可以 有点像上学那会,提醒自己要注意题意。审题很关键。审题的要点是要明白题目说什么。 理解难点: 为什么可以只遍历AB和CD,不遍历AC和BD? 都可以 ......
代码随想录 day07 四数相加 赎金信 三数之和 四数之和
四数相加 题目需要找满足和为0的四元组 但是只要求统计个数 不要求具体的四元组 而且四元组是可以重复的 考虑使用hash map 由于设计到四个元素 先遍历两个集合 记录一下两个集合的元素和的所有可能值 记录在map中 为什么要用map 因为需要同时记录出现的值和出现的次数 值作为键 次数作为值 然 ......
代码随想录二叉树day14part1
二叉树day14 part1 题型: 1.二叉树理论基础 1.1 二叉树种类 满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 完全二叉树 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最 ......
代码随想录算法训练营第二十一天|530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数,236. 二叉树的最近公共祖先
一、530.二叉搜索树的最小绝对差 题目链接: LeetCode 530.二叉搜索树的最小绝对差 学习前: 思路: 中序遍历(递归+迭代)。首先中序遍历,将数值按照递增的方式存储,然后再计算最小绝对差 学习后: 中序遍历+双指针。在中序遍历中,一直存在指针指向前序结点,故在遍历过程中就可计算最小绝对 ......
day06 代码随想录算法训练营 1. 两数之和
题目:1. 两数之和 我的感悟: 梦开始的地方 理解难点: map究竟是什么 存放已经遍历的元素值 什么时候需要用map? 遍历一边,这里面的元素值,后面都有可能要用就存起来。 代码难点: 掌握enumerate用法 [ɪ'njuːməreɪt] e + numer + ate 助记: e-出 + ......
day06 代码随想录算法训练营 202. 快乐数
题目:202. 快乐数 我的感悟: 2024年了,你快不快乐?找找自己的原因。 理解难点: 分离数组 快乐数字的定义, 不快乐的数字会无限循环 代码难点: divmod用法, set用法 总结概括: 快乐就完事了! 代码示例: class Solution: def isHappy(self, n: ......
day06 代码随想录算法训练营 349. 两个数组的交集
题目:349. 两个数组的交集 我的感悟: 轻轻松松 理解难点: python中 字典存,集合去重 代码难点: del要掌握 dic.get(i,0) +1 要掌握 总结概括: 无 代码示例: class Solution: def intersection(self, nums1: List[in ......
编程随想曲周刊(第61期)
这里记录每周的所见所闻,周日发布。点击阅读原文可以直接访问文章链接。 工具 astropad slate: free public beta OrbStack-Docker containers sing-box-代理工具 文章 我换手机了 陶勇塌房,早在一年之前就已注定 时政 官宣!苏州机场,有戏 ......
day06 代码随想录算法训练营 242. 有效的字母异位词
题目:242. 有效的字母异位词 我的感悟: 卡尔的思路,挺好。简单易懂。 理解难点: 没有难点 总结概况: 建立数组存 遍历一遍 ++ 遍历一遍 -- 再遍历一遍 判断0 代码示例: class Solution: def isAnagram(self, s: str, t: str) -> bo ......
day04 代码随想录算法训练营 24. 两两交换链表中的节点
题目:24. 两两交换链表中的节点 我的感悟: 我感觉,python中对链表的概念,很弱。 链表在现在语言中,用的不多。 先搁置。 理解难点: 可以看懂代码。 总结概括: 代码示例: # Definition for singly-linked list. # class ListNode: # d ......
代码随想录算法训练营第二十天|654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树
一、654.最大二叉树 题目链接: LeetCode 654.最大二叉树 学习: 思路: 前序遍历 方法参数:(int[] nums, int start, int end) 返回类型:TreeNode 终止条件: if(end-start==0) return null; if(end-start ......
day03 代码随想录算法训练营 206. 反转链表
题目:206. 反转链表 我的感悟: 理解cur是什么? 相信自己!! 代码难点: cur = head 可以省略不 每一个步骤里的cur是什么 代码示例: # Definition for singly-linked list. # class ListNode: # def __init__(s ......
代码随想录 day06 有效的字母异位词 返回数组的交集 找快乐数 两数之和
有效的字母异位词: 思路比较简单 由于范围比较小 只有小写字母为范围 利用26大小的数组 遍历字符串 第一个串在对应下标++ 第二个++ 然后数据存在不为零就是不一样的 不存在则时字母异位词 返回数组的交集 由于要返回的是交集 就是查找两个集合出现的元素 想到要使用hash map 具体的数据结构而 ......
代码随想录算法训练营第14天 | lc104、lc111、lc222
(本合集全部为Go语言实现) 相关文章链接:104题解 111题解 222题解 相关视频链接: Leetcode104 状态:这种简便的写法一开始忘了,看了题解才想到 实现过程中的难点:需要首先明确最终答案的得出是模拟了那种遍历方式 个人写法 func maxDepth(root *TreeNode ......
代码随想录算法训练营第13天 | 树的层序遍历、lc226、lc101
(本合集全部为Go语言实现) 相关文章链接:层序遍历题解 226题解 101题解 相关视频链接: Leetcode102 状态:迭代写法秒了,递归写法确实吗,没太能想到 实现过程中的难点:递归写法中,思想要转变。迭代写法是真正的按层遍历,递归写法是以类似深度优先的方式将遍历结果放到不同的层级的集合当 ......
代码随想录 小结02 链表
第一题 移除链表元素 这题比较简单 使用dummyHead的方式会比较简单 不需要对头指针进行单独处理 但是空间开销会大一些 第二题 设计链表类 这个没什么好说的 感觉有可能一些细节会忘记 需要经常复习的一块 第三题 反转链表 这题难度不大 用一个tmp指针存储一下当前指针的next 然后直接反转就 ......
代码随想录算法训练营第十八天 | 513.找树左下角的值,112. 路径总和,113.路径总和ii,106.从中序与后序遍历序列构造二叉树,105.从前序与中序遍历序列构造二叉树
一、513.找树左下角的值 题目链接: LeetCode 513.找树左下角的值 学习前: 思路: 层序遍历。采用递归和迭代两种方式 递归:定义最大深度和目标值两个成员变量,方法参数是结点和当前结点的深度;返回类型为void;终止条件为结点为空;单次循环内容为判断该节点是否符合目标要求,且分别传入左 ......
代码随想录 小结01 数组
数组篇一共有五个题目 第一题二分查找 值得注意的是,要自己想好 区间的边界到底是写左闭右开 还是左闭右闭 根据边界不同 while的条件和左右指针的移动会有差别 目前我的习惯是写左闭右开 还是固定一下习惯比较好 第二题是实现数组类的erase() 使用快慢指针可以做到在数组原地进行指定元素的移除而不 ......