随想录 总和 序列 随想
代码随想录 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 ......
Guava的Multimap类型无法被序列化和反序列化的解决方法
出现原因: 当一个接口使用Multimap或者接口返回对象使用Multimap类型时会被jackson序列化成类似{empty:false}的格式 解决方法 pom文件中引入jackson-datatype-guava依赖 <dependency> <groupId>com.fasterxml.ja ......
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.二叉搜索树的最小绝对差 学习前: 思路: 中序遍历(递归+迭代)。首先中序遍历,将数值按照递增的方式存储,然后再计算最小绝对差 学习后: 中序遍历+双指针。在中序遍历中,一直存在指针指向前序结点,故在遍历过程中就可计算最小绝对 ......
P1631 序列合并
原题链接 方法1: 有点像剪枝。 \(i\)从\(1~n\)循环,\(j\)同理,如果\(a[i]+b[j]\)放不进去,那么\(a[i]+b[j+1]\)也放不进去 code #include<bits/stdc++.h> using namespace std; int a[100005]; i ......
R语言指数平滑预测法分析南京出租车打车软件空载率时间序列补贴政策可行性
报告链接:http://tecdat.cn/?p=32161 原文出处:拓端数据部落公众号 本文通过建立空载率的数学模型,帮助客户来分析出租车的空载率,从而对出租车补贴政策能否提高高峰期的实载率,缓解打车难问题进行了说明。 分析思路 1.利用这么多天的数据,按照算法先算出每天的日平今年空载率,绘制成 ......
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 ......
Python模块之序列化模块
序列化模块:json模块 / pickle模块 【一】概要 json 模块和 pickle 模块都是 Python 中用于序列化和反序列化数据的工具,但它们有一些重要的区别: 可读性和可编辑性: json 生成的数据是以文本形式表示的,具有良好的可读性,并且可以手动编辑。 pickle 生成的数据是 ......
编程随想曲周刊(第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() 使用快慢指针可以做到在数组原地进行指定元素的移除而不 ......
代码随想录算法训练营第12天 | 树的遍历
(本合集全部为Go语言实现) 相关文章链接:递归遍历 迭代遍历 统一迭代法 相关视频链接: Leetcode94 状态: 实现过程中的难点:迭代法的模拟过程比较难想 个人写法 递归方式 func inorderTraversal(root *TreeNode) []int { var res []i ......
sql语句,实现总结每个部门的每个用途的金额总和
SELECT '总经理办公室' AS 部门, COALESCE(SUM(CASE WHEN yongtu = '办公用品' THEN price ELSE 0 END), 0) AS 办公用品, COALESCE(SUM(CASE WHEN yongtu = '差旅费' THEN price ELS ......