Other

947. 移除最多的同行或同列石头(并查集)

947. 移除最多的同行或同列石头 n 块石头放置在二维平面中的一些整数坐标点上。每个坐标点上最多只能有一块石头。 如果一块石头的 同行或者同列 上有其他石头存在,那么就可以移除这块石头。 给你一个长度为 n 的数组 stones ,其中 stones[i] = [xi, yi] 表示第 i 块石头的位置,返回 可以移除的石子 的最大数量。  示例 1: 输入:stones = [[0,0],[0,1],[1,0],[1,2],[2,1],[2,2]] 输出:5 解释:一种移除 5 块石头的方法如下所示: 1. 移除石头 [2,2] ,因为它和 [2,1] 同行。 2. 移除石头 [2,1] ,因为它和 [0,1] 同列。 3. 移除石头 [1,2] ,因为它和 [1,0] 同行。 4. 移除石头 [1,0] ,因为它和 [0,0] 同列。 5. 移除石头 [0,1] ,因为它和 [0,0] 同行。 石头 [0,0] 不能移除,因为它没有与另一块石头同行/列。 示例 2: 输入:stones = [[0,0],[0,2],[1,1],[2,0],[2,2]] 输出:3 解释:一种移除 3 块石头的方法如下所示: 1.

验证协方差矩阵和信息矩阵之间的关系

实验一 验证信息矩阵和协方差矩阵的是互逆的关系。 验证Schur completion的成立性。 给定一个系统: \[x_1 = w_1x_2+v_1\\ x_2 = v_2\\ x_3 = w_3x_2+v_3\\ 给定数据:w1 = 2; w3 = 3;\\ v1,v2,v3分别服从N1(0,0.01),N2(0,0.04),N3(0,0.09) \] 求该系统的对应的协方差矩阵和对应的信息矩阵? 求解如下: 根据协方差的定义,计算的协方差矩阵如下: [[0.17 0.08 0.24] [0.08 0.04 0.12] [0.24 0.12 0.45]] 根据信息矩阵的定义,计算的信息矩阵如下: [[ 100. -200. 0. ] [-200. 525. -33.33333333] [ 0. -33.33333333 11.11111111]] 点积是单位阵。 说明信息矩阵和协方差的逆之间是相等的 基于python的代码如下: import numpy as np w1 = 2 w3 = 3 shegma2_1 = 0.01 shegma2_2 = 0.

MySQL数据库2

内容概要 字符编码与配置文件介绍 存储引擎 MySQL字段类型 创建表的完整语法 字段类型之整型 字段类型之浮点型 字段类型之字符类型 数字的含义 字段类型之枚举与集合 字段类型之日期类型 MySQL字段约束条件 内容详情 字符编码与配置文件介绍 # 查看MySQL默认字符编码 \s 如果是5.X系列 显示的编码有多种 latin1 gbk 如果是8.X系列 显示的统一是utf8mb4 utf8mb4是utf8优化版本 支持存储表情 # 统一字符编码 5.X默认编码有多种 可能会导致乱码的情况 所以应该统一编码 my-default.ini配置文件 步骤1:拷贝一份该配置文件并修改名称为my.ini 步骤2:清空my.ini文件内的内容 步骤3:添加固定的配置信息即可 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8 步骤4:保存并重启服务端即可生效 net stop mysql net start mysql 存储引擎 # 什么是存储引擎 存储引擎可以理解为处理数据的不同方式 eg: 有一个a.txt文件 戴某某会放在密码箱中 张某某会转成pdf存储 李某某会做多个备份 潘某某会制作封面美化等 # 查看存储引擎 show engines; # 需要了解的引擎 MyISAM 5.

Python枚举类

前言 枚举类是一些具有特殊含义的类,比如用一个类表示月份,则该类的实例对象最多有 12 个,一周则有7个对象,Python 3.4 中新增加了 Enum 枚举类,对于这些实例化对象个数固定的类,可以用枚举类来定义。 枚举类定义 只需要令其继承自 enum 模块中的 Enum 类,则证明这是一个枚举类 枚举类的每个成员都由 2 部分组成,分别为 name 和 value name不允许重复,value允许重复 和普通类的用法不同,枚举类不能用来实例化对象 枚举类中各个成员的值,不能在类的外部做任何修改 创建方式一 from enum import Enum # 第一个参数用于指定枚举类的类名,第二个参数用于指定枚举类中的多个成员。 Colors = Enum(Colors, ('red', 'green', 'blue')) # 未指定值,默认从 1 开始递增 print(Colors.red.value) print(Colors.green.value) print(Colors.blue.value) ### 运行结果 1 2 3 创建方式二 from enum import Enum class Color(Enum): # 为序列值指定value值 red = 1 green = 2 blue = 3 #调用枚举成员的 3 种方式 print(Color.

基于docker的cicd

基于docker的cicd harbor配置 #部署harbor前需要安装docker docker-compose # 下载docker部署包 # https://download.docker.com/linux/static/stable/x86_64/ [root@harbor ~]# tar xf docker-20.10.10.tgz [root@harbor ~]# mv docker/* /usr/bin/ #加入systemd管理 #-------------------------------------------------------- cat > /usr/lib/systemd/system/docker.service << 'EOF' [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target EOF #-------------------------------------------------------- #创建配置文件 rm -f /etc/docker/* sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { registry-mirrors: [https://ajvcw8qn.mirror.aliyuncs.com], exec-opts: [native.

1202. 交换字符串中的元素(并查集)

