摘要: 将两个有交集的区间进行合并,返回合并后的区间 这是简单的贪心算法 步骤: 按照区间左端点进行排序 扫描整个区间,并进行合并 我们可以发现,在扫描过程中,下一个区间和当前区间的关系有3种:完全包含,部分包含,和完全不包含 针对这3种情况,我们分别进行处理就可以了。 阅读全文
posted @ 2022-07-19 13:31 晓尘 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 我们这里讨论的是保序的离散化,小的在前面,大的在后面 我们有一个集合a[],这个集合的值域是0 ~ 109,但是这个集合中元素的个数却只有105个。 当我们需要将这个集合中元素当作下标时,那么我们需要开一个109数组,这无疑是很浪费空间的。 此时就需要进行映射,将这105个数 阅读全文
posted @ 2022-06-14 20:47 晓尘 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 位运算常用的主要有两方面: n的二进制表示中,第k位是几。 Lowbit操作 二进制第k位 n的二进制表示中,第k位是几。 思路: 先把第k位移动到最后一位,n >> k; 看个位是几,通过n&1就可以了 总结一下,公式就是 n>>k&1 如下面输出的结果就是1010; int n = 10; fo 阅读全文
posted @ 2022-06-14 19:10 晓尘 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 用处就是优化 例如一道题朴素做法就是暴力遍历,如下: for(int i = 0; i < n; i++) for(int j = 0; j ⇐ i; j++) 此时时间复杂度是O(n2)的。而通过双指针算法,就可以将其优化为O(n)的。 基本思想如下: for (int i = 0, j = 阅读全文
posted @ 2022-06-14 13:28 晓尘 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 差分就是前缀和的逆运算 一维差分 有一个数组a1,a2,a3... 构造b1,b2,b3... 使得ai=b1+b2+...+bi. 构造方法也很简单: b1=a1 b2=a2a1 \(b_3 = a_3 - a 阅读全文
posted @ 2022-06-13 16:08 晓尘 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 前缀和 前缀和更像一个公式,理解思想之后直接套公式就可以解题。 一维前缀和 有一个数组a1,a2,a3... 则前缀和数组为Si=a1+a2+...+ai. 前缀和的下标建议从1开始。这样S0就会为0,处理边界会很方便。 例如区间和[1,5]为$S_5-S 阅读全文
posted @ 2022-06-02 14:03 晓尘 阅读(83) 评论(0) 推荐(0) 编辑
摘要: IDEA 配置连接数据库报错 Server returns invalid timezone. Need to set ‘serverTimezone’ property. 简单的处理方法:在url后添加:?serverTimezone=GMT 阅读全文
posted @ 2021-09-23 10:18 晓尘 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 作用: 让我们在Windows下更好地管理vm虚拟机 可以设置windows和linux的共享文件夹 1、安装步骤 以centos为例: 进入centos,先将光驱右键弹出 点击菜单中虚拟机选项中的->install vmware tools 在centos中会出现一个xx.tar.gz,将其拷贝到 阅读全文
posted @ 2021-09-16 23:03 晓尘 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 模块 模块尽量使用小写 import numpy import os import pandas import sklearn 类名 驼峰命名法(Camel-Case) class Split(): pass class StratifiedShuffleSplit(): pass 函数 小写,多个 阅读全文
posted @ 2021-09-15 23:25 晓尘 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 1、栈(Stack) 特点:后入先出 基本操作: push(x):在栈顶部添加元素x pop(x):从栈顶部取出元素 isEmpty():检查栈是否为空 isFull():检查栈是否已满 void initialize(){ top = 0; } void isEmpty(){ return top 阅读全文
posted @ 2021-09-15 23:23 晓尘 阅读(64) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示