成功解决 ‘mysqld‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

很多人都会遇到这个问题 最简单的解决方法如下: 原因在于我们没有设置MYSQL-HOME环境变量 即将mysql的bin目录作为环境变量 那么我就需要进入到mysql安装目录下的bin目录下进行输入对应命令 我们进入到bin目录后能成功进行对应命令输入, 比如我这里输入的是mysql安装相关命令 那么我们在成功安装mysql后, 需要将mysql安装路径下bin目录添加至环境变量, 方便后续操作 步骤如下: 以上设置完毕, 可以在bin目录外部直接输入mysqld等命令.

[C语言][数据结构][链表] 单链表的从零实现!

目录 零.必备知识 1.一级指针 && 二级指针 2. 节点的成员列表 a.数据 b.指向下一个节点的指针. 3. 动态内存空间的开辟 (malloc-calloc-realloc) 一.单链表的实现与销毁 1.1 节点的定义 1.2 单链表的尾插 1.3 单链表的头插 1.4 单链表的尾删 1.5 单链表的头删 1.6 单链表的查找 1.7 在指定位置之前插入数据 1.8 在指定位置之后插入数据 1.9 删除指定位置的数据 1.10 删除指定位置之后的数据 1.11 销毁单链表 二. 单链表源码 SingleList.h SingleList.c 零.必备知识 1.一级指针 && 二级指针 2. 节点的成员列表 a.数据 b.指向下一个节点的指针. 3. 动态内存空间的开辟 (malloc-calloc-realloc) 一.单链表的实现与销毁 注:具体解释都在代码的注释中!(在代码中具体分析) 1.1 节点的定义 1.2 单链表的尾插 1.3 单链表的头插 1.4 单链表的尾删 1.5 单链表的头删 1.6 单链表的查找 1.7 在指定位置之前插入数据 1.8 在指定位置之后插入数据 1.9 删除指定位置的数据 1.

java 读取zip文件的两种方式

