摘要: 总论 怎么求解? 回溯 记忆化搜索 递推(方便进行空间复杂度优化) 求什么? 方案数 最大值 最小值 状态方程 对应关系: 转移状态的定义(回溯入口) 边界条件(边界状态如何递推得到其实状态,回溯的终止条件) 如果递推公式是求最小,边界初始化成INT_MAX_ * 如果递推公式求最大,边界为0或1 阅读全文
posted @ 2024-11-06 22:29 haydenhs 阅读(44) 评论(0) 推荐(0)
摘要: 前缀和 前缀和是一种解决区间求和问题的辅助方法,前缀和只适用于固定区间(数组、树等),如果区间元素发生变化,则不适用,此时需要考虑树状数组、线段树等方式。 问题类型 常见的问题也是和DP一样,求最大/最小/方案数。 类型 题目 备注 前缀和+哈希 LC 560 两数之和 思路 前缀和+二分 LC 2 阅读全文
posted @ 2024-10-31 12:59 haydenhs 阅读(161) 评论(0) 推荐(0)
摘要: 总论 增量构造答案 关注边界条件的逻辑 当前操作?(选/不选,枚举选哪一个) 子问题? 下一个子问题? 用什么数据结构保存搜索路径? 时间复杂度计算:搜索树节点数*生成答案需要的时间 题目分类 可以分成子集型、排列型和组合型三种: 回溯问题 时间复杂度O() 解法 子集 LC78 n x 2^n 记 阅读全文
posted @ 2024-10-26 19:02 haydenhs 阅读(110) 评论(0) 推荐(0)
摘要: 总结 问题类型 滑动窗口(同向双指针) 定长 不定长 求最长/最大 求最短/最小 求子数组个数 单序列双指针(同向/相向) 同向:快排求partition的Lomuto算法 相向:快排求partition的Hoare算法、三数之和(保证有序)注意去重 双序列双指针 双指针 子序列判断 多指针 荷兰旗 阅读全文
posted @ 2024-10-25 22:04 haydenhs 阅读(387) 评论(0) 推荐(0)
摘要: 总论 链表提供快速的前后访问和插入,不提供随机访问,要是需要随机访问需要结合hash实现 链表反转类问题的关键是3个节点prev curr next之间的关系: 由于反转的时候next会被改变,因此需要临时存储设置next的tmp = cur->next; 之后可以反转,再更新prev和curr即可 阅读全文
posted @ 2024-10-25 12:24 haydenhs 阅读(31) 评论(0) 推荐(0)
摘要: 总结刷题中遇到的与树有关问题 遍历问题 前中后序遍历 有递归与迭代两种写法 迭代时需要栈模拟,中序遍历单独注意写法(类似于模拟调用栈),后序遍历可以通过前序遍历+反转的方式实现 题目 LC编号 注意事项 前序 递归 144 正常递归 前序 迭代 144 插入单个root后进行Stack模拟 pop之 阅读全文
posted @ 2024-10-24 16:02 haydenhs 阅读(21) 评论(0) 推荐(0)
摘要: 是自己做题中整理的常用C++操作,此为存档。 STL容器 STL里面的vector/array/deque/set/map/unordered_set可以直接使用==比较是否相等: vector<int> a; deque<int> a; map<int, string> a;unordered_m 阅读全文
posted @ 2024-10-22 23:41 haydenhs 阅读(28) 评论(0) 推荐(0)
摘要: 本系列是Prof Kayvon Fatahalian2017年夏季学期在清华开的一门课程,对应的CMU课程是15-418,可以在bilibili找到原始视频。 这门课我是2020年学习的,现在把一部分当时的学习笔记上传博客保存。 不同层次上的并行计算 指令级并行(ILP, e.g. supersca 阅读全文
posted @ 2024-04-16 23:18 haydenhs 阅读(141) 评论(0) 推荐(0)
摘要: 为什么关注拷贝 将某种信息/数据从一个位置传递到另一个位置是程序中的常用操作,这一过程可以被视为(广义的)拷贝。在编写程序中,通常会涉及到两种形式的拷贝: 深拷贝:真正对原始的数据进行复制,得到一个原始数据的副本; 浅拷贝:复制了变量的字节内容,但对于指针变量而言,在新的位置上仍然是通过访问数据的地 阅读全文
posted @ 2021-08-08 20:09 haydenhs 阅读(635) 评论(0) 推荐(0)
摘要: 如何介绍自己的项目经历 可以套用STAR模型,STAR是指SITUATION(背景)、TASK(任务)、ACTION(行动)、RESULT(结果)。主要突出自己的角色、工作内容和取得成果。 面试题67 字符串转换成整数。这个应该是经常考察的题目,主要目的是判断是否能够充分考虑特殊字符和异常输入等情况 阅读全文
posted @ 2020-08-01 11:23 haydenhs 阅读(133) 评论(0) 推荐(0)