自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 问答 (1)
  • 收藏
  • 关注

原创 python3记忆化的方法

Leetcode python记忆化

2022-07-03 19:01:45 327 1

原创 LeetCode 370 线段树懒标记板子

线段树维护区间和

2022-06-04 23:56:54 223

原创 LeetCode 699 线段树懒标记之动态开点(c++)

class Node {public: Node* left; Node* right; int l; int r; int mid; int v; int add; Node(int l, int r) { this->l = l; this->r = r; this->mid = (l + r) >> 1; this->left = th.

2022-05-27 18:06:49 262

原创 LeetCode 1622 线段树懒标记板子题(c++)

using ll=long long;class SegmentTree{public: const static int N=1e5+1,mod=1e9+7; vector<ll> tree,markA,markB; SegmentTree(){ tree.resize(N<<2,0),markA.resize(N<<2,1),markB.resize(N<<2,0); } void update.

2022-05-27 16:49:42 189

原创 区间操作的python3板子 LeetCode 715. Range 模块

注意事项:区间都是左闭又开[x,y)from sortedcontainers import SortedListclass RangeModule: def __init__(self): self.rl=SortedList() self.count=0 def addRange(self, left: int, right: int) -> None: #[left,right) right-=1

2022-05-16 16:34:19 289

原创 Leetcode 433. 最小基因变化 「BFS」&「双向 BFS」

BFSclass Solution: def minMutation(self, start: str, end: str, bank: List[str]) -> int: s,bank=set(),set(bank) if start==end:return 0 q=deque() q.append((start,0)) s.add(start) while q:

2022-05-07 11:33:03 319

原创 pandas之merge

分别测试了how为空(默认情况)inner,outer,left,right 5种情况,发现默认参数为innerimport pandas as pddf1=pd.DataFrame({'key': list('bbacd'),'data1':range(5)})df2=pd.DataFrame({'key': list('aabce'),'data2':range(5)})print("df1:",df1,sep="\n")print("df2",df2,sep="\n")print(".

2022-04-25 10:46:19 1903

原创 Leetcode LCP 52. 二叉搜索树染色 珂朵莉树模板题

typedef long long ll;struct ChthollyTree{ struct node { ll l, r; mutable ll v; node(ll l, ll r, ll v) : l(l), r(r), v(v) {} bool operator<(const node &o) const { return l < o.l; } }; set<node...

2022-04-17 23:28:00 430 3

原创 Leetcode LCP 53. 守护太空城 DP 二进制状态压缩

首先1 <= time[i] <= 5非常的小,我们把时间这个维度可以压缩成5个二进制位,对应位为1表示需要屏障保护,0表示不需要屏障保护所以定义f[i][j]为在第i个位置屏障状态为j需要的最少能量,其中0<=j<32,正好是5个二进制位,每个位1或0分别对应相应的时间是否有屏障保护转移:1.自身开屏障,对应5个二进制位中变成一些单独的1或者连续的12.将自身和右边相邻的一起开屏障不需要再枚举左边开了,因为右边开包括了左边开的情况具体的细节代码中有注释class

2022-04-16 20:52:12 529

原创 Leetcode 952. 按公因数计算最大组件大小 C++并查集模板

这个代码是在评论区copy大佬的,觉得写的很不错了,借鉴了!class Solution { class UnionFind { public: vector<int> parent; vector<int> size; int n; UnionFind(int _n): n(_n), parent(_n), size(_n, 0) { iota(parent.begi

2022-04-13 15:43:45 1054

原创 LeetCode1649. 通过指令创建有序数组 C++ 树状数组和线段树

树状数组template <class T> class FenwickTree { int limit; vector<T> arr; //树状数组是从1开始储存的,而不是0 inline int lowbit(int x) { return x & (-x); }public: FenwickTree(int limit=1) { this->limit = limit; arr =

2022-04-08 10:22:51 420

原创 Leetcode1606 找到处理最多请求的服务器(线段树解法)

分析:将编号为0,1,..k-1,的k个服务器开始空闲的时间记做time[t],0<=t<k,刚开始所有的time都为0对于一个arrival[i],令x=i%k,我们想要知道以j= x,x+1,...,k-2,k-1,0,1,...,x-2,x-1顺序下的第一个j,使得time[j]<=arrival[i],可以发现[x,k-1]为一个连续的区间,[0,x-1]也是一个连续的区间。相当于在服务器中先查询[x,k-1]区间,如果找到直接返回;否则再查询[0,x-1]区间。这样就能够

2022-03-30 14:24:17 342

原创 Leetcode 2213 由单个字符重复的最长子字符串(线段树)

根据题目要求设计线段树节点内的信息只需要pushup,不需要pushdown所以不需要使用懒标记,其中qurry函数也是多余的,但是此份代码主要是为了记录一个线段树的模板class Solution { static const int N = 1e5 ; string s; struct TreeNode { int l, r, size; char lc, rc; int lmax, rmax, dmax; } t

2022-03-24 23:03:35 473

原创 树状数组模板

leetcode5999力扣template <class T> class FenwickTree { int limit; vector<T> arr; //树状数组是从1开始储存的,而不是0 int lowbit(int x) { return x & (-x); }public: FenwickTree(int limit) { this->limit = limit; arr = vector<T&gt.

2022-02-20 09:54:07 213

原创 字符串编码Rabin-Karp算法Leetcode 1044. 最长重复子串

最长重复子串注意的点:字符串是全部小写字母,所以其实就是26进制,这里去比26大的最小质数 C++中unsigned long long会自动处理上溢(相乘、相加超出了它能表示的最大范围2^64-1)和下溢(因为减法使得小于0) 求多少次方的时候,可以使用快速幂class Solution {public: int n; unsigned long long a=29; unsigned long long my_power(int m){ u.

2021-12-23 22:49:09 114

原创 C++并查集模板

// 并查集模板class UnionFind {public: vector<int> parent; vector<int> size; int n; // 当前连通分量数目 int setCount;public: UnionFind(int _n): n(_n), setCount(_n), parent(_n), size(_n, 1) { iota(parent.begin(), parent.en.

2021-12-10 12:53:07 446

原创 pytorch固定网络参数

在微调的时候,特征提取层可能已经收敛不再需要backward更新,这个时候我们需要去固定它的参数,具体有两种方法:1.requires_grad_(False),具体代码如下:import torchdef init_weights(m): if type(m) == torch.nn.Linear : m.weight.data=torch.ones_like(m.weight) m.bias.data = torch.ones_like(m.bias)

2021-10-22 14:44:22 2833

原创 leetcode 256 场周赛 自己犯的nc错

第二题:5855. 找出数组中的第 K 大整数C++这样写sort自定义排序怎么写编译多过不了,而且还一直发现不了自己的问题class Solution {public: bool cmp(string a,string b){ int n1=a.size(),n2=b.size(); if(n1!=n2) return n1<n2; else return a<b; } string k

2021-08-29 14:07:44 84

原创 python3中实现自定义类的排序(不使用cmp_to_key)

不使用functools.cmp_to_key,重写自定义类的<或者>运算符1.重写 '<'符号class node: def __init__(self,s,a): self.s=s self.a=a def __lt__(self, other): if self.s==other.s: return self.a<other.a else:

2021-04-13 16:10:37 353

原创 LeetCode 179. 最大数 python3解法(自定义比较实例)

题目链接:https://leetcode-cn.com/problems/largest-number/cmp想要实现的目的都是从大到小降序排列注意:C++和python的逻辑是相反的python中:s1>s2 返回的是-1s1<s2 返回的是1C++中:s1>s2 返回的是trueelse 返回的是falsepython代码:def cmp(a,b): s1=str(a)+str(b) s2=str(b)+...

2021-04-12 12:31:27 244

原创 二分查找:目标值的最小下标和目标值的最大下标

在目标值存在的条件下:1.我们使用的退出循环的条件为l<=r2.找到目标值的最小下标,将大于和等于合并成为一种情况:a[mid]>=target,答案的下标存在与l3.找到目标值的最大下标,将小于和等于合并成为一种情况:a[mid]<=target,答案的下标存在与r具体看代码实现:#include <iostream>#include<stdio.h>using namespace std;int binarySearch_get_le

2021-02-17 13:08:21 1315

原创 自定义结构体的哈希函数解决337. 打家劫舍 III 

unordered_map<node,int,hashNode,cmpNode> mp;node 为key,int为value,hashNode为自定义结构体的哈希函数(unordered_map就是通过这个值去查找的)cmpNode比较函数(如果哈希值相同,怎么去处理不同的对象,也就是怎么解决冲突)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNod

2021-02-04 11:33:56 738

原创 C++ priority_queue,sort 自定义比较函数

#include <iostream>#include<stdio.h>#include<vector>#include<math.h>#include<queue>#include<string>#include<algorithm>#include<map>#include<unordered_set>#include<unordered_map>#include.

2021-02-03 10:20:07 596 1

原创 计算机网络:集线器,交换机,路由器端口对应MAC地址和IP地址的关系

1.Hub是广播式的,用户共享带宽;交换机是交互式的,每个用户独享带宽。如果hub的带宽是10Mb/s,连结了10了设备,每个设备就是1Mb/s,Hub所有端口共享一个MAC地址。如果是一个10Mb/s的switch,那么每个端口的带宽就是10Mb/s,每个端口拥有自己的MAC地址,交换机的总容量(带宽)=交换机接口的对数*单个端口的带宽,例如24个端口,就有24/2=12对,12*10Mb/s=120Mb/s。 2.路由器的每个端口对应一个IP地址,它是通过IP地址转发的。...

2020-08-04 14:35:30 2447

原创 线性代数二次型标准化的方法总结

当平方项和交叉项较少的时候很容易配方,当配方的平方项数量为3,交叉项的项数大于等于二的时候很男直接通过观察法得到配方的结果,以下是我的个人总结(一般题目考的x'Ax配方x最多为3维列向量,太多了不适合用配方发化成标准型)再补充几个具体的例子:...

2020-07-22 18:09:19 3564

原创 考研线性代数:矩阵的合同关系,合同对角化以及一些坑

一.矩阵的合同关系的定义A,B为两个n阶对称方阵,若存在一个可逆方阵,使得 C'AC=B(C'代表的是C的转置矩阵)称A与B是合同的。任意一实对称方阵都合同与一个对角方阵。二.合同对角化的方法(初等行列变化)想要求出矩阵C,可以构造(A,E)矩阵当把它A转化成了对角矩阵Λ,E就变成了C',这样就求出了矩阵C。注:(A,E)需要就行成对的初等行变化和初等列变化,例如一次变化c1+c2,还需要r1+r2(第二列加到第一列,第二行加到第一行,行变化和列变化的顺序不影响最后...

2020-07-22 15:48:42 21422 2

原创 考研数据结构,计算机组成原理串讲:union,边界对齐,存储的大端小端方式的辨别

union是共享存储单元的数据结构,它所占用的内存长度等于最长的成员的内存长度。 struct的大小取决于它所以的成员的内存长度之和(理论上是这样的,实际上还得考虑它的存储方式是否边界对齐)。 以一个例子来说明边界对齐,大端和小端方式 现有一个int变量x为 0x12345678,假设主存地址为32位(以字节编址,也就是主存的大小位2的32次方4GB) 存储方式为以边界对齐 假设系统为x分配的地址为0x80100000(以边界对齐存储int4B大小,...

2020-07-20 19:21:33 793

原创 无向连通图求割点割边tarjan算法

作为21考研党,在做王道图论的练习题的时候发现有一个网易的面试题,就是求无向连通图求割点的题目,按照定义理解就是去暴力每一个点,把它和它相关的边给删除看子图是否还是连通,如果连通那么就是不是割点,否则是割点,割边的定义也是类似。去网上了学习了一个叫tarjan算法它只需要两遍DFS也是是时间复杂度为O(|V|+|E|),而之前的暴力的方法求割点O(|V|*(|V|+|E|)),求割边O(|E|...

2020-04-17 23:00:54 532 1

原创 计算机组成原理——字、字节、内存单元的概念

1字节=8位(二进制)而一个字的位数,是由机器字长决定的 【系统硬件(总线、cpu命令字位数等)】 在16位的系统中(比如8086微机) 1字 (word)= 2字节(byte)= 16(bit)在32位的系统中(比如win32) 1字(word)= 4字节(byte)=32(bit)在64位的系统中(比如win64)1字(word)= 8字...

2019-12-01 11:01:20 7193

原创 计算机组成原理 程序计数器和寄存器的长度

程序计数器PC的位数PC需要能访问所有的指令,所以它的长度由内存指令存储器的地址位数决定。指令寄存器的位数由指令长度决定,而指令又有半字长、单子长、双字长、多字长的长度类型,所以长度不确定。(这里的字长是机器字长)。通用寄存器的位数取决于机器字长的位数。...

2019-11-29 17:30:27 7499 6

原创 回顾一下归并排序

#include<iostream>using namespace std;int a[11]={2, 7, 8, 3, 1, 6, 9, 0, 5, 4, -3};int n=11;void my_merge(int low,int high){ int i=low; int j=(low+high)/2+1; int k=0; int mi...

2019-09-10 20:01:14 86

原创 leetcode 正则表达式匹配(dp 递归)

这个题目挺难的,我是看了题解才有思路的,自己修修改改搞了蛮久,自己去写发现蛮多坑的!1.对于是字符串 s 、p,s和p都为空匹配,s为空 p不为空时 是有可能匹配的, s不为空,p为空,不匹配,这个是属于比较细节的地方了。2.还有就是dp的那个vector行要多开1,列要多开2,不然也是会出问题的,因为可能会越界的,这些坑了我不少时间!#include<bits/stdc+...

2019-09-02 22:14:31 306

原创 leetCode 矩阵中的最长递增路径(记忆化搜索)

大概就是把每一个点的最长递增或者递减值记录在一个二维数组里面,具体看代码class Solution {public: vector<vector<int>> state; int n; int m; int dfs(int i,int j,vector<vector<int>>& matrix){ ...

2019-08-30 10:31:20 158

原创 Device Monitor 报错

打开android device monitor时提示unexpected error while parsing input:Invalid ui automator hierarchy file,而在monitor界面也不能显示选中线程的内存情况。需要找到C:\Users\2U\.android下的monitor-workspace把这个文件删除 ,然后重启device monitor...

2019-06-01 17:50:39 869

原创 Java中的反射使用以及一些坑(简化版)

基础的理论知识就不写了,直接来些代码实战吧!package com.Student;public class Student { private String name; public long schoolNum; Student(String s,long x){ this.name=s; this.schoolNum=x;...

2019-04-23 10:46:27 221

原创 Android Studio 报错求解

点击donwload sources出现Executing tasks: [DownloadSources]FAILURE: Build failed with an exception.* Where:Initialization script 'C:\Users\2U\AppData\Local\Temp\ijinit7.gradle' line: 6* What w...

2019-04-15 21:07:40 4220 5

原创 android逆向开发

呜呜呜!!!对于小白来说实在太难了,已经准备弃坑!!!

2019-04-09 20:33:16 149

原创 python3中自定义排序 和优先队列

functools模板中的方法:import functoolsdef cmp(x,y): if x<y: return -1 elif x>y: return 1 else: return 0def mycmp(self,other): if self.x==other.x: ...

2019-04-02 17:02:07 2245

原创 leetcode 矩阵注水 python

用list模拟一个队列就行代码如下:class Solution: def waterInjection(self, matrix, R, C):# # Write your code here n=len(matrix) dx=[-1,0,0,1] dy=[0,1,-1,0] flag=0 ...

2019-04-02 16:27:10 253

原创 lintcode 丑数 python

暴力如下:class Solution: """ @param n: An integer @return: return a integer as description. """ def istrue(self,x): a=[i for i in range(3)] a[0],a[1],a[2]=2,3,5 ...

2019-04-01 19:30:18 131

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除