以下是使用Java读取zip文件的两种实现方法: 方法1:使用java.util.zip.ZipInputStream类 import java.io.FileInputStream; import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class ZipReader { public static void main(String[] args) { try (InputStream inputStream = new FileInputStream("example.zip"); ZipInputStream zipInputStream = new ZipInputStream(inputStream);) { ZipEntry entry; while ((entry = zipInputStream.getNextEntry()) != null) { // 处理每个zip文件中的项 System.out.println("Entry Name: " + entry.getName()); // 读取zip文件中的内容 byte[] buffer = new byte[1024]; int length; while ((length = zipInputStream.read(buffer)) > 0) { // 处理每个读取的内容 // ... } // 关闭当前项 zipInputStream.

【华为笔试题汇总】[重制版+笔试经验分享] 2024-03-20-华为春招笔试题-三语言题解(Python/Java/Cpp)

🍭 大家好这里是KK爱Coding ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为近期的春秋招笔试题汇总~ 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取,会在飞书进行同步的跟新。 💻 前言 🍭 关于华为 据说今晚有华为的机试啦,华为的春招也算是正式开始了,关于华为的笔试,大家可以自由选时间去安排,大致时间就是每周三,具体哪一周需要自己去做决定,和 HR 沟通或者邮件📧反馈,一般会有 HR 联系你修改信息,包括后面笔试的成绩,也可以问 HR ,华为的 HR 是真滴很不错 👍 📓 笔试要求 华为的笔试有个硬性规定,笔试分是需要达到 150/600 分才算是通过,三道题目的构成分数构成为 100,200, 300 分,后续的面试流程会根据笔试成绩来进行排序哦。 🪜 笔试技巧 笔试的思维破局 之前写别的公司机试的小伙伴一般都是按照顺序来写的,因为越往后的题目难度越高,这样会形成一个惯性,做每家公司的笔试都这么干。但华为题目的代码编写难易度并不一定是递进的,比如第一题可能是题意很简单,但是码量很大。第三题 可能代码随便写几行就能拿到很多分,大家在机试的时候需要把把握好做题的顺序,每道题可以都先过一遍。 骗分技巧 适当使用暴力骗分,如果对于当前这题没有什么想法,不要多想直接写暴力或许能拿到不少的分数。对于题目要求输出 Yes or No ,或者无解输出 -1 的情况,那么可以试试直接输出,一般也能拿到一些分数这里捞一点那里骗一点,说不定就够 150 分了哦 🥰 题目练手 那么本次就给大家带来今年春招提前批的华为的真题练练手,祝大家今晚发挥超长,笔试 AK !! !! 文章目录 💻 前言🍭 关于华为📓 笔试要求🪜 笔试技巧笔试的思维破局骗分技巧 🥰 题目练手 _________________________________________✈️ 笔试题目🍟 01.

使用Java实现Word文件转PDF文件

1.场景 不知大家有没有注意到,在开发工作中,我们或多或少都会接触到文档,不管是开发文档,还是用户手册,都会跟文件打交道,对于使用系统的用户来说,文件要下载再打开会比较繁琐,而且会比较耗磁盘空间,很多时候用户直观地想预览这个文件,Word不支持预览,这个就需要将Word转换为PDF格式才能进行预览,但市面上很多转换的都是商业软件,但这拦不到一个想搞技术的程序猿,在此我分享一个我常用的Word转PDF的方法,希望对你们有用。 2.环境准备 这提供几个转换的Jar包,用来转换pdf的(我使用的是springboot框架,因此用上了Maven仓库,把jar包已经导入了Maven仓库,在下面我会将jar导入到Maven中的命令写出来) <dependency> <groupId>aspose</groupId> <artifactId>aspose-words</artifactId> <version>15.8.0-jdk16</version> </dependency> <dependency> <groupId>aspose</groupId> <artifactId>aspose-slides</artifactId> <version>19.3</version> </dependency> jar包的网盘链接和提取码 链接:https://pan.baidu.com/s/1J1BPC7J5_KG_OEx8w98V2w?pwd=7284 提取码:7284 --来自百度网盘超级会员V6的分享 如何将jar包导入本地Maven仓库,命令如下: mvn install:install-file -Dfile=刚下载的jar包的位置 -DgroupId=依赖里写的groupId -DartifactId=依赖里写的artifactId -Dversion=上面的version -Dpackaging=jar 示例: mvn install:install-file -Dfile=F:\项目\文件预览\lib\aspose-words-15.8.0-jdk16.jar -DgroupId=aspose -DartifactId=aspose-words -Dversion=15.8.0-jdk16 -Dpackaging=jar 准备工作已完成,开始上代码。 3.项目代码 引入springboot依赖和aspose依赖: <dependency> <groupId>aspose</groupId> <artifactId>aspose-words</artifactId> <version>15.8.0-jdk16</version> </dependency> <dependency> <groupId>aspose</groupId> <artifactId>aspose-slides</artifactId> <version>19.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 创建一个工具类,封装word转pdf的操作方法,业务代码去调用这个接口即可: import com.aspose.words.Document; import com.aspose.words.License; import com.aspose.words.SaveFormat; import java.io.*; /** * word转pdf工具类 * * @author shmily */ public class Word2PdfUtil { /** * 许可证字符串(可以放到resource下的xml文件中也可) */ private static final String LICENSE = "

前端使用minio传输文件

minio官方文档 minio-js可以支持ts。 安装完可能会出现 Can‘t import the named export ‘xxx‘ from non EcmaScript module (only default export is available) 可以尝试降低minio的版本 npm install minio@7.0.18 --save 代码: 初始化 const Minio = require('minio') const minioClient = new Minio.Client({ endPoint: '192.l68.0.1', //minio服务器ip,不能加http:// port: 9000, accessKey: 'xxxx', //username secretKey: 'xxxx', //password useSSL: false //https访问需要设置为true }) 上传文件 const stream = require('stream') /** * * @export 上传文件(stream流方法) * @param {*} backetName String 存储桶名字 * @param {*} fileObj Object 文件对象 * @param {*} callback function 回调函数 */ export function uploadFile (backetName, fileObj, callback) { console.

Whisper(语音识别,语音转文本)本地部署

一、安装好ffmpeg 1、安装ffmpeg,这个好像是用于对音频文件解析和处理的,具体不态清楚 ffmpeg安装教程 2、后面可能出现的问题 如果后面运行时,出现 系统找不到指定文件 的bug时,尝试在上一步添加环境变量中,也添加一个系统变量,并重启一下电脑 二、使用Anaconda创建所需的环境 1、创建一个新的环境 conda create -n whisper python=3.9 2、判断自己的设备使用什么版本的Cuda和PyTorch 3、到官网选择正确的版本进行安装 cuda和pytorch版本对应安装网站 4、在虚拟环境中进行安装 在虚拟环境中进行安装 三、安装whipser 1、开始安装 pip install git+https://github.com/openai/whisper.git 2、查阅官方文档,了解相关的使用方法 whisper官方文档 3、实现简单的运行,还有其他的用法可以参考官方文档

Echarts横坐标时间轴,并缩放数据

本文中Echarts的版本为5.5.0 首先说一下我们的项目背景,就是需要一个横坐标为时间轴的折线型数据。折线分为数值类型和枚举类型,也就是说Y坐标为数值型或者枚举型的数据;然后数据的缩放是这样的,把请求到的数据,一次性的全部显示在折线中,并且需要支持鼠标滚轮和鼠标拖拽式,缩放查看局部的数据。效果如图所示: 项目中的难点主要是三部分。1、查询的到的数据,比如查询的是今天的数据,但是今天的话,只有在10点和11点有数据,其他的时间没有数据;2、横坐标下面的显示的当前缩放完成之后的时间范围;3、需要线断开连接,具体的规则是,当数据中有flage:start的时候,就认为这是一个新的曲线了,需要和前面的数据断开显示; 1、正确显示数据 配置dataZoom 针对于第一个问题,采用的是dataZoom中配置,startValue和endValue,而不是配置start和end; dataZoom: [ { type: "inside", // start: 50, // 不能使用百分比,因为搜索的时间和数据的时间不一定能对应上 // end: 100, startValue: zoomStartValue, endValue: zoomEndValue, filterMode: "filter", }, ], 其中zoomStartValue和zoomEndValue就是第一条数据和最后一条数据的时间;例如刚刚说的上面的例子。搜索今天的全部数据,但是只有10点和11点之间是有数据。那么zoomStartvalue="2024-04-10 10:00:00",则zoomEndValue可能就是"2024-04-10 11:30:00"。这里不需要使用时间戳,直接使用字符串类型的时间就可以;但是因为搜索的是今天,所以在用户拖动的时候,应该是能拖动到今天的0点的。结束时间应该是查询的时候的时间。所以这个时候的x轴需要单独的配置; 配置xAxis 在xAxis中,需要配置min和max两个参数,用于让x轴能滑动到今天的0点的时刻,虽然那个时间点并没有数据; xAxis: { type: "time", // 这里需要明确为“time” min: searchBeginTime, max: searchEndTime, axisLine: { show: true, lineStyle: { color: "#C0C0C0", } }, axisTick: { show: true }, axisLabel: { color: "#676767" }, data: xdata, // 这里比较关键,需要传个数据,要不然直接靠server得到的数据,缩放有问题 }, 其中的min和max对应的数据,就是搜索传给后台的数据。比如我搜索的今天的数据,那么searchBeginTime应该是"2024-04-10 00:00:00",searchEndTime应该是当前的搜索的结束时间:"2024-4-10 11:49:02"

深度探索:机器学习梯度提升决策树(GBDT)算法原理及其应用

目录 1. 引言与背景 2. 定理 3. 算法原理 4. 算法实现 5. 优缺点分析 优点: 缺点: 6. 案例应用 7. 对比与其他算法 8. 结论与展望 1. 引言与背景 梯度提升决策树(Gradient Boosting Decision Trees, GBDT)作为一种强大的集成学习方法,在机器学习领域尤其是回归和分类任务中占据着重要地位。其诞生于上世纪90年代末,由Friedman提出,旨在通过迭代构建并组合多个弱学习器(通常是决策树),逐步减小预测残差,从而提升模型的整体性能。GBDT以其卓越的预测精度、良好的泛化能力以及对异常值的稳健性,广泛应用于信用评分、广告点击预测、疾病诊断等多个实际场景,成为数据科学工作者的重要工具。 2. 定理 GBDT算法并非直接基于某个特定定理,而是基于机器学习中的一些基本原则和优化理论。这里可在此我们介绍与GBDT密切相关的理论背景——即梯度提升算法的原理与弱学习器集成思想。 梯度提升算法原理 梯度提升算法的核心思想是通过迭代优化一个累加的预测函数,每一步都针对前一轮的残差(即真实值与预测值之差)构建一个新的弱学习器。具体来说,每轮迭代中,模型会计算残差的负梯度作为新的学习目标,训练一个决策树来拟合该梯度,并以适当的学习率将新树加入到累加函数中。通过这种方式,梯度提升树逐步减小残差,从而提升模型的整体性能。 弱学习器集成思想 GBDT属于集成学习方法中的提升(Boosting)家族,其核心理念是“三个臭皮匠,顶个诸葛亮”。通过将多个弱学习器(即单个性能并不突出的决策树)以某种策略(如梯度提升)组合起来,形成一个强学习器,能够在保持模型简洁性的同时,获得比单一模型更好的预测性能和泛化能力。 3. 算法原理 梯度提升决策树(GBDT)的算法流程如下: 初始化:设定一个初始预测值,如所有样本的目标值的均值,记作F0(x)=c,此时残差为r0=y-F0(x)。 迭代:对于第t轮(t=1,2,...,T): a. 拟合残差:以当前残差rt-1为学习目标,训练一个弱学习器(决策树)h_t(x),使其尽可能拟合rt-1。 b. 计算步长(学习率):确定一个正的常数αt,通常通过交叉验证或线性搜索找到最佳值。 c. 更新预测:将新学习到的决策树加入到累加函数中,更新预测值为Ft(x)=Ft-1(x)+αth_t(x)。 d. 计算新残差:根据新的预测值计算残差rt=y-Ft(x)。 终止:当达到预定的迭代次数T或残差变化小于阈值时停止迭代,最终的预测模型为F(x)=∑t=1Tαth_t(x)。 4. 算法实现 使用Python实现GBDT通常需要借助第三方库,如sklearn或lightgbm。以下是一个使用sklearn库实现GBDT的简单示例: Python import numpy as np from sklearn.tree import DecisionTreeRegressor from sklearn.metrics import mean_squared_error # 定义梯度提升决策树(GBDT)类 class GBDT: def __init__(self, n_estimators=100, max_depth=3, learning_rate=0.

Python 3.12.0 软件安装包下载及安装教程

软件 简介 Python一门面向对象的计算机程序设计语言,它使用对象,类和清晰的语法语言来帮助您创建,编辑和生成自己的应用程序。可以用于网络爬虫、web开发、人工智能、机器学习、数据挖掘及分析等工作,是目前最受欢迎的编程语言之一。 安装 说明 [软件名称]:Python 3.12.0 [软件大小]:49.1 MB [软件语言]:英文 [安装环境]:Win11/Win10/Win8/Win7 [下载地址]:文末获取 [注意事项]:安装前请关闭杀毒软件和防火墙避免误删文件导致安装失败。 安装 步骤 安装步骤: 1.鼠标右键【Python3.12.0】压缩包(win11及以上系统需先点击“显示更多选项”)【解压到Python3.12.0】。 2.打开解压后的文件夹,根据本机电脑系统位数选择安装:鼠标右键【python-3.12.0-amd64】(64位操作系统)或【python-3.12.0-32】(32位操作系统)选择【以管理员身份运行】。 附“操作系统位数”查看方法:鼠标右键桌面【此电脑或计算机】选择【属性】,在【系统类型】处可查看操作系统的位数,下图为64位操作系统。 3.勾选【Use admin……】和【Add python……】,点击【Customize installation】。 4.点击【Next】。 5.修改路径地址首字符“C”可以更改软件安装位置,例如将C改为D,软件将装到D盘;点击【Install】。 6.安装中…… 7.点击【Close】。 8.①点击电脑桌面【开始】菜单;②找到【IDLE(Python 3.12 64-bit)】图标;③按住鼠标左键拖动到电脑桌面。 9.双击【IDLEPython 3.12 64-bit】图标打开软件。 10.安装成功! -END- 关于Python学习指南 学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助! 包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。让你从零基础系统性的学好Python! 👉Python所有方向的学习路线👈 Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取) 👉Python学习视频600合集👈 观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 温馨提示:篇幅有限,已打包文件夹,获取方式在:文末 👉Python70个实战练手案例&源码👈 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。 👉Python大厂面试资料👈 我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 👉Python副业兼职路线&方法👈 学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。 👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费】 点击免费领取《CSDN大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

SpringBoot前后端分离项目,打包、部署到服务器详细图文流程_springboot前后端分离项目怎么部署

重新设置日志字符集(防止放到服务器上去之后日志出现乱码) 二、将源码压缩并上传服务器 1.上传前端文件 提前在本地将完整的源码文件,压缩成.zip格式在服务器上创建存放项目源码的文件夹(/workspace)通过xftp工具将打包好的前端项目源码上传到服务器对应文件夹下使用命令unzip ruoyi-ui.zip来解压项目源码使用命令rm -rf ruoyi-ui.zip删除原来的压缩文件使用命令cd ruoyi-ui/进入源码文件夹 2.上传后端文件(同上) 三、前端项目打包 1.安装依赖 使用命令cd ruoyi-ui/进入源码文件夹npm install --unsafe-perm --registry=https://registry.npm.taobao.org安装前端项目依赖(服务器必须安装node.js)--unsafe-perm 防止权限问题--registry=https://registry.npm.taobao.org 淘宝镜像源,国内速度更快 2.项目打包 使用命令npm run build:prod打包完成后会生成一个dist目录(默认目录名为dist) 四、后端项目打包 1.项目打包(jar包) 使用命令mvn package(需要服务器安装maven环境)使用命令cd target/进入到目录就能看到打好的jar包(这里的jar包是ruoyi.jar)将jar包拷贝到上级目录,防止target目录清理导致jar包丢失 2.项目打包(war包) 修改pom文件 排除掉自带的Tomcat,这样才能部署到外置的tomcat 新增一个启动类,指向原有的启动类 将修改后的两个文件上传到服务器(上传对应文件并替换即可)使用命令mvn clean清理目录使用命令mvn package打war包使用命令cd target在这个目录就找到了war包 五、部署前端项目 1.使用Nginx部署前端项目 使用命令cd /usr/local/nginx/进入到nginx的目录 修改Nginx的配置文件(修改conf文件夹下的nginx.conf文件)将location位置的root后面跟的路径修改为前端项目打包后的文件地址 防止出现权限相关的问题,将文件开头的user修改为root 使用命令cd sbin/进入到对应目录使用命令./nginx启动nginx此时就可以在浏览器输入对应的ip地址访问前端了 六、部署后端项目 1.部署jar包方式 在对应目录下使用命令nohup java -jar ruoyi.jar &后台运行后端项目此时的前端项目可能会依然报错404,这是因为前端和后端的地址没有关联起来重新在nginx.conf文件中配置代理 进入到nginx目录下重新加载一下nginx/usr/local/nginx/sbin/nginx -s reload此时重新访问前端项目,已经不会报错了恭喜你项目部署完成! 2.部署war包方式 ps -aux | grep java查看当前java进程kill -9 进程号关掉进程定位到tomcat的文件夹下cd /usr/local/tomcat/将刚才打包好的war包放到webapps这个目录下cd webapps/后执行命令cp /root/workspace/ruoyi/ruoyi.war ./将war包拷贝到当前目录下启动tomcatservice tomcat start此时会有一个问题,直接访问ip打开的是tomcat的主页,需要在原有的地址后加上/ruoyi才能访问到后端解决这个问题需要修改tomcat的配置,定位到tomcat文件夹下的conf目录中,找到server.xml新增一条配置信息,将原来的访问方式改为根目录访问 将tomcat停掉service tomcat stop 再重新启动service tomcat start 自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

Python 爬虫基础:利用 BeautifulSoup 解析网页内容

1. 理解 Python 爬虫基础 在当今信息爆炸的时代,网络上充斥着海量的数据,而网络爬虫作为一种数据采集工具,扮演着至关重要的角色。网络爬虫是一种自动化的程序,可以模拟浏览器访问网页,获取所需信息并进行提取和整合。Python作为一种简洁、易学的编程语言,在网络爬虫领域备受青睐。 Python爬虫的优势主要体现在其丰富的爬虫库和强大的支持功能上。比如,Requests库可以帮助我们轻松实现网页内容的获取;Beautiful Soup库则提供了强大的HTML和XML解析功能,能够帮助我们高效地提取网页信息。 无论是初学者还是有经验的开发者,掌握Python爬虫技术都能让我们轻松地获取网络上的各种数据,为后续的数据分析和应用提供坚实的基础。在本章节中,我们将深入探讨Python爬虫的基础知识,为进一步的学习和实践打下坚实的基础。 2.1 BeautifulSoup 简介 BeautifulSoup 是一个Python库,它可以从HTML或XML文件中提取数据。它为我们提供了一种简便的方式来浏览、搜索和修改HTML/XML文件的内容。下面将详细介绍BeautifulSoup的特点以及安装步骤。 2.1.1 BeautifulSoup 是什么? BeautifulSoup是Python的一个库,它将复杂的HTML文档转换为一个复杂的树形结构,每个节点都是Python对象。我们可以通过解析这棵树来轻松地获取想要的信息,无需编写复杂的正则表达式。 2.1.2 BeautifulSoup 的特点 以下是BeautifulSoup库的一些主要特点: 支持快速解析和查找HTML内容。提供简单易用的API,使得HTML/XML文档的解析变得简单。能处理不标准的HTML代码,并尝试修正错误的标记。支持模块化扩展,可以通过插件添加新的解析器、过滤器等功能。 2.1.3 安装 BeautifulSoup 要开始使用BeautifulSoup,首先需要安装该库。可以通过pip来安装BeautifulSoup,具体步骤如下: pip install beautifulsoup4 使用上述命令可以安装最新版本的BeautifulSoup。安装完成后,我们就可以开始使用BeautifulSoup来解析网页内容了。 Mermaid 流程图 下面是一个使用Mermaid格式的流程图,演示了BeautifulSoup解析网页内容的流程: 获取HTML页面 创建BeautifulSoup对象 解析HTML内容 提取所需信息 分析数据 通过以上流程图可以清晰地看到,我们需要首先获取HTML页面,然后创建BeautifulSoup对象对页面进行解析,并最终提取所需的信息进行数据分析。 示例代码 下面是一个简单示例代码,展示了如何使用BeautifulSoup解析HTML内容并提取特定信息: from bs4 import BeautifulSoup html_doc = """ <html> <head><title>Sample Website</title></head> <body> <h1>Welcome to Sample Website</h1> <p>Here you can find various tutorials.</p> <a href="https://www.example.com">Click here</a> </body> </html> soup = BeautifulSoup(html_doc, 'html.

Ai绘画|如何安装使用秋叶comfyui整合包,手把手详细教程

大家好,我是程序员晓晓 B 站的秋叶大佬在 1 月份就已经发布了 comfy ui 的整合包。用户将压缩包下载后,能够一键启动 comfy ui。其便利性与之前的 webui 整合包如出一辙。然而在整合包下载完成后,新手或许会遭遇插件以及模型缺失的情况,同时也不清楚该如何运行工作流等问题,本文将引领大家完成 comfy ui 的安装,并运行首个工作流。 何为 comfy ui 呢?先来瞧瞧 webui 与 comfy ui 的对比图吧: sd web ui comfy ui ComfyUI 是一个广受欢迎的图片生成的开源项目,为 AIGC 内容创作者提供了强大的助力。它进一步拓宽了 Stable Diffusion 的创作可能性。ComfyUI 通过节点流程的界面设计,让用户可以轻松拖拽、连接不同的模型、模块和参数,形成高度定制和可复用的 Workflow(AIGC 工作流),而用户无需编写任何代码。 另外,ComfyUI 还有以下优势: 易于共享与协作:支持工作流的导出和分享,不仅加速了项目开发,也为团队间的学习和交流创造了条件。 良好的性能优化:其内存管理和按需加载机制确保在资源受限的环境下,仍能加载大模型生成高质量图像。 可扩展性:用户可以轻松添加自定义节点、插件和模型,社区已贡献了200多个自定义节点,为工作流的设计和优化提供了丰富的选择。 comfy ui 首页的默认工作流,从截图就能知晓,web ui 更为直观,comfy ui 看上去则较为复杂。甚至刚开始会让人一脸茫然,完全不知该从何处着手。这两个软件均是基于 Stable Diffusion 来进行绘图的图形化工具。能够制作出极为精美的各式图片,如二次元图片、美女图片、个人写真等。不懂编程的小白也能够生成 ai 图片,并且还是免费的。comfy ui 的某些功能当前的确还不太好用,不过其功能却更加灵活。在对什么是 vae、文本编码器、采样器等有了基本的了解后,comfy ui 使用起来会更为高效。我们可以将自己的工作流保存为文件,也能使用他人的工作流文件。comfy ui 的 github 地址为:https://github.com/comfyanonymous/ComfyUI。官方的项目介绍能够翻译成:“最强大且模块化的 stable diffusion GUI、api 以及后端,具备图形/节点接口”。

Qt/C++原创项目作品精选(祖传原创/性能凶残/界面精美)

00 前言说明 从事Qt开发十年有余,一开始是做C#.NET开发的,因为项目需要,转行做嵌入式linux开发,在嵌入式linux上做可视化界面开发一般首选Qt,当然现在可选的方案很多比如安卓,但是十多年前那时候板子性能低,安卓在这个上面跑的话卡成屎,当时的内存大概是128MB左右,Qt也是主要用QWidget,刚出来的qml在这个上面跑个最简单的示例也是卡成屎,这也造成了本人一直对qml的印象不大好,非常依赖GPU硬件。所以也一直没有怎么去学习qml,主要深耕在qwidget领域,现在想学的时候,心有余而力不足,包括现在从qmake转向cmake,年纪大了学不动了,哎年轻真好。 学习Qt也是一个渐进的过程,量变产生质变,一点一滴积累,谁都不可能一蹴而就的,在编程的这条路上其实是很孤独的,要能学会左手温暖右手。别看我QtWidget水平比很多人高一点,其实全国也就几万名开外,你们是不知道天外有天,人外有人!应该到处走走,不要坐井观天!因为我遇到过几十个水平比我厉害的多了去了的,这还仅仅是冰山一角!真正的大佬一般不混群也不混论坛的,低调得很!可能这就是所谓的闷声发大财。此情此景我想吟诗一首:误入IT悔无声,单枪匹马夜挑灯,一入Qt深似海,从此脂粉不沾身。此情此景我想再吟诗一首:Qt群里行人稀,常有车手较高低,如今车道依旧在,不见当年老司机。 国内站点:https://gitee.com/feiyangqingyun国际站点:https://github.com/feiyangqingyun个人主页:https://blog.csdn.net/feiyangqingyun视频主页:https://space.bilibili.com/687803542 公众号:Qt实战,各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发。 公众号:Qt入门和进阶,专门介绍Qt/C++相关知识点学习,帮助Qt开发者更好的深入学习Qt。多位Qt元婴期大神,一步步带你从入门到进阶,走上财务自由之路。 01 可视化大屏电子看板系统 采用分层设计,整体总共分三级界面,一级界面是整体布局,二级界面是单个功能模块,三级界面是单个控件。子控件包括饼图、圆环图、曲线图、柱状图、柱状分组图、横向柱状图、横向柱状分组图、合格率控件、百分比控件、进度控件、设备状态面板、表格数据、地图控件、视频控件等。二级界面可以自由拖动悬浮,支持最小化隐藏、最大化关闭、响应双击自定义标题栏。数据源支持模拟数据(默认)、数据库采集、串口通信(需定制)、网络通信(需定制)、网络请求等,可自由设定每个子界面的采集间隔即数据刷新频率。采用纯QWidget编写,亲测Qt4.6到Qt6.6任意版本,理论上支持后续其他Qt版本。超强跨平台,亲测windows、linux、mac、国产uos、国产银河麒麟kylin等系统,效果完美,同时还支持嵌入式linux比如树莓派、香橙派、全志、imx6等。同时集成了自定义控件、qchart饼图、echart地图等功能。内置多套配色风格样式(紫色、蓝色、深蓝、黑色),默认紫色,自适应任意分辨率。可设置系统标题、目标分辨率、布局方案,启动立即应用。可设置主背景颜色、面板颜色、十字线游标颜色等各种颜色。可设置多条曲线不同颜色,没有设置颜色的情况下内置多套精美颜色随机应用。可设置标题栏背景颜色、文字颜色。可设置曲线图表背景颜色、文字颜色、网格颜色。可设置正常颜色、警戒颜色、报警颜色、禁用颜色、百分比进度颜色。可分别设置各种字体大小,比如全局字体、软件名称、标题栏、子标题栏、加粗标签等。可设置标题栏高度、表头高度、行高度。曲线支持游标、定位线、悬停高亮数据点、悬停显示值。柱状图支持顶部(可设置顶端、上部、中间、底部)显示数据,全部自适应计算位置。支持平滑曲线,内置多种平滑曲线算法,还支持面积图平滑。面积图填充颜色可选多种规则比如单色透明度填充、透明度渐变填充等。数据库支持sqlite、mysql、postgresql、oracle、国产人大金仓等数据库。主界面直接鼠标右键切换布局、配色方案、关闭开启某个二级窗体。自动记忆所有子窗口的大小和位置,下次启动立即应用。动态加载布局方案菜单,可以动态新建布局、恢复布局、保存布局、另存布局等,用户可以制造任意布局。二级窗体,双击从主窗体分离出来浮动,可以自由调整大小。再次双击标题栏最大化,再次双击还原。子模块也可以全屏显示作为一个大屏,这样就可以一个大屏拓展出多个子大屏,放大查看子模块的数据详情,适用多屏展示。每个模块都可以自定义采集速度,如果是数据库采集会自动排队处理,后期还可以拓展每个子模块都独立的数据库采集。提供系统设置模块进行整体的配置参数设置,效果立即应用。提供精美炫酷的大屏地图模块,包括静态图片、闪烁效果、迁徙效果、世界地图、区域地图等,可指定点的经纬度坐标,识别单击响应,可以做地图跳转等,每个点都可以不同的颜色和提示信息。除了提供大屏系统外,还将每个模块都做了独立的模块示例界面,每个模块都可以独立学习使用,里面用到的控件也单独做了控件示例界面,方便学习每个控件如何使用。非常详细的开发和使用手册,其中包括数据库说明、模块对照图、控件对照图、项目结构、代码说明(精确到每个类)、演示demo、使用方法等。 02 物联网管理平台 2.1 软件模块 设备监控模块,包括数据监控(表格形式展示)、设备面板(面板形式展示)、地图监控(地图形式展示)、曲线监控(曲线形式展示)。数据查询模块,包括报警记录、运行记录、操作记录。系统设置模块,包括基本设置、端口管理、控制器管理、探测器管理、报警联动、类型设置等。其他设置模块,包括用户管理、地图管理、位置调整、组态设计、设备调试等。 2.2 基础功能 设备数据采集,支持串口、网络,串口可设置串口号、波特率,网络可设置IP地址、通讯端口。每个端口支持采集周期时间,默认1秒钟一个设备。支持设置通讯超时次数,默认3次。支持最大重连时间,用于重新读取离线的设备。控制器信息,能够添加控制器名称,选择控制器地址、控制器型号,设置该控制器下面的探测器数量。探测器信息,能够添加位号、探测器型号、气体种类、气体符号、高报值、低报值、缓冲值、清零值、是否启用、报警声音、背景地图、存储周期、数值换算小数点位数、报警延时时间、报警的类型(HH,LL,HL)等。类型管理可配置控制器型号、探测器型号、气体种类、气体符号等。地图支持导入和删除,所有的探测器在地图上的位置可自由拖动保存。端口信息、控制器信息、探测器信息、类型信息、用户信息等,都支持导入、导出、导出到excel、打印。运行记录、报警记录、操作记录,都支持多条件组合查询,比如时间段、控制器、探测器等,所有记录支持导出到excel/pdf和打印。运行记录、报警记录、操作记录都可删除指定时间范围内的数据。系统设置可选择对应表最大保存记录数,自动清理早期数据,留出足够的空间存储重要的数据。报警短信转发,支持多个接收手机号码,可设定发送间隔,比如即时发送或者6个小时发送一次所有的报警信息,短信内容过长,自动拆分多条短信。报警邮件转发,支持多个接收邮箱,可设定发送间隔,比如即时发送或者6个小时发送一次所有的报警信息,支持附件发送。设置软件的中文标题、英文标题、logo路径、版权所有等。开关设置开机运行、报警声音、自动登录、记住密码等。报警声音可设置播放次数,界面风格样式提供18套皮肤文件选择。用户管理,包括用户权限配置,不同用户可以有不同模块的权限。用户登录和用户退出,可以记住密码和自动登录,超过三次报错提示并关闭程序。四种监控模式,设备面板监控、地图监控、表格数据监控、曲线数据监控,可自由切换,四种模式下都实时展示采集到的数据,报警闪烁等。报警继电器联动,一个位号可以跨串口联动多个模块和继电器号,支持多对多。 2.3 特色功能 通信协议支持modbus_com、modbus_tcp_rtu,后期拓展mqtt等协议。数据源除了真实的硬件设备采集,还可选数据库采集,这样用户可以安排其他程序员比如java程序员将前端采集好的数据放到数据库,本系统直接从数据库采集即可。数据库采集模式可以作为通用的系统使用,更适合多人多系统协作。智能跳过超时的设备,加快对在线设备的采集速度,当设备数量很多的时候尤其有用。对智能跳过的超时的设备,在设定的重连时间自动采集一次,以便探测设备是否又重新上线。每个探测器可控是否启用,不启用则不会采集,也不会在界面显示,相当于运行阶段临时关闭。探测器可设置缓冲值和报警延时时间,在该值附近波动产生的报警,不计入报警,只有持续处于报警值且超过报警延时时间才算真正报警,这样可以规避很多波动导致的误报。探测器可设置存储周期,按照设定的时间来存储一条运行记录,可以按照重要程度对重要性高的设定存储周期短一些,不重要的设定大一些,这样可以节省不少的存储空间,也保证了重要的数据及时存储。探测器可设置清零值,在一些高精度高灵敏的设备可能出厂的时候默认值未必是0,需要设定清零值来表示初始值。探测器可设置小数点,用于计算后的真实数据控制小数点点位显示,相当于除以10、除以100、除以1000,这样大部分的探测器数据直接通过小数点位设置控制真实换算后的值,极个别的需要特殊转换的可以在通信协议中约定。探测器报警的类型支持多种,有些设备是高于某个值高报,低于某个值低报,而有些设备是在最小值最大值范围内是高报,低于最小值低报,高于最大值正常。这样可以分情况处理,涵盖各种报警类型。原创数据导入、导出、打印机制,跨平台不依赖任何组件,瞬间导出数据。导出到excel的记录支持所有excel、wps等表格文件版本,不依赖excel等软件。高报颜色、低报颜色、正常颜色、默认值颜色等,都可以自由设置。支持云端数据同步,将本地采集到的数据实时同步到云端。支持网络转发和网络接收,网络接收开启后,软件从udp接收数据进行解析。网络转发支持多个目标IP,这样就实现了本地采集的软件,自由将数据转到客户端,随时查看采集到的数据。自动记住用户最后停留的界面以及其他配置信息,重启后自动应用。报警自动切换到对应的地图,探测器按钮闪烁,表格数据对应颜色显示。双击探测器图标,弹出对应探测器详细信息,可以根据需要定制回控操作。数据库支持多种,包括sqlite、mysql、sqlserver、postgresql、oracle、人大金仓等。本地设备采集到的数据实时上传到云端,以便手机APP或者web等其他方式提取。自带设备模拟工具,支持不同型号的多个设备数据模拟,同时还带数据库数据模拟,以便在没有设备的时候测试数据。标准modbus协议,各种控制器类型、探测器类型、种类、符号等全部自定义,非常灵活和强大,通信协议示例数据非常完整,通用各种modbus协议系统,适用于各种应用场景接入。同时集成了串口通信、网络通信、数据库通信、数据导入导出打印、通信协议解析、界面UI、全局换肤等众多组件和知识点,非常适合新手入门和进阶。支持xp、win7、win10、、win11、linux、mac、各种国产系统(UOS、中标麒麟、银河麒麟等)、嵌入式linux等系统。注释完整,项目结构清晰,超级详细完整的使用开发手册,精确到每个代码文件的功能说明,不断持续迭代版本。 03 视频监控系统 3.1 软件模块 视频监控模块,各种停靠小窗体子模块,包括设备列表、图文警情、窗口信息、云台控制、预置位、巡航设置、设备控制、悬浮地图、网页浏览等。视频回放模块,包括本地回放、远程回放、设备播放、图片回放、视频上传等。电子地图模块,包括图片地图、在线地图、离线地图、路径规划等。日志查询模块,包括本地日志、设备日志等。系统设置模块,包括系统设置(基本设置、视频参数、数据库设置、地图配置、串口配置等)、录像机管理、摄像机管理、轮询配置、用户管理等。 3.2 基础功能 支持各种视频流(rtsp、rtmp、http等)、视频文件(mp4、rmvb、avi等)、本地USB摄像机播放。支持多画面切换,包括1、4、6、8、9、13、16、25、36、64画面切换。支持全屏切换,多种切换方式包括鼠标右键菜单、工具栏按钮、快捷键(alt+enter全屏,esc退出全屏)。支持视频轮询,包括1、4、9、16画面轮询,可设置轮询分组(轮询预案)、轮询间隔、码流类型等。支持onvif协议,包括设备搜索、云台控制、设备控制(图片参数、校对时间、系统重启,抓拍图片等)。支持权限管理,不同的用户可以对应不同的模块权限,比如删除日志、关闭系统等。数据库支持多种,包括sqlite、mysql、sqlserver、postgresql、oracle、人大金仓等。本地USB摄像机支持设置分辨率、帧率等参数。所有停靠模块都自动生成对应的菜单用来控制显示和隐藏,在标题栏右键可以弹出。支持显示所有模块、隐藏所有模块、复位普通布局、复位全屏布局。双击设备弹出实时预览视频,支持图片地图、在线地图、离线地图等。摄像机节点拖曳到对应窗体播放视频,同时支持拖曳本地文件直接播放。删除视频支持鼠标右键删除、悬浮条关闭删除、拖曳到视频监控面板外删除等多种方式。图片地图上设备按钮可自由拖动,自动保存位置信息。百度地图上可以鼠标单击获取经纬度信息,用来更新设备位置。视频监控面板窗体中任意通道支持拖曳交换,瞬间响应。封装了百度地图,视图切换,运动轨迹,设备点位,鼠标按下获取经纬度等。双击节点、拖曳节点、拖曳窗体交换位置等操作,均自动更新保存最后的播放地址,下次软件打开自动应用。右下角音量条控件,失去焦点自动隐藏,音量条带静音图标。支持视频截图,可指定单个或者对所有通道截图,底部小工具栏也有截图按钮。支持超时自动隐藏鼠标指针、自动全屏机制。支持onvif云台控制,可上下左右移动云台摄像机,包括复位和焦距调整等。支持任意onvif摄像机,包括但不限于海康、大华、宇视、天地伟业、华为等。可保存视频,可选定时存储或者单文件存储,可选存储间隔时间。可设置视频流通信方式tcp+udp,可设置视频解码是速度优先、质量优先、均衡等。可设置软件中文名称、英文名称、LOGO图标等。存储的视频文件支持导出到指定目录,支持批量上传到服务器。 3.3 特色功能 主界面采用停靠窗体模式,各种组件以小模块的形式加入,可自定义任意模块加入。停靠模块可拖动任意位置嵌入和悬浮,支持最大化全屏,支持多屏幕。双重布局文件存储机制,正常模式、全屏模式都对应不同的布局方案,自动切换和保存,比如全屏模式可以突出几个模块透明显示在指定位置,更具科幻感现代化。原创onvif协议机制,采用底层协议解析(udp广播搜索+http请求执行命令)更轻量易懂易学习拓展,不依赖任何第三方组件比如gsoap。原创数据导入导出机制,跨平台不依赖任何组件,瞬间导出数据。内置多个原创组件,宇宙超值超级牛逼,包括数据导入导出组件(导出到xls、pdf、打印)、数据库组件(数据库管理线程、自动清理数据线程、万能分页、数据请求等)、地图组件、视频监控组件、文件多线程收发组件、onvif通信组件、通用浏览器内核组件等。自定义信息框+错误框+询问框+右下角提示框(包含多种格式)等。精美换肤,高达17套皮肤样式随意更换,所有样式全部统一,包括菜单等。视频控件悬浮条可以自行增加多个按钮,监控界面底部小工具栏也可自行增加按钮。双击摄像机节点自动播放视频,双击节点自动依次添加视频,会自动跳到下一个,双击父节点自动添加该节点下的所有视频。可选主码流、子码流。录像机管理、摄像机管理,可添加删除修改导入导出打印信息,立即应用新的设备信息生成树状列表,不需重启。可选多种内核自由切换,ffmpeg、vlc、mpv等,均可在pro中设置。推荐用ffmpeg,跨平台最多,默认提供好了linux和mac平台上编译好的库。支持硬解码,可设置硬解码类型(qsv、dxva2、d3d11va等)。默认采用opengl绘制视频,超低的CPU资源占用,支持yuyv和nv12两种格式绘制,很牛逼。高度可定制化,用户可以很方便的在此基础上衍生自己的功能,比如增加自定义模块,增加运行模式、机器人监控、无人机监控、挖掘机监控等。支持xp、win7、win10、linux、mac、各种国产系统(UOS、中标麒麟、银河麒麟等)、嵌入式linux等系统。注释完整,项目结构清晰,超级详细完整的使用开发手册,精确到每个代码文件的功能说明,不断持续迭代版本。 04 自定义控件大全 超过202个精美控件并持续不断迭代更新升级,种类超多,控件类型极其丰富。涵盖了各种仪表盘、进度条、进度球、指南针、曲线图、标尺、温度计、导航条、导航栏,flatui、高亮按钮、滑动选择器、农历、广告轮播、饼状图、环形图、时间轴、拓展控件、增强控件等。每个类都是独立的一个.h头文件和.cpp实现文件组成,零耦合,不依赖其他文件,方便单个控件独立出来以源码形式集成到项目中,方便直观。控件数量远超其他第三方控件库比如qwt集成的控件数量,使用方式也比其简单友好零耦合。支持任意Qt版本,亲测Qt4/5/6的所有版本,全部纯Qt编写,QWidget+QPainter绘制。支持任意编译器,包括但不限于mingw、msvc、gcc、clang等编译器。支持任意操作系统,包括但不限于windows、linux、mac、android、uos、银河麒麟、各种国产linux、嵌入式linux、树莓派、香橙派、全志H3等。支持编译生成设计师插件,可直接集成到QtCreator的控件栏中,和自带的控件一样使用,大部分效果只要设置几个属性即可,极为方便。支持编译生成独立的非插件形式的动态库文件,体积小,比如嵌入式linux不支持designer只需要动态库的形式。每个控件都有一个单独的完整的使用demo,方便参考学习单个控件使用,非常适合初学者。提供一个所有控件使用的集成的example,方便快速查看所有控件的效果。支持直接源码集成到example的方式,方便编译到安卓,for web套件等。支持编译成wasm文件,直接网页运行,可以在谷歌、火狐、edge等浏览器运行,原生性能。每个控件的源代码都有详细中文注释,都按照统一设计规范编写,方便学习自定义控件的编写。每个控件都内置默认配色,demo对应的配色都非常精美。部分控件提供多种样式风格选择,多种指示器样式选择。所有控件自适应布局和窗体拉伸变化,自动缩放。配套额外的自定义控件属性设计器,类似组态设计器,纯中文属性名称,支持拖曳设计,所见即所得,支持导入导出xml格式。集成fontawesome图形字体+阿里巴巴iconfont收藏的几百个图形字体,享受图形字体带来的乐趣。所有控件最后生成一个dll动态库文件,可以直接集成到qtcreator中拖曳设计使用。控件源码全部分门别类存放,pri模块形式集成,提供控件对照表快速查找对应控件和说明。 05 自定义曲线图柱状图 可设置X轴Y轴范围值。可设置背景颜色、文本颜色、网格颜色。可设置三条曲线颜色、颜色集合。可设置是否显示十字定位线,支持分别开启横向或者纵向定位线。可设置十字定位线的宽度、颜色。可设置是否显示数据点、数据点的大小。可设置是否填充背景颜色形成面积图。可设置各种交互模式,比如拖动、滚轮缩放等。可设置坐标轴间距、第二坐标系可见。提供接口setDataLine直接设置曲线,支持多条。提供接口setDataBar直接设置柱状图,支持多条形成堆积图。提供接口setLabs设置文本标签替代key,包括X轴和Y轴。提供清空数据、重绘图表、外部获取QCustomPlot对象等函数接口,这样就可以进行更加详细的参数设置。提供函数 start() 和 stop() 来模拟正弦曲线。可设置柱状图显示值、值的位置(顶部、中间、底部)、精确度、颜色。支持鼠标移动到数据点高亮显示数据点,显示数据提示信息。可设置提示信息位置:自动处理、顶部、右上角、右侧、右下角、底部、左下角、左侧、左上角等。可设置是否校验数据产生不同的背景颜色,柱状图的每根柱子都可以根据数据生成不同背景颜色,比如预警黄色、报警红色。可设置是否显示图例、图例位置、图例行数、图例单行显示。支持多条曲线、柱状图、柱状分组图、横向柱状图、横向分组图、柱状堆积图等。内置 N>15 套精美颜色,自动取颜色集合的颜色,省去配色的烦恼。每条柱状图都可以设置不同的颜,分组柱状图可以设置颜色交替。Y轴数值支持百分比显示,可拓展改成成其他格式。内置平滑曲线算法,支持平滑曲线绘制,传入点集合即可。同时支持 QCustomPlot 1.3、2.0、2.1等后续所有版本。提供多坐标轴示例,一条曲线对应自己独立的坐标轴。提供多曲线图示例,一个曲线控件中绘制多条独立的曲线,曲线有自己的独立的坐标轴,非常适用于一个设备需要分开展示多条曲线的场景,而不是共用一套坐标系。支持Qt4-Qt6任意Qt版本,支持任意编译器、任意操作系统。 06 视频监控Onvif综合示例 广播搜索设备,支持IPC和NVR,依次返回。可选择不同的网卡IP进行对应网段设备的搜索。依次获取Onvif地址、Media地址、Profile文件、Rtsp地址。可对指定的Profile获取视频流Rtsp地址,比如主码流地址、子码流地址。可对每个设备设置Onvif用户信息,用于认证获取详细信息。可实时预览摄像机图像。支持云台控制,可上下左右调节云台,支持绝对移动、相对移动、连续移动三种方式,可对图像拉近拉远。支持获取预置位集合、调用预置位、添加预置位、删除预置位等。支持图片参数设置,包括亮度、对比度、饱和度、锐度等。支持Qt4和Qt6任意Qt版本以及后续Qt版本,亲测Qt4.7到Qt6.5。支持任意编译器,亲测mingw、msvc、gcc、clang。支持任意操作系统,亲测xp、win7、win10、android、linux、嵌入式linux、树莓派全志H3等。支持任意Onvif摄像机和NVR,亲测海康、大华、宇视、天地伟业、华为、海思芯片内核等,可定制开发。支持对指定IP地址及onvif地址进行单播搜索,比如跨网段情况下非常有用。支持指定过滤条件过滤搜索设备,比如只搜索某个网段的设备或者针对某个地址的设备。支持搜索间隔和搜索策略设置,保证所有设备搜索回来,在大量设备现场很有用(亲测上千个摄像机现场,搜索回来的设备数量比摄像机厂家自带搜索工具还要准确)。可对设备进行重启、网络参数获取等。支持各种事件订阅(入侵报警、越界报警、遮挡报警等)、Onvif抓图等操作。支持NTP校时和时间同步设置。支持OSD相关操作,可以增删改查OSD信息。内置了线程实时执行Onvif指令队列,排队最大速度的执行对应的指令,执行结果信号发出。采用的最底层的TCP+UDP通信机制,原创最底层协议解析,纯QtWidget编写。超级小巧轻量,总共约3000行代码,不依赖任何第三方的库和组件,跨平台。封装好了通用的数据发送和接收解析的函数,可以非常方便的自行拓展其他Onvif处理。工具上提供了收发数据文本框,显示收发的数据,方便查看和分析。支持所有Onvif设备,代码工整,接口友好,直接引入pri即可使用。 07 视频综合应用示例 7.1 基础功能 支持各种音频视频文件格式,比如mp3、wav、mp4、asf、rm、rmvb、mkv等。支持本地摄像头设备和本地桌面采集,支持多设备和多屏幕。支持各种视频流格式,比如rtp、rtsp、rtmp、http、udp等。本地音视频文件和网络音视频文件,自动识别文件长度、播放进度、音量大小、静音状态等。文件可以指定播放位置、调节音量大小、设置静音状态等。支持倍速播放文件,可选0.5倍、1.0倍、2.5倍、5.0倍等速度,相当于慢放和快放。支持开始播放、停止播放、暂停播放、继续播放。支持抓拍截图,可指定文件路径,可选抓拍完成是否自动显示预览。支持录像存储,手动开始录像、停止录像,部分内核支持暂停录像后继续录像,跳过不需要录像的部分。支持无感知切换循环播放、自动重连等机制。提供播放成功、播放完成、收到解码图片、收到抓拍图片、视频尺寸变化、录像状态变化等信号。多线程处理,一个解码一个线程,不卡主界面。 7.2. 特色功能 同时支持多种解码内核,包括qmedia内核(Qt4/Qt5/Qt6)、ffmpeg内核(ffmpeg2/ffmpeg3/ffmpeg4/ffmpeg5/ffmpeg6)、vlc内核(vlc2/vlc3)、mpv内核(mpv1/mp2)、mdk内核、海康sdk、easyplayer内核等。非常完善的多重基类设计,新增一种解码内核只需要实现极少的代码量,就可以应用整套机制,极易拓展。同时支持多种画面显示策略,自动调整(原始分辨率小于显示控件尺寸则按照原始分辨率大小显示,否则等比缩放)、等比缩放(永远等比缩放)、拉伸填充(永远拉伸填充)。所有内核和所有视频显示模式下都支持三种画面显示策略。同时支持多种视频显示模式,句柄模式(传入控件句柄交给对方绘制控制)、绘制模式(回调拿到数据后转成QImage用QPainter绘制)、GPU模式(回调拿到数据后转成yuv用QOpenglWidget绘制)。支持多种硬件加速类型,ffmpeg可选dxva2、d3d11va等,vlc可选any、dxva2、d3d11va,mpv可选auto、dxva2、d3d11va,mdk可选dxva2、d3d11va、cuda、mft等。不同的系统环境有不同的类型选择,比如linux系统有vaapi、vdpau,macos系统有videotoolbox。解码线程和显示窗体分离,可指定任意解码内核挂载到任意显示窗体,动态切换。支持共享解码线程,默认开启并且自动处理,当识别到相同的视频地址,共享一个解码线程,在网络视频环境中可以大大节约网络流量以及对方设备的推流压力。国内顶尖视频厂商均采用此策略。这样只要拉一路视频流就可以共享到几十个几百个通道展示。自动识别视频旋转角度并绘制,比如手机上拍摄的视频一般是旋转了90度的,播放的时候要自动旋转处理,不然默认是倒着的。自动识别视频流播放过程中分辨率的变化,在视频控件上自动调整尺寸。比如摄像机可以在使用过程中动态配置分辨率,当分辨率改动后对应视频控件也要做出同步反应。音视频文件无感知自动切换循环播放,不会出现切换期间黑屏等肉眼可见的切换痕迹。视频控件同时支持任意解码内核、任意画面显示策略、任意视频显示模式。视频控件悬浮条同时支持句柄、绘制、GPU三种模式,非绝对坐标移来移去。本地摄像头设备支持指定设备名称、分辨率、帧率进行播放。本地桌面采集支持设定采集区域、偏移值、指定桌面索引、帧率、多个桌面同时采集等。录像文件同时支持打开的视频文件、本地摄像头、本地桌面、网络视频流等。瞬间响应打开和关闭,无论是打开不存在的视频或者网络流,探测设备是否存在,读取中的超时等待,收到关闭指令立即中断之前的操作并响应。支持打开各种图片文件,支持本地音视频文件拖曳播放。视频流通信方式可选tcp/udp,有些设备可能只提供了某一种协议通信比如tcp,需要指定该种协议方式打开。可设置连接超时时间(视频流探测用的超时时间)、读取超时时间(采集过程中的超时时间)。支持逐帧播放,提供上一帧/下一帧函数接口,可以逐帧查阅采集到的图像。音频文件自动提取专辑信息比如标题、艺术家、专辑、专辑封面,自动显示专辑封面。视频响应极低延迟0.2s左右,极速响应打开视频流0.5s左右,专门做了优化处理。支持H264/H265编码(现在越来越多的监控摄像头是H265视频流格式)生成视频文件,内部自动识别切换编码格式。支持用户信息中包含特殊字符(比如用户信息中包含+#@等字符)的视频流播放,内置解析转义处理。支持滤镜,各种水印及图形效果,支持多个水印和图像,可以将OSD标签信息和各种图形信息写入到MP4文件。支持视频流中的各种音频格式,AAC、PCM、G.726、G.711A、G.711Mu、G.711ulaw、G.711alaw、MP2L2等都支持,推荐选择AAC兼容性跨平台性最好。内核ffmpeg采用纯qt+ffmpeg解码,非sdl等第三方绘制播放依赖,gpu绘制采用qopenglwidget,音频播放采用qaudiooutput。内核ffmpeg和内核mdk支持安卓,其中mdk支持安卓硬解码,性能非常凶残。可以切换音视频轨道,也就是节目通道,可能ts文件带了多个音视频节目流,可以分别设置要播放哪一个,可以播放前设置好和播放过程中动态设置。可以设置视频旋转角度,可以播放前设置好和播放过程中动态设置。视频控件悬浮条自带开始和停止录像切换、声音静音切换、抓拍截图、关闭视频等功能。音频组件支持声音波形值数据解析,可以根据该值绘制波形曲线和柱状声音条,默认提供了声音振幅信号。标签和图形信息支持三种绘制方式,绘制到遮罩层、绘制到图片、源头绘制(对应信息可以存储到文件)。通过传入一个url地址,该地址可以带上通信协议、分辨率、帧率等信息,无需其他设置。各组件中极其详细的打印信息提示,尤其是报错信息提示,封装的统一打印格式。针对现场复杂的设备环境测试极其方便有用,相当于精确定位到具体哪个通道哪个步骤出错。代码框架和结构优化到最优,性能强悍,持续迭代更新升级。源码支持Qt4、Qt5、Qt6,兼容所有版本。 7.3. 视频控件 可动态添加任意多个osd标签信息,标签信息包括名字、是否可见、字号大小、文本文字、文本颜色、背景颜色、标签图片、标签坐标、标签格式(文本、日期、时间、日期时间、图片)、标签位置(左上角、左下角、右上角、右下角、居中、自定义坐标)。可动态添加任意多个图形信息,这个非常有用,比如人工智能算法解析后的图形区域信息直接发给视频控件即可。图形信息支持任意形状,直接绘制在原始图片上,采用绝对坐标。图形信息包括名字、边框大小、边框颜色、背景颜色、矩形区域、路径集合、点坐标集合等。每个图形信息都可指定三种区域中的一种或者多种,指定了的都会绘制。内置悬浮条控件,悬浮条位置支持顶部、底部、左侧、右侧。悬浮条控件参数包括边距、间距、背景透明度、背景颜色、文本颜色、按下颜色、位置、按钮图标代码集合、按钮名称标识集合、按钮提示信息集合。悬浮条控件一排工具按钮可自定义,通过结构体参数设置,图标可选图形字体还是自定义图片。悬浮条按钮内部实现了录像切换、抓拍截图、静音切换、关闭视频等功能,也可以自行在源码中增加自己对应的功能。悬浮条按钮对应实现了功能的按钮,有对应图标切换处理,比如录像按钮按下后会切换到正在录像中的图标,声音按钮切换后变成静音图标,再次切换还原。悬浮条按钮单击后都用名称唯一标识作为信号发出,可以自行关联响应处理。悬浮条空白区域可以显示提示信息,默认显示当前视频分辨率大小,可以增加帧率、码流大小等信息。视频控件参数包括边框大小、边框颜色、焦点颜色、背景颜色(默认透明)、文字颜色(默认全局文字颜色)、填充颜色(视频外的空白处填充黑色)、背景文字、背景图片(如果设置了图片优先取图片)、是否拷贝图片、缩放显示模式(自动调整、等比缩放、拉伸填充)、视频显示模式(句柄、绘制、GPU)、启用悬浮条、悬浮条尺寸(横向为高度、纵向为宽度)、悬浮条位置(顶部、底部、左侧、右侧)。 08 输入法 纯QWidget编写,支持任何目标平台(亲测windows、linux、嵌入式linux等),支持任意Qt版本(亲测Qt4.6.0到Qt6.6),支持任意编译器(亲测mingw、gcc、msvc等),支持任意控件输入包括网页中的输入控件。调用极为方便,pri文件调用形式,只要改成文件包含即可,例如pro文件中写 include($$PWD/input2019/input2019.pri)。界面清晰简洁,UI美观友好,高仿IOS输入法,非常适合触摸设备。顶部滑动选词+弹出汉字面板选词,支持滑动。具有记忆功能,之前选中过的词语首先显示,支持单个拼音多个汉字,自动调整优先级。具有造词功能,可以直接打开文件文件写入自定义词组,最高级别显示。支持数字小键盘,可选是弹出全键盘的数字面板还是小键盘。多版面字符页面,可以自行拓展各种字符展示,可用于多语言输入。支持Qt程序嵌入的浏览器中的网页中的文本框等控件的输入。界面大小随意设置,采用布局自使用任何分辨率。属性控制数字输入,例如需要文本框默认弹出的是数字则设置代码 ui->txt->setProperty(“flag”, “number”);自由控制需要显示输入法和不需要显示输入法,当某些控件不需要弹出输入法,只需要对应不需要弹出输入法的控件设置属性noinput为真即可。例如ui->txt->setProperty(“noinput”, true);界面自适应屏幕大小,输入法弹出位置为控件底部时,当超过桌面右边或者底部时,自动调整位置。实现了长按超过500毫秒重复执行按下的键的功能。例如长按退格键,不断删除。英文、中文、数字字母、大小写、特殊字符自由切换。支持单拼、全拼、模糊拼音输入,智能分页算法,可任意翻页查看汉字词组。默认自带5种皮肤颜色,可随意切换,用户也可用QSS自定义皮肤。谷歌内核的输入法引擎,品质保证,字库文件1MB,不依赖数据库,资源占用低效率极高。支持模糊拼音,比如nh=你好。可选windows专有版本,支持外部程序输入,比如输入到记事本、QQ聊天窗口等。整个输入法代码行数1000行左右,非常小,不会对程序增加大小造成负担。代码结构极为清晰,注释详细,非常容易阅读和理解,同时也可以自行修改拓展自定义的需求。 09 数据库综合示例 同时支持多种数据库比如odbc、sqlite、mysql、postgresql、sqlserver、oracle、人大金仓等。一个数据库类即可管理本地数据库通信,也支持远程数据库通信等。数据库线程支持执行各种sql语句,包括单条和批量。组件中的所有类打印信息、错误信息、执行结果都信号发出去。集成数据库通用翻页类(负责具体处理逻辑),搭配分页导航控件(负责外观),形成超级牛逼的翻页控件。集成数据库自动清理类,设定最大记录数后台自动清理早期数据。集成自定义委托类,支持复选框、文本框、下拉框、日期框、微调框、进度条等。同时支持Qt4-Qt6,亲测Qt4.

pip is configured with locations that require TLS/SSL, however the ssl module in Python is notable

现象 执行pip install时报错: WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. Hint: It looks like a path. The path does exist. WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("

JavaScript中的for...of循环的用法详解

目录 什么是 for...of 循环 for...of 循环的应用场景 遍历数组 遍历字符串 遍历 Map 遍历 Set for...of中使用 break 和 continue 总结 注意事项 结语 参考资料 JavaScript 是一种非常流行的编程语言,用于前端和后端开发,以及各种 Web 应用程序。其中,for...of 循环是 JavaScript 中的一种重要循环结构,它能够帮助开发者遍历各种数据结构,从而更加高效地编写代码。本文将深入探讨 JavaScript 中的 for...of 循环,包括其语法、用法、应用场景以及一些实际的例子。 什么是 for...of 循环 for...of 循环是 JavaScript 中的一种循环结构,它可以用于遍历各种数据结构,例如数组、字符串、Map、Set 等。for...of 循环通常用于替代传统的 for 循环或 forEach 循环,因为它具有更加简洁和易读的语法,能够提高代码的可读性和可维护性。 在 JavaScript 中,for...of 循环的语法如下: for (variable of iterable) { // code block to be executed } 其中,variable 是一个变量名,表示循环中每次迭代时的当前值,iterable 是一个可迭代对象,表示要遍历的数据结构。在每次循环中,变量 variable 将依次赋值为 iterable 中的每个元素,并执行一次 code block 中的代码。

docker设置国内镜像源

一、国内加速地址 1、阿里云镜像站:(需登录,免费) https://<your_code>.mirror.aliyuncs.com 2、网易云镜像站: http://hub-mirror.c.163.com 3、百度云镜像站: https://mirror.baidubce.com 4、上海交大镜像站: https://docker.mirrors.sjtug.sjtu.edu.cn 5、南京大学镜像站: https://docker.nju.edu.cn 以下连接不公开或已失效: 1、Docker 中国官方镜像:(已关闭) https://registry.docker-cn.com 2、中国科技大学 USTC:(仅供内部访问) https://docker.mirrors.ustc.edu.cn 阿里云容器 生成自己的加速地址 登录:cr.console.aliyun.com 点击“创建我的容器镜像”,得到专属加速地址。 二、修改方法 创建或修改 /etc/docker/daemon.json 文件,修改为如下形式 { "registry-mirrors": [ "https://registry.hub.docker.com", "http://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.nju.edu.cn" ] } 加载重启docker systemctl restart docker 查看是否成功 docker info Docker Hub 镜像测速 # 测速前先移除本地的镜像! $ docker rmi nginx:latest # 使用 time 统计所花费的总时间。 $ time docker pull nginx:latest Pulling repository nginx [...] real 1m14.078s user 0m0.176s sys 0m0.

大数据的关键技术之——大数据采集

大数据的关键技术之——大数据采集 本文目录: 一、写在前面的话 二、大数据采集概念 三、大数据采集步骤 3.1、大数据采集步骤(总体角度) 3.2、大数据采集步骤(数据集角度) 3.3、大数据采集步骤(数据集角度) 四、数据源与数据类型的关系 4.1、大数据体系数据 4.2、数据源与数据类型的关系 五、大数据体系中数据类型 5.1、结构化数据 5.2、半结构化数据 5.3、非结构化数据 六、大数据采集技术 6.1、web数据采集 6.2、系统日志采集 6.3、数据库采集 6.4、其他数据(感知设备等数据采集) 七、大数据采集方式 八、大数据采集特点 一、写在前面的话 科幻故事里,当失控的AI把攻击目标盯向人类,人类大多数一败涂地。当失控的某些人类携带高科技把攻击目标盯向普通人时,我们同样一败涂地,这已经真实发生的事情了。例如挑拨是非,故意让双方误会然后互相憎恨,它们的方式除了普通级别的断章取义或者各种造假,甚者是直接高科技脑部情感操控,让你情绪处于崩溃状态,然后故意让别人来看,说这个人就是这个样子的。。。各种黑化你的方式层出不穷。。。 在这种特殊环境下,无助的我们只能依靠自我调节能力。前段时间,在某位前辈的博客中我发过一些个人看法,记录如下: 个人觉得,新环境下,或许添加一个 ”韧“ 会更好一点。即无论世事如何变迁(人、物、事),都能抗得住打击,保持内心的平静和自我调节能力,冷静妥善地处理各种意外,保证所有事情的正常推进。。。 我不知道怎么解释“韧”,“韧”是我最近在异常打击和被攻击下自己总结出来的经验,就是无论我遇到什么打击和困难,我都想办法恢复到自己原来的状态,不因变故而改变自己原来的性格,不因变故而心烦,不因变故而迁怒别人,不因变故而放弃自己想要做的事。。。。 “韧”,不是要违背自然规律,刻意去伤害自己,而是,怎么说呢?类似个人抗打击能力吧。安全感有时不是我们能控制的,特殊情况下某些安全感就只能靠我刚才提到的“韧”字来处理,这种“韧”是打不死的“韧”,无论经历什么,都能靠自我调节能力恢复到原来的状态,忽略困难,自己给自己安全感。 例如, 1、今天有人无缘无故找你麻烦,说一些很难听的话刺激你,你需要学会调节自己,不管他说什么都要调节自己心情不生气,做好该做的事情; 2、你经历了很多困难的事情,有些还是超出你原本接受能力的事情,疲惫不堪几乎要崩溃时,身边却找不到一个可以理解你的人,所有的伤痛需要自己自愈。 3、当原本以为计划完善十拿九稳的事情,突遇毫无理由莫名其妙的意外,导致。。。如何调节自己在最短时间内收拾残局 4、当家人朋友出现各种问题(纠纷、生病,甚至无理取闹),你自己的项目时间赶又进行得不顺利,身体疲惫好像有很多问题。。。前景迷茫不知所措,如何擦干泪微笑着面对生活? 。。。 反反复复在崩溃和自我自愈中磨练。。。很难,我也还在不断努力学习当中,但,归来仍会是当初那个少年。 淋雨一直走。在下一秒钟,命运如何转动,没有人会晓得。背后尖酸的耳语,是给长大的洗礼。无法复制的自己,让我连受伤也有型。这不是脾气,是志气与勇气。你能推我下悬崖,我能学会飞行。从不听,谁的命令,很独立,耳朵用来听自己的心灵! PS: To 那些关心我的朋友: 我还好,不用担心,注意看穿各种虚假流言,不要被迷惑。我还是最初的那个我,没有改变过,我还是原来的那个奶奶级别的老。。。老。。老姐姐。 不要因我而被别人要挟做任何事情,如果你们因我而妥协,哪怕只是一点点,我都会更难过更伤心。 我有很多话想说,却又无从说起,只能化作一句话:请照顾好你们自己,我还在等天晴后某一天,你们自己来告诉我当时发生的一切。 逆境清醒 2023.9.5 2023.9.7更 二、大数据采集概念 根据涉及领域的不同,大数据的关键技术可以分为大数据采集、大数据预处理、大数据存储及管理、大数据处理、大数据分析及挖掘、大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全等)等几大方面。 大数据采集处于大数据生命周期中第一个环节,是大数据产业的基石。 大数据采集是大数据分析的入口,是大数据分析至关重要的一个环节。 大数据采集 大数据采集是指通过各种技术手段,收集和整理大量数据的过程。采集的数据可以来自不同的数据源,包括结构化数据和非结构化数据,如网站数据、社交媒体数据、电子邮件、日志文件、传感器、企业应用程序等。 采集过程通常需要使用各种技术工具和技术平台,例如网络爬虫、数据挖掘、自然语言处理等。 在大数据应用领域,采集是整个数据处理流程中非常重要的一环。大数据中采集出有用的信息已经是大数据发展的关键因素之一。 三、大数据采集步骤 (3.1)、大数据采集步骤(总体角度) 大数据采集通常包括以下步骤: 确定采集数据的范围和目的:确定采集数据的时间、地点、数据类型、数据格式、数据量等。针对不同的数据来源采用适当的技术:例如,从传感器采集数据可能需要使用物联网技术,从社交媒体采集数据可能需要使用API。设计数据采集和处理流程:包括数据的抽取、转换和加载(Extract, Transform, Load,简称ETL)。确保数据的准确性和完整性:通过对数据进行清洗、去重、格式化等操作来确保数据的质量。存储数据:将采集到的数据存储到适当的数据库或数据仓库中,以便进行后续的数据分析和应用。 (3.2)、大数据采集步骤(数据集角度) (3.3)、大数据采集步骤(数据集角度) 大数据采集步骤(数据集角度): 采集需求、规则配置、任务调度、任务监控、数据整理、数据发布、数据交易、数据交付 在大数据采集过程中,需要考虑隐私和数据安全等方面的问题,确保采集的数据不会被盗用或滥用。 四、数据源与数据类型的关系 4.1、大数据体系数据 在大数据体系中,传统数据分为业务数据和行业数据,传统数据体系中没有考虑过的新数据源包括内容数据、线上行为数据和线下行为数据 3 大类。

Kimichat的浏览器插件Kimi Copilot:一键总结网页内容

在阅读网页的时候,如果需要总结网页内容要点,可以把链接丢进Kimichat,让它总结。但是,这样稍微有些麻烦。Chrome浏览器现在已经有一个非官方的Kimichat插件: Kimi Copilot - 网页总结助手,可以用Kimi AI一键总结网页内容。 首先在chrome浏览器插件商店,搜索kimi,第一个出现的就是,安装。 安装后,在浏览网络文章时点击插件图标,或使用快捷键 Ctrl/Cmd+Shift+K,即可一键召唤Kimi.ai总结网页内容 这个插件可以总结 Kimi无法访问的网页,英文文章可以直接用中文总结要点。 以上是kimi插件对一篇英文文章的总结效果,有概述和摘要,使用效果不错。

【算法深度探索】动态规划之旅(1):挑战OJ题海,解锁15道经典难题,让你成为DP大师!

📃博客主页: 小镇敲码人 🚀 欢迎关注:👍点赞 👂🏽留言 😍收藏 🌏 任尔江湖满血骨,我自踏雪寻梅香。 万千浮云遮碧月,独傲天下百坚强。 男儿应有龙腾志,盖世一意转洪荒。 莫使此生无痕度,终归人间一捧黄。🍎🍎🍎 ❤️ 什么?你问我答案,少年你看,下一个十年又来了 💞 💞 💞 【算法深度探索】动态规划之旅(1):挑战OJ题海,解锁15道经典难题,让你成为DP大师! OJ题1:石子游戏,难度分:1590题目解析算法原理代码实现使用滚动数组优化 OJ题2:下降路径最小和 难度分:1573题目解析算法原理代码实现 OJ题3:最长字符串链 难度分:1599题目解析算法原理代码实现 OJ题4:最长定差子序列 难度分:1597题目解析算法原理代码实现 OJ题5:将整数按权重排序 难度分:1507题目解析算法原理代码实现 OJ题6:使绳子变成彩色的最短时间 难度分:1574题目解析算法原理代码实现 OJ题7:统计字典序元音字符串的数目 难度分:1519题目解析算法原理代码实现滚动数组优化 OJ题8:子数组和的绝对值的最大值 难度分:1542题目解析算法原理代码实现滚动数组优化 OJ题9: 个位数字为 K 的整数之和 难度分:1559题目解析算法原理代码实现 OJ题10:达到末尾下标所需的最大跳跃次数 难度分:1533题目解析算法原理代码实现 OJ题11:判断是否能拆分数组 难度分:1543 ---区间dp题目解析算法原理代码实现 OJ题12:推多米诺 难度分:1638题目解析算法原理代码实现 OJ题13:将字符串翻转到单调递增 难度分:1602题目解析算法原理代码实现滚动数组优化 OJ题14:骑士拨号器 难度分:1690题目解析算法原理代码实现滚动数组优化 OJ题15:掷骰子等于目标和的方法数 难度分:1654---分组背包题目解析算法原理代码实现滚动数组优化 前言:本篇博客旨在帮助大家学习和了解DP算法,并熟练的掌握DP算法的原理和一些套路,以题解的形式给出,题目出自力扣平台,后面的数字代表难度分。 OJ题1:石子游戏,难度分:1590 这里是题目链接 题目解析 算法原理 下面我们来尝试使用动态规划来解决这道题。 代码实现 class Solution { public: bool stoneGame(vector<int>& piles) { //创建dp表 //初始化 //填表 //返回值 int n = piles.