最优化方法Python计算:无约束优化应用——线性回归分类器
一、线性回归分类器
假设样本数据为 ( x i , y i ) (\boldsymbol{x}_i, y_i) (xi,yi),其中 i = 1 , 2 , … , m i = 1, 2, \dots, m i=1,2,…,m。标签 y i y_i yi 取值于 k k k 个整数 { 1 , 2 , … , k } \{1, 2, \dots, k\} {1,2,…,k},从而构成一个 k k k-分类问题。线性回归分类器与线性回归预测器的测试评估指标不同,当我们用训练数据得到模型参数 w 0 \boldsymbol{w}_0 w0 后,可以利用测试数据集评估模型性能。设测试数据集为 { ( x i , y i ) ∣ i = 1 , 2 , ⋯ , m } \{(\boldsymbol{x}_i, y_i)|i=1,2,\cdots,m\} {(xi,yi)∣i=1,2,⋯,m},其中 x i \boldsymbol{x}_i xi 为特征向量, y i y_i yi 为真实标签。定义测试数据矩阵:
X t e s t = ( x 1 ⊤ 1 x 2 ⊤ 1 ⋮ ⋮ x m ⊤ 1 ) , Y t e s t = ( y 1 y 2 ⋮ y m ) , \boldsymbol{X}_{test} = \begin{pmatrix} \boldsymbol{x}_1^\top & 1 \\ \boldsymbol{x}_2^\top & 1 \\ \vdots & \vdots \\ \boldsymbol{x}_m^\top & 1 \end{pmatrix}, \quad \boldsymbol{Y}_{test} = \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_m \end{pmatrix}, Xtest= x1⊤x2⊤⋮xm⊤11⋮1 ,Ytest= y1y2⋮ym ,
其中, X t e s t \boldsymbol{X}_{test} Xtest 的最后一列全为 1,用于引入偏置项。用线性回归方法计算预测值:
( y 1 ′ y 2 ′ ⋮ y m ′ ) = Y ′ = round ( X t e s t w 0 ) . \begin{pmatrix} y_1' \\ y_2' \\ \vdots \\ y_m' \end{pmatrix} = \boldsymbol{Y}' = \text{round}(\boldsymbol{X}_{test} \boldsymbol{w}_0). y1′y2′⋮ym′ =Y′=round(Xtestw0).
其中, round ( ⋅ ) \text{round}(\cdot) round(⋅) 表示逐元素取整操作。
设 m ′ m' m′ 为 Y t e s t \boldsymbol{Y}_{test} Ytest与 Y ′ \boldsymbol{Y}' Y′中 y i = y i ′ y_i=y_i' yi=yi′, i = 1 , 2 , ⋯ , m i=1,2,\cdots,m i=1,2,⋯,m的个数(即预测值与真实标签值相等的样本数),则测试评估指标定义为准确率:
score = m ′ m × 100 % . \text{score}=\frac{m'}{m}\times100\%{}. score=mm′×100%.
其中, m m m 为测试样本总数。准确率反映了模型预测正确的比例。下列代码实现线性回归分类器。
import numpy as np
class Classification(): #分类模型def score(self, x, y): #测试函数return np.mean(self.predict(x) == y)
class LinearClassifier(Classification,LineModel): #线性分类模型def __init__(self):self.tagVal=np.round
程序中
- 第2~4行定义了用于表示分类模型的Classification。其中,第3~4行定义了分类器的测试函数score。第4行调用predict函数对表示特征数据的参数x计算预测值并于表示标签数据的参数y比较,算得相等即预测正确的均值,计算正确率并返回。
- 第5~7行将线性分类模型类LinearClassifier定义成Classification和LineModel(见博文《最优化方法Python计算:无约束优化应用——线性回归模型》)的子类。该类拥有其两个父类Classification和LineModel的所有数据和方法。其中,第6~7行定义的构造函数将tagVal函数设置为Numpy的舍入函数round,使得预测值
self.tagVal(yp * (self.ymax - self.ymin) + self.ymin) \text{self.tagVal(yp * (self.ymax - self.ymin) + self.ymin)} self.tagVal(yp * (self.ymax - self.ymin) + self.ymin)
(见博文《最优化方法Python计算:无约束优化应用——线性回归模型》中predict函数的定义)
二、综合案例
文件iris.csv(来自UC Irvine Machine Learning Repository)是统计学家R. A. Fisher在1936年采集的一个小型经典数据集,这是用于评估分类方法的最早的已知数据集之一。该数据集含有150例3种鸢尾花:setosa、versicolour和virginica的数据
Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species | |
---|---|---|---|---|---|
1 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
2 | 4.9 | 3 | 1.4 | 0.2 | setosa |
3 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
⋯ \cdots ⋯ | ⋯ \cdots ⋯ | ⋯ \cdots ⋯ | ⋯ \cdots ⋯ | ⋯ \cdots ⋯ | ⋯ \cdots ⋯ |
51 | 7 | 3.2 | 4.7 | 1.4 | versicolor |
52 | 6.4 | 3.2 | 4.5 | 1.5 | versicolor |
53 | 6.9 | 3.1 | 4.9 | 1.5 | versicolor |
⋯ \cdots ⋯ | ⋯ \cdots ⋯ | ⋯ \cdots ⋯ | ⋯ \cdots ⋯ | ⋯ \cdots ⋯ | ⋯ \cdots ⋯ |
148 | 6.5 | 3 | 5.2 | 2 | virginica |
149 | 6.2 | 3.4 | 5.4 | 2.3 | virginica |
150 | 5.9 | 3 | 5.1 | 1.8 | virginica |
五个数据属性的意义分别为
- Sepal.Length:花萼长度;
- Sepal.Width:花萼宽度;
- Petal.Length:花瓣长度;
- Petal.Width:花瓣宽度;
- Species:种类。
下列代码从文件中读取数据,将花的种类数字化。
import numpy as np #导入numpy
data = np.loadtxt('iris.csv', delimiter=',', dtype=str) #读取数据文件
X = np.array(data) #转换为数组
X = X[:, 1:] #去掉编号
title = X[0, :4] #读取特征名称
X = X[1:, :] #去掉表头
Y = X[:, 4] #读取标签数据
X = X[:, :4].astype(float)
m = X.shape[0] #读取样本个数
print('共有%d个数据样本'%m)
print('鸢尾花特征数据:')
print(X)
Y = np.array([0 if y == 'setosa' else #类别数值化1 if y == 'versicolor' else2 for y in Y])
print('鸢尾花种类数据:')
print(Y)
运行程序,输出
共有150个数据样本
鸢尾花特征数据:
[[5.1 3.5 1.4 0.2][4.9 3. 1.4 0.2][4.7 3.2 1.3 0.2]
...[6.5 3. 5.2 2. ][6.2 3.4 5.4 2.3][5.9 3. 5.1 1.8]]
鸢尾花种类数据:
[0 0 0 ... 2 2 2]
花萼的长度、宽度,花瓣的长度、宽度对鸢尾花的种类有明显的相关性。接下来我们要从数据集中随机选取一部分作为训练数据,训练LinearRegressor分类模型,然后用剩下的数据进行测试,评价训练效果。在前面的程序后添加以下代码
……
a = np.arange(m) #数据项下标
np.random.seed(1248)
train = np.random.choice(a,m//3,replace=False) #50个随机下标
test = np.setdiff1d(a,train) #测试数据下标
iris = LinearRegressor() #创建模型
print('随机抽取%d个样本作为训练数据。'%(m//3))
iris.fit(X[train],Y[train]) #训练模型
accuracy = iris.score(X[test],Y[test]) #测试
print('对其余%d个数据测试,分类正确率为%.2f'%(m-m//3,accuracy)+'%')
运行程序输出
………
随机抽取50个样本作为训练数据。
训练中...,稍候
9次迭代后完成训练。
对其余100个数据测试,分类正确率为100.00%
第1行的省略号表示前一程序的输出。从测试结果可见训练效果效果不错!
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
相关文章:
最优化方法Python计算:无约束优化应用——线性回归分类器
一、线性回归分类器 假设样本数据为 ( x i , y i ) (\boldsymbol{x}_i, y_i) (xi,yi),其中 i 1 , 2 , … , m i 1, 2, \dots, m i1,2,…,m。标签 y i y_i yi 取值于 k k k 个整数 { 1 , 2 , … , k } \{1, 2, \dots, k\} {1,2,…,k},从而构…...
【汇正自控阀门集团】签约智橙PLM,智橙助泵阀“以国代进”
签约智橙,汇正阀门的“以国代进”举措 随着阀门市场竞争日益激烈、市场需求日益多样化,无论是出口海外、以国代进,还是进军新能源、造船、油气等投资景气的下游市场,阀门企业能否在快速迭代产品、保持技术领先的同时,…...
【macOS】iTerm2介绍
iTerm2 和 iTerm 是 macOS 上两个不同的终端模拟器,虽然名字相似,但它们是两个独立的项目,且 iTerm2 是 iTerm 的现代化继承者。以下是它们的核心区别和演进关系: 1. 历史背景 项目诞生时间状态开发者iTerm2002 年已停止维护Greg…...
2025年五一假期旅游市场新趋势:理性消费、多元场景与科技赋能
2025年五一假期,国内旅游市场再次迎来爆发式增长,官方数据显示,假期期间国内出游人次达3.14亿,游客总消费1802.69亿元。尽管数据规模亮眼,但深入分析可发现,旅游市场正经历结构性变革——消费行为趋于理性、…...
第3章 模拟法
3.1 模拟法概述 模拟法设计思想 模拟法通过将现实问题抽象成计算机可识别的符号与操作,按逻辑顺序“模拟”其过程,从而得到结果;它不依赖复杂公式或高深技巧,只需理清问题背景与实现步骤即可。 示例:鸡兔同笼问题 题…...
16.状态模式:思考与解读
原文地址:状态模式:思考与解读 更多内容请关注:深入思考与解读设计模式 引言 在开发软件系统时,特别是当对象的行为会随着状态的变化而变化时,系统往往会变得复杂。你是否遇到过这样的情况:一个对象的行为在不同的状…...
ActiveMQ 源码剖析:消息存储与通信协议实现(二)
四、KahaDB 消息存储实现细节 (一)存储原理分析 KahaDB 作为 ActiveMQ 从 5.4 版本开始的默认消息存储引擎,其基于日志文件的存储原理具有独特的设计和优势 。在 KahaDB 的存储目录(如${activemq.data}/kahadb)下&am…...
明远智睿SD2351核心板:工业AIoT时代的创新引擎
在当今工业互联网飞速发展的浪潮中,人工智能(AI)与物联网(IoT)的深度融合正以前所未有的态势重塑着传统制造业的格局。从自动化生产线的精准控制到智能仓储的高效管理,从设备运行的实时监测到产品质量的严格…...
iPhone 和 Android 在日期格式方面的区别
整篇文章由iPhone 和 Android 在日期格式方面有所不同引起,大致介绍了,两种时间标准,以及在 JavaScript 下的格式转换方法。 Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。 iPhone 和 Android 在日期格式方面有所不同。其中,iPhone(iOS)使…...
使用VSCode在Windows 11上编译运行项目
使用VSCode在Windows 11上编译运行项目 VSCode是一个功能强大的跨平台代码编辑器,可以很好地支持C/C项目开发。以下是使用VSCode在Windows 11上编译运行此项目的详细步骤。 1. 安装VSCode 访问VSCode官网下载并安装VSCode安装完成后,启动VSCode 2. 安…...
边缘计算,运维架构从传统的集中式向分布式转变
在当今数字化时代,边缘计算的崛起正在改变着运维的格局。随着物联网、5G 等技术的快速发展,越来越多的数据和应用正在向边缘设备迁移,这给运维团队带来了新的挑战和机遇。 一、边缘计算崛起带来的运维挑战 边缘计算将计算和数据存储靠近数据…...
【基础篇】prometheus热更新解读
文章目录 本篇内容讲解热更新参数源码解读本篇总结本篇内容讲解 prometheus热更新源码解读 热更新参数 –web.enable-lifecycle : 代表开启热更新配置 修改配置文件发http请求# curl -X POST -vvv localhost:9090/-/reload * About to connect() to localhost port 9090 (…...
为了结合后端而学习前端的学习日志(1)——纯CSS静态卡片案例
前端设计专栏 使用纯CSS创建简洁名片卡片的学习实践 在这篇技术博客中,我将分享我的前端学习过程,如何使用纯HTML和CSS创建一个简洁美观的名片式卡片,就像我博客首页展示的那样。这种卡片设计非常适合作为个人简介、产品展示或团队成员介绍…...
汽车服务小程序功能点开发
汽车养护服务功能 智能保养预约:根据车辆品牌、型号及行驶里程,自动推荐保养项目,支持线上预约 4S 店或合作维修厂,选择服务时间与地点。故障诊断与维修:车主上传车辆故障现象,系统智能初步诊断࿰…...
SENSE2020BSI sCMOS科学级相机主要参数及应用场景
SENSE2020BSI sCMOS科学级相机是一款面向宽光谱成像需求的高性能科学成像设备,结合了背照式(Back-Side Illuminated, BSI)CMOS技术与先进信号处理算法,适用于天文观测、生物医学成像、工业检测等领域。以下是其核心特点及技术细节…...
《汽车噪声控制》复习重点
题型 选择 填空 分析 计算 第一章 噪声定义 不需要的声音,妨碍正常工作、学习、生活,危害身体健康的声音,统称为噪声 噪声污染 与大气污染、水污染并称现代社会三大公害 声波基本概念 定义 媒质质点的机械振动由近及远传播&am…...
物流无人机结构与载货设计分析!
一、物流无人机的结构与载货设计模块运行方式 1.结构设计特点 垂直起降与固定翼结合:针对复杂地形(如山区、城市)需求,采用垂直起降(VTOL)与固定翼结合的复合布局,例如“天马”H型无人机&am…...
docker创建一个centOS容器安装软件(以宝塔为例)的详细步骤
备忘:后续偶尔忘记了docker虚拟机与宿主机的端口映射关系,来这里查看即可: docker run -d \ --name baota \ --privilegedtrue \ -p 8888:8888 \ -p 8880:80 \ -p 8443:443 \ -p 8820:20 \ -p 8821:21 \ -v /home/www:/www/wwwroot \ centos…...
D盘出现不知名文件
各位大佬,电脑D盘去年还干干净净的,后来突然就出现了所圈部分的几个不知名文件,请问这是什么东西?是否可以删除?...
Rust 中 Arc 的深度分析:从原理到性能优化实践
在 Rust 的并发编程中,Arc(Atomic Reference Counted) 是一个非常关键的智能指针类型,用于在多个线程之间共享数据的所有权。它通过原子操作维护引用计数,确保在多线程环境下安全地管理堆内存资源。然而,很…...
qsort函数
在本篇中,将深入了解qsort函数的用法。 1.qsort函数的基础知识 该函数是用来排序的,这是一个可以直接用来排序数据的库函数(#include<stdlib.h>),底层使用的是快速排序的方式。 常见的排序方式有: …...
01 一文了解大数据存储框架:数据库、数据仓库、数据集市、数据网格、数据湖、数据湖仓
1. 大数据存储框架 1.1 定义 数据库(Database):数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据仓库(Data Warehouseÿ…...
QT —— QWidget(2)
QT —— QWidget(2) windowTitlewindowIconQt 资源系统 (qrc 机制) 详解基本概念使用方法1. 创建 .qrc 文件 设置背景windowOpacity 我们今天继续来学习QWidget,如果大家上一次的博客还没有看过,可以点击这里: https:/…...
微信小程序预览文件 兼容性苹果
uni.request({url: url,method: GET,header: {Authorization: token,responseType: blob,},responseType: "arraybuffer",success: (res) > {uni.hideLoading()const fs wx.getFileSystemManager(); //获取全局唯一的文件管理器let index url.lastIndexOf("…...
QT:qt5调用打开exe程序并获取调用按钮控件实例2025.5.7
为实现在 VS2015 的 Qt 开发环境下打开外部 exe,列出其界面按钮控件的序号与文本名,然后点击包含特定文本的按钮控件。以下是更新后的代码: #include <QCoreApplication> #include <QProcess> #include <QDebug> #include…...
Flink + Kafka 数据血缘追踪与审计机制实战
一、引言 在实时数据系统中,“我的数据从哪来?去往何处?” 是业务方最关心的问题之一。 尤其在以下场景下: 📉 金融风控:模型出现预警,需回溯数据源链路。 🧾 合规审计:监管要求提供数据全流程路径。 🛠 运维排查:Kafka Topic 数据乱序或错发后快速定位来源。 …...
【图书管理系统】详细讲解用户登录:后端代码实现及讲解、前端代码讲解
1. 约定前后端交互接口 [请求] /user/login [参数] userName&password [响应] 登录成功返回–true;登录失败返回–false 2. 后端代码 2.1 后端代码的逻辑 Controller层: (1)从请求和参数可以得出,前端通过127.0.…...
uni-app实现完成任务解锁拼图功能
界面如下 代码如下 <template><view class"puzzle-container"><view class"puzzle-title">任务进度 {{completedCount}}/{{totalPieces}}</view><view class"puzzle-grid"><viewv-for"(piece, index) in…...
鸿蒙开发——1.ArkTS声明式开发(UI范式基本语法)
鸿蒙开发——1、ArkTS声明式开发:UI范式基本语法 [TOC](鸿蒙开发——1、ArkTS声明式开发:UI范式基本语法)一、ArkTS的基本组成(1)核心概念(像贴标签一样控制组件)(2)基础工具包(现成的积木块&am…...
ChatGPT-4o:临床医学科研与工作的创新引擎
技术点目录 2024大语言模型最新进展介绍ChatGPT-4o提示词使用方法与技巧ChatGPT-4o助力临床医学日常生活、学习与工作ChatGPT-4o助力临床医学课题申报、论文选题及实验方案设计ChatGPT-4o助力信息检索、总结分析、论文写作与投稿、专利idea构思与交底书的撰写ChatGPT-4o助力临床…...
Excel点击单元格内容消失
Excel点击单元格内容消失 前言一、原因说明二、解决方案1.菜单栏中找到“审阅”,选择“撤销工作表保护”2.输入密码3.解除成功 前言 Excel想要编辑单元格内容时,无论是单击还是双击单元格内容都莫名其妙的消失了 一、原因说明 单击或者双击Excel中单元…...
单片机-STM32部分:7、GPIO输入 按键
飞书文档https://x509p6c8to.feishu.cn/wiki/RtuVw6GgZiuwyBkxmdDcdsAFnKk 根据原理图,找到KEY1对应的PC3 找到CubeMX中的PC3,设置为GPIO_Input 右击,修改引脚名称为KEY1 或者在GPIO配置属性中修改 引脚模式:这里默认为输入模式&…...
从创意到变现:独立创造者的破局之路——解码《Make:独立创造者手册》
在创业浪潮奔涌的时代,独立创造者正成为商业领域中一股不可忽视的新兴力量。他们凭借对创新的执着、对问题的敏锐洞察,以及对自由创业模式的追求,试图在竞争激烈的市场中开辟属于自己的天地。《Make:独立创造者手册》如同一位经验丰富的创业导师,为独立创造者们提供了一套…...
14前端项目----登录/注册
登录/注册 assets用户注册模块登录模块tokenlogin组件业务token校验获取用户登录信息 登录成功---Header组件 assets assets文件夹:一般也是放置静态资源–>一般是多个组件共用的静态资源 webpack 会把 assests 静态资源当作是一个模块,打包到 js 文件里,不存在a…...
【FreeRTOS-消息队列】
参照正点原子以及以下gitee笔记整理本博客,并将实验结果附在文末。 https://gitee.com/xrbin/FreeRTOS_learning/tree/master 一、队列简介 1、FreeRTOS中的消息队列是什么 答:消息队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(消息传…...
二叉查找树,平衡二叉树(AVL),b树,b+树,红黑树
🌲 一、二叉查找树(Binary Search Tree,简称 BST) 📌 定义 二叉查找树是一棵二叉树,它满足这样的特性: 每个节点最多有两个子节点(左、右)对于任意一个节点: 它左子树的所有节点值都比它小它右子树的所有节点值都比它大📈 举个例子 复制代码 10/ \5 20/ \ …...
可执行文件格式(ELF格式)以及进程地址空间第二讲【Linux操作系统】
文章目录 可执行文件的格式可执行文件中存储了什么可执行文件中的虚拟地址以及加载 进程地址空间第二讲CPU如何执行进程的代码再谈进程地址空间的区域划分 可执行文件的格式 源文件被编译器编译之后的可执行文件,并不是只有代码和数据,还有一定的格式&a…...
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】8.1 基础图表绘制(折线图/柱状图/散点图)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL数据分析实战:基础图表绘制(折线图/柱状图/散点图)8.1 基础图表绘制8.1.1 折线图:展现数据趋势数据准备图表绘制步…...
Yii2.0 模型规则(rules)详解
一、基本语法结构 public function rules() {return [// 规则1[[attribute1, attribute2], validator, options > value, ...],// 规则2[attribute, validator, options > value, ...],// 规则3...]; }二、规则类型分类 1、核心验证器(内置验证器࿰…...
Notepad++中XML格式化插件介绍
Notepad++中XML格式化插件介绍 背景安装指南安装步骤验证安装成功安装失败可尝试使用说明XML文件格式正确时格式化错误格式检查XML Tools插件核心功能盘点常见问题格式化后没变化中文显示乱码拯救杂乱XML格式!Notepad++这个神器插件,必须接收!背景 接手别人写的XML,缩进乱成…...
在 R 中,清除包含 NA(缺失值)的数据
在 R 中,清除包含 NA(缺失值)的数据可以通过多种方式实现,具体取决于你希望如何处理这些缺失值。以下是几种常见的方法,包括删除包含 NA 的行、删除包含 NA 的列,或者用特定值填充 NA。 1. 删除包含 NA 的…...
Linux复习笔记(一)基础命令和操作
遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。 一、Linux中的基础命令和操作(约30%-40%) 1.用户和组(5%左右) 1.1用户简介(了解) 要求:了解,知道有三个用户…...
多线程的出现解决了什么问题?深入解析多线程的核心价值
多线程的出现解决了什么问题?深入解析多线程的核心价值 1. 引言 在计算机科学中,多线程(Multithreading) 是一种重要的并发编程技术,它允许一个进程同时执行多个任务,从而提高程序的性能和响应能力。那么,多线程究竟是为了解决哪些问题而诞生的?它的核心价值是什么?…...
java集合菜鸟教程
1、Java集合的分类 1Java中的集合类可以分为两大类: (1)实现Collection接口,Collection是一个基本的集合接口,Collection中可以容纳一组集合元素(Element),图1是Collection与子类的…...
体育培训的实验室管理痛点 质检LIMS如何重构体育检测价值链
在竞技体育与全民健身并行的时代背景下,体育培训机构正面临双重挑战:既要通过科学训练提升学员竞技水平,又需严格把控运动安全风险。作为实验室数字化管理的核心工具,质检LIMS系统凭借其标准化流程管控与智能化数据分析能力&#…...
3、食品包装控制系统 - /自动化与控制组件/food-packaging-control
76个工业组件库示例汇总 食品包装线控制系统 这是一个用于食品包装线控制系统的自定义组件,提供了食品包装生产线的可视化监控与控制界面。组件采用工业风格设计,包含生产流程控制、实时数据监控和逻辑编程三个主要功能区域。 功能特点 工业风格UI设…...
AbMole的Calcein-AM/PI细胞双染试剂盒,精准区分细胞活死状态
在细胞生物学研究中,细胞活性检测是基础且关键的实验环节。然而,传统方法在检测活细胞和死细胞时常常面临诸多挑战:例如,检测过程复杂、耗时,容易受到细胞类型和实验条件的限制;荧光信号不稳定,…...
力扣刷题Day 37:LRU 缓存(146)
1.题目描述 2.思路 方法1:直接用Python封装好的数据结构OrderedDict(兼具哈希表与双向链表的数据结构)。 方法2:哈希表辅以双向链表。 3.代码(Python3) 方法1: class LRUCache(collections…...
动态规划之01背包——三道题助你理解01背包
目录 二维数组实现 一维数组实现 例一P1164 小A点菜 P1048 [NOIP 2005 普及组] 采药 P1802 5 倍经验日 首先做动规很好的一个办法就是卡哥提出的动规五部曲个人觉得很好用 确定dp数组(dp table)以及下标的含义 确定递推公式 dp数组如何初始化 确定遍…...
【前端笔记】CSS 选择器的常见用法
目录 1. CSS 的基本语法规范2. CSS 的引入方式3. CSS 选择器的种类3.1 标签选择器3.2 类选择器3.3 id 选择器3.4 复合选择器3.5 通配符选择器 4. 补充内容 1. CSS 的基本语法规范 选择器 {1 条 / n 条声明} 选择器决定的是修改谁声明决定的是怎么修改声明的属性是键值对&…...