09 2022 档案

摘要:文章目录 单链表定义提要题目如下 双向链表题目 总结: 单链表 定义提要 定义了几个变量含义如下 head:指向头结点下标 e[i] : 表示第i个节点的值 ne[i] :表示第i个节点next指针指向节点的下标,-1表示空指针 idx :记录使用到了哪个节点 e和ne通过下标对应联系在一起 题目如 阅读全文
posted @ 2022-09-30 19:45 chanxe 阅读(46) 评论(0) 推荐(0) 编辑
摘要:文章目录 Python特性输入输出 算法方面快排:分治调整区间的两种方法 归并排序 :分治高精度(大乌龙)前缀和与差分前缀和差分 双指针离散化与合并区间离散化合并区间 DFS && BFSDFS:BFS : 一些小技巧 Python特性 输入输出 输入 单值输入input()、int(input() 阅读全文
posted @ 2022-09-29 09:53 chanxe 阅读(104) 评论(0) 推荐(0) 编辑
摘要:文章目录 DFS:深度优先搜索例题 BFS: 广度优先搜索例题 对于Python中列表切片的补充总结 DFS:深度优先搜索 其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.DFS自带回溯,应用于枚举和存在性问题 回溯练得太多了,今天的两题思路都很简单就不多谈了 阅读全文
posted @ 2022-09-28 21:10 chanxe 阅读(61) 评论(0) 推荐(0) 编辑
摘要:文章目录 离散化例题 合并区间例题 总结 离散化 我自己的定义:一个超大数组,需要对数组中有限的位置进行操作,而离散化是将这有限的位置挨个存进一个数组a,并进行排序和去重,然后将需要的操作映射到一个数组b上,顺序和数组a一致。作用:面对一个无限的序列时的有限操作,有效的压缩了空间 例题 假定有一个无 阅读全文
posted @ 2022-09-27 20:35 chanxe 阅读(42) 评论(0) 推荐(0) 编辑
摘要:啊啊啊看完题解豁然开朗,还需要多做题,菜狗子 DIRS = ((0, 1), (1, 0), (0, -1), (-1, 0)) #右下左上 class Solution: def ballGame(self, num: int, plate: List[str]) -> List[List[int 阅读全文
posted @ 2022-09-26 21:12 chanxe 阅读(14) 评论(0) 推荐(0) 编辑
摘要:文章目录 双指针的形式双指针的作用模板例题最长连续不重复子序列数组元素的目标和判断子序列 总结 双指针的形式 指向两个序列维护一个序列的一段区间 双指针的作用 对暴力遍历的优化 模板 j = 0 或者 右边界 for i in range(len(nums)) : while (j 满足边界条件 a 阅读全文
posted @ 2022-09-26 20:55 chanxe 阅读(31) 评论(0) 推荐(0) 编辑
摘要:LCP 61. 气温变化趋势 我的思路是生成两个记录变化趋势的数组,然后用动态规划来找两个数组的最长公共子串 class Solution: # 生成记录变化趋势的数组 def outJudge(temperature) : res = [] for i in range(len(temperatu 阅读全文
posted @ 2022-09-25 08:05 chanxe 阅读(36) 评论(0) 推荐(0) 编辑
摘要:前缀和 数值数组A,前缀和数组S,满足如下定义 S[i] = A[0] + A[1] +…+A[i] 应用:求一段数的和 A[i ~ j] = S[j] - S[i - 1] 使得原本O(n)的操作,只需要O(1) 例题: 输入一个长度为 n 的整数序列。 接下来再输入 m 个询问,每个询问输入一对 阅读全文
posted @ 2022-09-23 11:26 chanxe 阅读(119) 评论(0) 推荐(0) 编辑
摘要:模拟人在运算时,从小位运算并进位借位 Tips 大数要用列表来存,输入时字符串可以用list转换为列表关于进位借位问题,都是向大位进位或者借位,因此将列表reverse对于一些特殊情况,结果得0或者高位为0,则需要在开始或者最后考虑 几道例题 高精度加法 给定两个正整数(不含前导 0),计算它们的和 阅读全文
posted @ 2022-09-23 08:45 chanxe 阅读(200) 评论(0) 推荐(0) 编辑
摘要:归并排序:分治 待排序数组为nums, 左边界为l,右边界为r 确定分界点:mid = (l + r)>> 1递归分隔合并:双指针法 def merge_sort(nums, l, r) : if l >= r : return mid = (l + r) >> 1 merge_sort(nums, 阅读全文
posted @ 2022-09-21 21:45 chanxe 阅读(57) 评论(0) 推荐(0) 编辑
摘要:快速排序基本思想:分治 下面假设对nums数组排序, l为左边界, r为右边界 确定分界点:可以是nums[l]、nums[r]、nums[(l + r) >> 2],设为d调整区间:将小于d的元素放到相对于大于d元素的左边,大于d的放在右边递归处理左右两端 调整区间的两种方法 每次调整区间用三个列 阅读全文
posted @ 2022-09-20 20:12 chanxe 阅读(45) 评论(0) 推荐(0) 编辑
摘要:基本操作 输入输出print()自动换行 # 循环读取到文件末尾 try: while True: s = input() except: pass # 读取n,m n, m = map(int,input().split()) # 读取一个数或者一个列表 a = list(map(int,inpu 阅读全文
posted @ 2022-09-19 14:01 chanxe 阅读(94) 评论(0) 推荐(0) 编辑
摘要:今天遇到了的问题 Missing parentheses in call to ‘print‘ Python2和Python3不兼容原因Python3只能用print(....) str不是迭代器,不能直接用for循环,最佳处理办法是遍历索引 输入 输入单个值 int(input()) 确定个数的值 阅读全文
posted @ 2022-09-18 22:39 chanxe 阅读(39) 评论(0) 推荐(0) 编辑
摘要:扩展欧几里得 欧几里得算法: gcd(a, b) a = b, b = a % b gcd(a, b) ……… until b = 0 gcd = a 扩展欧几里得算法 a * x + b * y = gcd(a, b) 假设前一个状态 b * x_i - 1 + (a % b) * y_i - 1 阅读全文
posted @ 2022-09-17 11:15 chanxe 阅读(368) 评论(0) 推荐(0) 编辑
摘要:基本运算符 & 与 | 或 ~ 非 xor 异或 补码 32位无符号整数 unsigned int 全0表示0 全一表示4294967295 32位无符号整数 int 全0表示0 全一表示-1 发生算数溢出时对2^32取模,得负数 建议memset语句初始化数组,正无穷的值为0x3f 移位运算 左移 阅读全文
posted @ 2022-09-15 10:13 chanxe 阅读(28) 评论(0) 推荐(0) 编辑
摘要:文章目录 并发2线程安全的集合阻塞队列高效的映射、集和队列 任务和线程池Callable与Future执行器(Exectors)控制任务组(ExecutorService)fork-join框架 异步计算可完成Future组合可完成Future 进程 并发2 线程安全的集合 阻塞队列 创建阻塞队列 阅读全文
posted @ 2022-09-14 22:44 chanxe 阅读(18) 评论(0) 推荐(0) 编辑
摘要:二分的本质 : 按一定性质可以将序列一分为二 整数集合上的二分 最终答案处于闭区间[l, r]以内,处理的内容是[l, r)的集合,循环以l == r结束,每次二分的中间值mid会归属左半段与右半段二者之一。 查找右半段的集合 while (l < r) { int mid = (l + r) / 阅读全文
posted @ 2022-09-12 21:13 chanxe 阅读(23) 评论(0) 推荐(0) 编辑
摘要:文章目录 并发1基础概念什么是线程线程状态线程属性同步 并发1 基础概念 多任务:模拟同时进行多个任务,实质上在一个时间点只做一个任务多线程:多个任务交叉进行线程:独立的执行路径进程和线程的区别:进程拥有自己的一整套变量,线程则共享数据。 什么是线程 构造一个简单线程 Thread(Runnable 阅读全文
posted @ 2022-09-12 16:22 chanxe 阅读(22) 评论(0) 推荐(0) 编辑
摘要:文章目录 泛型程序设计简单泛型类泛型方法类型变量的限定泛型代码和虚拟机限制与局限性泛型类型的继承原则通配符类型 泛型程序设计 使用泛型程序设计的程序设计的好处 避免继承的强制类型转化 对于集合来说可以保证统一的类型 简单泛型类 public class pair<T, U>{ private T f 阅读全文
posted @ 2022-09-11 19:36 chanxe 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Java集合框架 Collection接口 boolean add(E element) Iterator iterator() int size() retainAll toArray() 实现了Iterable接口 迭代器 E next(); boolean hasNext(); void re 阅读全文
posted @ 2022-09-07 22:50 chanxe 阅读(13) 评论(0) 推荐(0) 编辑
摘要:动规五部曲 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 dp数组必须是由已经计算好的状态推导而来 当前状态只依赖个别状态的可以用滚动数组 01背包 二维数组dp[i][j],第一个坐标i代表从0~i物品中选择,j代表背包体积;要将第0行和 阅读全文
posted @ 2022-09-07 11:23 chanxe 阅读(24) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示