1202. 交换字符串中的元素 给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。 你可以 任意多次交换 在 pairs 中任意一对索引处的字符。 返回在经过若干次交换后,s 可以变成的按字典序最小的字符串。  示例 1: 输入:s = dcab, pairs = [[0,3],[1,2]] 输出:bacd 解释: 交换 s[0] 和 s[3], s = bcad 交换 s[1] 和 s[2], s = bacd 示例 2: 输入:s = dcab, pairs = [[0,3],[1,2],[0,2]] 输出:abcd 解释: 交换 s[0] 和 s[3], s = bcad 交换 s[0] 和 s[2], s = acbd 交换 s[1] 和 s[2], s = abcd 示例 3:

__slots__

前言 我们在使用类的时候,常规做法是会先实例化一个该类的对象,然后可以为此实例对象动态的添加实例方法或者实例属性 __slots__属性就相当于是一个白名单,只有在白名单中才可以添加 需要注意 对于类,Python允许为类动态地添加这三种方法(实例方法、静态方法和类方法) 对于实例对象,则Python只允许动态地添加实例方法,不能添加类方法和静态方法 为单个实例对象添加方法,不会影响该类的其它实例对象 为类动态地添加方法或更改,则会影响所有的实例对象。 __ slots__ __ slots__ 只能限制为实例对象动态添加属性和方法,而无法限制动态地为类添加属性和方法。 class Slots: __slots__ = (name, info) def test(self): print(This is Test) def info(self, name): print(正在调用实例方法, self.name) slots = Slots() slots.test() slots.name = 'Jim' print(slots.name) slots.info = info slots.info(slots, Tom) slots.age = 15 print(slots.age) 运行结果: This is Test Jim 正在调用实例方法 Jim Traceback (most recent call last): File tests.py, line 101, in <module> slots.

Python多态及用法

前言 多态通俗讲法:就是定义一个类来充当接口做映射,这个类中定义一个方法,外部传入不同的对象,返回这些对象中的同一个方法。 Python这种由多态衍生出的更灵活的编程机制,又称为“鸭子模型”或“鸭子类型”。 类的多态特性,要满足以下 2 个前提条件: 继承:多态一定是发生在子类和父类之间; 重写:子类重写了父类的方法。 什么是多态? 先看下面代码示例: class CLanguage: def say(self): print(调用的是 Clanguage 类的say方法) class CPython(CLanguage): def say(self): print(调用的是 CPython 类的say方法) class CLinux(CLanguage): def say(self): print(调用的是 CLinux 类的say方法) a = CLanguage() a.say() a = CPython() a.say() a = CLinux() a.say() 运行结果: 调用的是 Clanguage 类的say方法 调用的是 CPython 类的say方法 调用的是 CLinux 类的say方法 可以看到: CPython 和 CLinux 都继承自 CLanguage 类,且各自都重写了父类的 say() 方法。 同一变量 a 在执行同一个 say() 方法时,a 实际表示不同的类实例对象 因此 a.

IDEA配置Maven

IDEA配置Maven(详细版) IDEA配置Maven IDEA创建Maven工程第一节 IDEA集成Maven插件第二节 使用骨架创建Maven的java工程第三节 不使用骨架创建Maven的java工程第四节 使用骨架创建Maven的java web工程第五节 不使用骨架创建Maven的java web工程第六节 IDEA使用Maven命令6.1 方式一6.2 方式二 新写的文章地址链接:https://weixiaodyanlei.xyz/archives/idea-chuang-jian-maven-gong-cheng#SnMnpRGS IDEA创建Maven工程 第一节 IDEA集成Maven插件 打开IDEA,进入主界面后点击 configure,然后点击 settings 在上面的快捷查找框中输入maven,查找与maven相关的设置,然后点击maven。 修改maven的路径(使用本地的Maven),以及修改settings文件的位置和本地仓库的位置。 推荐配置:设置maven在不联网的情况下使用本地插件 一般使用maven为我们提供好的骨架时,是需要联网的,配置这个,可以在没有网路的情况下,我们可以正常创建工程,并从之前已经使用过的工程中找到相应的骨架。 输入内容:-DarchetypeCatalog=internal 点击OK。 备注: 配置阿里云镜像(在setting.xml文件中配置) <!-- 配置阿里云 --> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> 配置默认JDK版本(在setting.xml文件中配置) <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> 第二节 使用骨架创建Maven的java工程 选择Create New Project 选中左侧的Maven,并将Create from archetype选中,在下方选择骨架quickstart,点击Next。 填写项目的名称以及存储的位置。点击下方的Artifact Coordinates,填写项目坐标的基本信息。 确认信息是否正确 当右下角出现提示时,点击Enable Auto Import。 目录结构如下: 我们需要手动将maven文件夹补齐。 若该文件夹是普通的文件夹,还要将该文件夹设为resource文件夹。 同样,在test文件夹下创建resources文件夹。最后的目录结构如下: 第三节 不使用骨架创建Maven的java工程 首先,新建一个工程,因为不使用骨架,可直接在Maven下点击Next按钮 填写项目的名称以及存储的位置。点击下方的Artifact Coordinates,填写项目坐标的基本信息。 点击Finish。

C#与SQL Server连接时,如何编写连接字符串?

一.Windows身份验证时: String conStr = Data Source=数据库服务器地址;Initial Catalog=数据库名称;Integrated Security=True ; SqlConnection conn = new SqlConnection(conStr); 二.Sql Server身份验证时: 据说是Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword; 我还没搞懂,研究明白再补记。