当前位置: 首页 > news >正文

代码随想录算法训练营day38

代码随想录算法训练营

—day38

文章目录

  • 代码随想录算法训练营
  • 前言
  • 一、322. 零钱兑换
    • 二维dp数组
  • 二、279.完全平方数
    • 二维dp数组
  • 三、139. 单词拆分
  • 多重背包
  • 背包问题总结
    • 问题类型
    • 递推公式
    • 遍历顺序


前言

今天是算法营的第38天,希望自己能够坚持下来!
今日任务:
● 322. 零钱兑换
● 279.完全平方数
● 139.单词拆分
● 关于多重背包,你该了解这些!


一、322. 零钱兑换

题目链接
文章讲解
视频讲解

二维dp数组

思路:
物品无限,完全背包问题。

  1. dp[j]:凑足总额为j所需钱币的最少个数为dp[j]
  2. 递归公式:对于物品i,有放和不放两种
    ①放的话就是 dp[j- weigiht[i]] + 1 (预留出硬币i的空间,加上1个硬币)
    ②不放的话就是保持dp[j]
    所以递推公式是两者取最小 dp[j] = min(dp[j], dp[j- weigiht[i]] + 1)
  3. 初始化:dp[0] = 0 凑成0金额需要0个硬币,其余需要初始化成int最大值,因为递推公式要求最小值
  4. 遍历顺序:因为求的是个数,不管是组合还是排列,最少的硬币个数都是一样的,所以遍历顺序没有关系

代码如下:

class Solution {
public://dp[j]:凑成j金额最少需要dp[j]个硬币//dp[j] = min(dp[j], dp[j - coins[i]] + 1)  不放硬币i + 放硬币i (预留出硬币i的空间,加上1个硬币)//初始化:dp[0] = 0 凑成0金额需要0个硬币,其余需要初始化成int最大值,因为递推公式要求最小值//遍历顺序:因为求的是个数,不管是组合还是排列,最少的硬币个数都是一样的,所以遍历顺序没有关系int coinChange(vector<int>& coins, int amount) {vector<int> dp(amount + 1, INT_MAX);dp[0] = 0;for (int i = 0; i < coins.size();i++) { //遍历物品for (int j = coins[i]; j <= amount; j++) { //遍历背包if (dp[j - coins[i]] != INT_MAX) //如果等于初始值则跳过dp[j] = min(dp[j], dp[j - coins[i]] + 1); //不跳过的话这里+1会超int}}return dp[amount] == INT_MAX? -1:dp[amount];}
};

二、279.完全平方数

题目链接
文章讲解
视频讲解

二维dp数组

思路:
完全平方数就是物品(可以无限件使用),凑个正整数n就是背包,问凑满这个背包最少有多少物品?也就是完全背包的问题。思路跟动态规划:322. 零钱兑换是一样的,区别就是递推公式中,物品i的重量是i*i

  1. dp[j]:和为j的完全平方数的最少数量
  2. 递归公式:dp[j] = min(dp[j], dp[j - ii] + 1) 物品i放的话,腾出ii的位置,数量再+1
  3. 初始化:dp[0] = 0 ,其余需要初始化成int最大值,因为递推公式要求最小值
  4. 遍历顺序:因为求的是个数,不管是组合还是排列,最少的硬币个数都是一样的,所以遍历顺序没有关系

代码如下:

class Solution {
public://dp[j]:和为j的完全平方数的最少数量//dp[j] = min(dp[j], dp[j - i*i] + 1)int numSquares(int n) {vector<int> dp(n+1, INT_MAX);dp[0] = 0;for (int i = 1; i*i <= n; i++) {for (int j = i*i; j <= n; j++) {dp[j] = min(dp[j], dp[j - i*i] + 1);}}return dp[n]; //这里不需要判断INT_MAX,因为1就是完全平方数,不管n是什么,都可以用1来组成}
};

三、139. 单词拆分

题目链接
文章讲解
视频讲解

思路:
把字符串s当成 背包,字典里的单词是物品,能重复使用,完全背包问题

  1. dp[i]:长度为i的字符串可以由字符串列表拼成,因为求的是可以拼成,所以用 bool,dp[j]=true ,求dp[s.size()]
  2. 递推公式:if (dp[i] && 截取[j,i]区间的字符串可以在字典中找到) dp[i] = true (i前面的都可以拼成,且剩下部分也是字典有的单词)
  3. 初始化:dp[0] =true其余为false ,不然递推公式一直都是false
  4. 遍历顺序:因为对顺序有要求,所以要先遍历背包
  5. 举例推导dp数组:
    以输入: s = “leetcode”, wordDict = [“leet”, “code”]为例,dp状态如图:

在这里插入图片描述

代码如下:

class Solution {
public://把字符串s当成 背包,字典里的单词是物品,能重复使用,完全背包问题//dp[i]:长度为i的字符串可以由字符串列表拼成,dp[i]=true ,求dp[s.size()]//递推公式:if (dp[i] && 截取[j,i]区间的字符串可以在字典中找到) dp[i] = true (i前面的都可以拼成,且剩下部分也是字典有的单词)//初始化:dp[0] =true其余为false ,不然递推公式一直都是false//遍历顺序:因为对顺序有要求,所以要先遍历背包bool wordBreak(string s, vector<string>& wordDict) {//需要转成set用find来判断字符串是否在字典里unordered_set<string>wordSet (wordDict.begin(), wordDict.end());vector<bool> dp(s.size() + 1, false);dp[0] = true;//每次截取[j,i]的字符串来判断,先固定右区间i,左区间j在内循环中移动for (int i = 1; i <= s.size(); i++) { //先遍历背包for (int j = 0; j < i; j++) { //遍历物品string word = s.substr(j, i - j); //substr(起始位置int,截取的个数int)if (wordSet.find(word) != wordSet.end() && dp[j]) {dp[i] = true;}}}return dp[s.size()];}
};

多重背包

题目链接
文章讲解
视频讲解

定义:
多重背包就是每个物品的数量都不一样。

思路:
可以将物品的数量展开,看成是每个物品的数量为1。
在这里插入图片描述
转化成数量1:
在这里插入图片描述
代码如下:

// 超时了
#include<iostream>
#include<vector>
using namespace std;
int main() {int bagWeight,n;cin >> bagWeight >> n;vector<int> weight(n, 0); vector<int> value(n, 0);vector<int> nums(n, 0);for (int i = 0; i < n; i++) cin >> weight[i];for (int i = 0; i < n; i++) cin >> value[i];for (int i = 0; i < n; i++) cin >> nums[i];    for (int i = 0; i < n; i++) {while (nums[i] > 1) { // 物品数量不是一的,都展开weight.push_back(weight[i]);value.push_back(value[i]);nums[i]--;}}vector<int> dp(bagWeight + 1, 0);for(int i = 0; i < weight.size(); i++) { // 遍历物品,注意此时的物品数量不是nfor(int j = bagWeight; j >= weight[i]; j--) { // 遍历背包容量dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}}cout << dp[bagWeight] << endl;
}

但这种方法会超时,主要是因为,当物品数量很多的时候,将物品数量展开的时候 ,vector的动态底层扩容会非常耗时。

方法二:
再多加一个for循环来遍历分别放[1,num[i]]个物品的情况,取最大值

#include<iostream>
#include<vector>
using namespace std;
int main() {int bagWeight,n;cin >> bagWeight >> n;vector<int> weight(n, 0);vector<int> value(n, 0);vector<int> nums(n, 0);for (int i = 0; i < n; i++) cin >> weight[i];for (int i = 0; i < n; i++) cin >> value[i];for (int i = 0; i < n; i++) cin >> nums[i];vector<int> dp(bagWeight + 1, 0);for(int i = 0; i < n; i++) { // 遍历物品for(int j = bagWeight; j >= weight[i]; j--) { // 遍历背包容量// 以上为01背包,然后加一个遍历个数for (int k = 1; k <= nums[i] && (j - k * weight[i]) >= 0; k++) { // 遍历个数dp[j] = max(dp[j], dp[j - k * weight[i]] + k * value[i]);}}}cout << dp[bagWeight] << endl;
}

背包问题总结

问题类型

给定一个的背包(容器),一些物品,物品有自己的重量和价值,
求放满背包(容器),
1.最大价值 2.有多少种方法 3.最少放多少个物品

物品只能放一次:01背包
物品无限放入:完全背包
物品数量不一:多重背包

递推公式

总体就是围绕着对于当前物品i,放或者不放,然后取最大值或最小值,或者两种情况相加。
放则预留出物品i的空间 dp[j - 物品i重量],再根据dp定义,

  1. 能否装满背包(或者最多装多少),那么放物品i就是dp[j-物品i重量] + 物品i价值
    dp[j] = max(dp[j], dp[j - nums[i]] + nums[i])
  • 动态规划:416.分割等和子集
  • 动态规划:1049.最后一块石头的重量 II
  1. 求的装满背包有几种方法,就直接是dp[j-物品i重量]
    dp[j] += dp[j - nums[i]]
  • 动态规划:494.目标和
  • 动态规划:518. 零钱兑换
  • 动态规划:377.组合总和Ⅳ
  • 动态规划:70. 爬楼梯进阶版(完全背包)
  1. 求的是装满背包所有物品的最小个数,则是dp[j-物品i重量]+1(物品i)
    dp[j] = min(dp[j - coins[i]] + 1, dp[j])
  • 动态规划:322.零钱兑换
  • 动态规划:279.完全平方数

遍历顺序

  1. 01背包,用一维数组必须先遍历物品,然后背包后序遍历
  2. 完全背包,如果求的是组合数,一维数组必须先遍历物品,背包正序遍历
  3. 完全背包,如果求的是排列数,一维数组必须先遍历背包,再遍历物品
  4. . 完全背包,如果求的是最大价值,一维数组两种遍历顺序都可以

在这里插入图片描述

相关文章:

代码随想录算法训练营day38

代码随想录算法训练营 —day38 文章目录 代码随想录算法训练营前言一、322. 零钱兑换二维dp数组 二、279.完全平方数二维dp数组 三、139. 单词拆分多重背包背包问题总结问题类型递推公式遍历顺序 前言 今天是算法营的第38天&#xff0c;希望自己能够坚持下来&#xff01; 今日…...

对接DeepSeek

其实&#xff0c;整个对接过程很简单&#xff0c;就四步&#xff0c;获取key&#xff0c;找到接口文档&#xff0c;接口测试&#xff0c;代码对接。 获取 KEY https://platform.deepseek.com/transactions 直接付款就是了&#xff08;现在官网暂停充值2025年2月7日&#xff0…...

【学术投稿-第六届新材料与清洁能源国际学术会议(ICAMCE 2025)】组织与结构:HTML中的<fieldset>与<legend>标签解析

官网&#xff1a;www.icceam.com 简介 第六届新材料与清洁能源国际学术会议&#xff08;ICAMCE 2025&#xff09;将于2025年2月21-23日在郑州隆重举行。清洁能源、新材料是当今工业发展中最重要、最有潜力的领域之一。而新型材料又是新能源的基础和保证。本会议主要围绕“清洁…...

网络安全行业的冬天

冬天已经来了&#xff0c;春天还会远吗&#xff1f;2022年10月28日&#xff0c;各个安全大厂相继发布了财报&#xff0c;纵观2022年前三季度9个月&#xff0c;三六零亏了19亿&#xff0c;奇安信亏了11亿&#xff0c;深信服亏了6亿&#xff0c;天融信亏了4亿&#xff0c;安恒亏了…...

PlantUml常用语法

PlantUml常用语法&#xff0c;将从类图、流程图和序列图这三种最常用的图表类型开始。 类图 基础语法 在 PlantUML 中创建类图时&#xff0c;你可以定义类&#xff08;Class&#xff09;、接口&#xff08;Interface&#xff09;以及它们之间的关系&#xff0c;如继承&#…...

【开源免费】基于SpringBoot+Vue.JS网上服装商城(JAVA毕业设计)

本文项目编号 T 185 &#xff0c;文末自助获取源码 \color{red}{T185&#xff0c;文末自助获取源码} T185&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

力扣LeetCode: 80 删除有序数组中的重复项Ⅱ

题目&#xff1a; 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件…...

Linux之kernel(4)netlink通信

Linux内核(04)之netlink通信 Author: Once Day Date: 2023年1月3日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可查看专栏: Linux内核知识_Once-Day的博客-…...

autMan奥特曼机器人-对接deepseek教程

一、安装插件ChatGPT 符合openai api协议的大模型均可使用此插件&#xff0c;包括chatgpt-4/chatgpt-3.5-turbo&#xff0c;可自定义服务地址和模型&#xff0c;指令&#xff1a;gpt&#xff0c;要求Python3.7以上&#xff0c;使用官方库https://github.com/openai/openai-pyt…...

Java 大视界 -- Java 大数据在智能政务中的应用与服务创新(78)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

RestTemplate Https 证书访问错误

错误信息 resttemplate I/O error on GET request for “https://21.24.6.6:9443/authn-api/v5/oauth/token”: java.security.cert.CertificateException: No subject alternative names present; nested exception is javax.net.ssl.SSLHandshakeException: java.security.c…...

自动化测试

import os import pyautogui# 将鼠标移动到屏幕坐标 (100, 100) 位置&#xff0c;移动时间为 1 秒 pyautogui.moveTo(100, 100, duration1)# 将鼠标从当前位置向右移动 50 像素&#xff0c;向下移动 50 像素&#xff0c;移动时间为 0.5 秒 pyautogui.moveRel(50, 50, duration0…...

【C编程问题集中营】使用数组指针时容易踩得坑

【C编程问题集中营】使用数组指针时容易踩得坑 文章目录 【C编程问题集中营】使用数组指针时容易踩得坑一、获取数组首地址二、应用场景举例2.1 正常场景2.2 异常场景 三、总结 一、获取数组首地址 一维数组的首地址即数组第一个元素的指针&#xff0c;常用的获取一维数组首地…...

【分布式理论8】分布式调用之:四种IO模型

文章目录 一. 四种IO模型1. 同步阻塞 IO&#xff08;Blocking IO&#xff09;2. 同步非阻塞 IO&#xff08;Non-blocking IO&#xff09;3. IO 多路复用&#xff08;IO Multiplexing&#xff09;4. 异步 IO&#xff08;Asynchronous IO&#xff09;在 RPC 中的作用5. 总结 选择…...

MySQL 库建表数量有限制吗?

问&#xff1a;MySQL 库建表数量有限制吗&#xff1f; 答&#xff1a;无限制 官方文档&#xff1a; MySQL has no limit on the number of databases. The underlying file system may have a limit on the number of directories. MySQL has no limit on the number of tabl…...

使用OpenGL自己定义一个button,响应鼠标消息:掠过、点击、拖动

button需要有一个外观 外观 大小跟随窗口改变&#xff0c;采用纯色背景、纯色文字 文字 大小跟随窗口改变 button需要获得鼠标消息 掠过 鼠标掠过时 button 出现阴影&#xff0c;鼠标掠过后 button 阴影消失 点击 点击后进入相应事件 拖动 改变图标所在位置 需要在g…...

基础入门-网站协议身份鉴权OAuth2安全Token令牌JWT值Authirization标头

知识点&#xff1a; 1、网站协议-http/https安全差异&#xff08;抓包&#xff09; 2、身份鉴权-HTTP头&OAuth2&JWT&Token 一、演示案例-网站协议-http&https-安全测试差异性 1、加密方式 HTTP&#xff1a;使用明文传输&#xff0c;数据在传输过程中可以被…...

【Python】元组

个人主页&#xff1a;GUIQU. 归属专栏&#xff1a;Python 文章目录 1. 元组的本质与基础概念1.1 不可变序列的意义1.2 元组与数学概念的联系 2. 元组的创建方式详解2.1 标准创建形式2.2 单元素元组的特殊处理2.3 使用 tuple() 函数进行转换 3. 元组的基本操作深入剖析3.1 索引操…...

深度求索与DeepSeek-R1:探索人工智能的新纪元

深度求索与DeepSeek-R1&#xff1a;探索人工智能的新纪元 引言 在当今快速发展的科技领域&#xff0c;尤其是人工智能&#xff08;AI&#xff09;方面&#xff0c;每隔一段时间就会出现一款革命性的产品或技术&#xff0c;彻底改变我们对这一领域的认知。2025年初&#xff0c…...

java: framework from BLL、DAL、IDAL、MODEL、Factory using oracle

oracel 21c sql: -- 创建 School 表 CREATE TABLE School (SchoolId CHAR(5) NOT NULL,SchoolName NVARCHAR2(500) NOT NULL,SchoolTelNo VARCHAR2(8) NULL,PRIMARY KEY (SchoolId) );CREATE OR REPLACE PROCEDURE addschool(p_school_id IN CHAR,p_school_name IN NVARCHAR2,p…...

kafka生产端之架构及工作原理

文章目录 整体架构元数据更新 整体架构 消息在真正发往Kafka之前&#xff0c;有可能需要经历拦截器&#xff08;Interceptor&#xff09;、序列化器&#xff08;Serializer&#xff09;和分区器&#xff08;Partitioner&#xff09;等一系列的作用&#xff0c;那么在此之后又会…...

DeepSeek结合Langchain的基本用法

DeepSeek结合Langchain的基本用法 DeepSeek 基于Openai接口规范的Prompt应答Deepseek结合LangchainDeepSeek 基于langchain的结构化返回 DeepSeek 基于Openai接口规范的Prompt应答 首先我们需要先基于pip 安装 pip install openai最开始我们先熟悉如何使用openai的接口规范&a…...

Python与java的区别

一开始接触Python的时候&#xff0c;哔哩视频铺天盖地&#xff0c;看了很多人主讲的&#xff0c;要找适合自己口味的&#xff0c;各种培训机构喜欢在各种平台引流打广告&#xff0c;看了很多家&#xff0c;要么就是一个视频几个小时&#xff0c;长篇大论不讲原理只讲应用&#…...

win10 llamafactory模型微调相关① || Ollama运行微调模型

目录 微调相关 1.微调结果评估 2.模型下载到本地 导出转换&#xff0c;Ollama运行 1.模型转换&#xff08;非常好的教程&#xff01;&#xff09; 2.Ollama 加载GGUF模型文件 微调相关 1.微调结果评估 【06】LLaMA-Factory微调大模型——微调模型评估_llamafactory评估-C…...

全国路网矢量shp数据(分不同类型分省份)

科研练习数据 全国路网矢量shp数据&#xff08;分不同类型分省份&#xff09; 有需要的自取 数据格式&#xff1a;shp&#xff08;线&#xff09; 数据包含类型&#xff1a;城市主干道、城市次干道、城市快速路、城市支路、高速公路、内部道路、人行道、乡村道路、自行车道路…...

RocketMq之Broker注册流程详解

1.前言 前面我也是写过一些关于broker注册到NameServer里的代码分析&#xff0c;但是总感觉写的比较简单&#xff0c;今天这篇的话&#xff0c;算是重新梳理一篇broker注册到NameServer中的代码&#xff0c;感兴趣的可以看下我前面写的几篇博客&#xff1a; 1.NameServer的主…...

关于精度话题的杂谈

“ 浮点值的存储、运算都可能会带来精度损失&#xff0c;了解精度损失背后的机制原因方便我们更好的了解什么情况下会发生精度损失、什么情况下精度损失较大&#xff0c;以及思考怎么避免或减少精度损失。” 01 杂谈 之前在CSDN上写过《关于float浮点值二进制存储和运算精度损失…...

AD域控粗略了解

一、前提 转眼大四&#xff0c;目前已入职上饶一公司从事运维工程师&#xff0c;这与我之前干的开发有着很大的差异&#xff0c;也学习到了许多新的知识。今天就写下我对于运维工作中常用的功能——域控的理解。 二、为什么要有域控&#xff0c;即域控的作用 首先我们必须要…...

emlog最新跨站脚本漏洞(CNVD-2025-01607、CVE-2024-13140)

EMLOG是一款轻量级开源博客和CMS建站系统&#xff0c;速度快、省资源、易上手&#xff0c;适合各种规模的站点搭建&#xff0c;基于PHPMySQL开发。 国家信息安全漏洞共享平台于2025-01-16公布该程序存在跨站脚本漏洞。 漏洞编号&#xff1a;CNVD-2025-01607、CVE-2024-13140 …...

DeepSeek-r1和O1、O3mini谁更强?

DeepSeek-r1和O1、O3mini谁更强&#xff1f; 题目&#xff1a;编写一个 js 程序&#xff0c;显示一个球在旋转的六边形内弹跳。球应该受到重力和摩擦力的影响&#xff0c;并且必须逼真地从旋转的墙壁上弹起 DeepSeek-r1 <!DOCTYPE html> <html> <body> &l…...

代码随想录_二叉树

二叉树 二叉树的递归遍历 144.二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历 // 前序遍历递归LC144_二叉树的前序遍历 class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result new ArrayList<Integer&g…...

时序数据库:Influxdb详解

文章目录 一、简介1、简介2、官网 二、部署1、安装2、配置&#xff08;1&#xff09;用户初始化 三、入门&#xff08;Web UI&#xff09;1、加载数据&#xff08;1&#xff09;上传数据文件&#xff08;2&#xff09;代码接入模板 2、管理存储桶&#xff08;1&#xff09;创建…...

内存泄漏及检测办法

什么情况下会产生内存泄漏&#xff1f; 内存泄漏如何检测&#xff1f; 使用 valgrind 对象计数 基本思路&#xff1a; 在对象的构造函数中增加计数&#xff1a;每次创建一个对象时&#xff0c;增加一个计数。在对象的析构函数中减少计数&#xff1a;每次销毁一个对象时&…...

BiGRU双向门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据)

代码地址&#xff1a;BiGRU双向门控循环单元多变量多步预测&#xff0c;光伏功率预测&#xff08;Matlab完整源码和数据) BiGRU双向门控循环单元多变量多步预测&#xff0c;光伏功率预测 一、引言 1.1、研究背景和意义 随着全球对可再生能源需求的不断增长&#xff0c;光伏…...

Leetcode 3448. Count Substrings Divisible By Last Digit

Leetcode 3448. Count Substrings Divisible By Last Digit 1. 解题思路2. 代码实现 题目链接&#xff1a;3448. Count Substrings Divisible By Last Digit 1. 解题思路 这一题的话我们走的是一个累积数组的思路。 首先&#xff0c;我们使用一个cache数组记录下任意段数字…...

青少年编程与数学 02-009 Django 5 Web 编程 03课题、项目结构

青少年编程与数学 02-009 Django 5 Web 编程 03课题、项目结构 一、项目结构项目根目录应用目录其他目录 二、项目设置Django 插件设置项目配置环境变量设置项目目录标记版本控制 三、Django 插件安装 Django 插件配置 Django 插件使用 Django 插件功能 四、扩展插件开发效率插…...

【玩转 Postman 接口测试与开发2_018】第14章:利用 Postman 初探 API 安全测试

《API Testing and Development with Postman》最新第二版封面 文章目录 第十四章 API 安全测试1 OWASP API 安全清单1.1 相关背景1.2 OWASP API 安全清单1.3 认证与授权1.4 破防的对象级授权&#xff08;Broken object-level authorization&#xff09;1.5 破防的属性级授权&a…...

UA-Track:不确定性感知端到端3D多目标跟踪

论文地址&#xff1a;https://arxiv.org/pdf/2406.02147 主页&#xff1a;https://liautoad.github.io/ua-track-website/ 3D多目标跟踪&#xff08;MOT&#xff09;在自动驾驶感知中起着至关重要的作用。最近基于端到端查询的跟踪器可以同时检测和跟踪对象&#xff0c;这在3D …...

Windows下AMD显卡在本地运行大语言模型(deepseek-r1)

Windows下AMD显卡在本地运行大语言模型 本人电脑配置第一步先在官网确认自己的 AMD 显卡是否支持 ROCm下载Ollama安装程序模型下载位置更改下载 ROCmLibs先确认自己显卡的gfx型号下载解压 替换替换rocblas.dll替换library文件夹下的所有 重启Ollama下载模型运行效果 本人电脑配…...

萌新学 Python 之字符串及字符串相关函数

字符串&#xff1a;单引号、双引号、三个单引号、三个双引号 字符串属于不可变的数据类型&#xff0c;一旦被定义&#xff0c;内存地址不变 name 张三 # 字符串赋值给name后&#xff0c;内存地址存储张三&#xff0c;地址不变 username 张三 # 张三去内存中找…...

【鸿蒙开发】第二十四章 AI - Core Speech Kit(基础语音服务)

目录 1 简介 1.1 场景介绍 1.2 约束与限制 2 文本转语音 2.1 场景介绍 2.2 约束与限制 2.3 开发步骤 2.4 设置播报策略 2.4.1 设置单词播报方式 2.4.2 设置数字播报策略 2.4.3 插入静音停顿 2.4.4 指定汉字发音 2.5 开发实例 3 语音识别 3.1 场景介绍 3.2 约束…...

Java | RESTful 接口规范

关注&#xff1a;CodingTechWork 引言 作为一名程序员&#xff0c;制定清晰、一致且高效的 RESTful 接口规范对于团队的开发效率和项目的长期维护至关重要。本文将详细介绍 RESTful 接口的设计理念、请求方法分类、核心规范&#xff0c;以及正确和错误的示例&#xff0c;帮助团…...

shell脚本控制——处理信号

Linux利用信号与系统中的进程进行通信。你可以通过对脚本进行编程&#xff0c;使其在收到特定信号时执行某些命令&#xff0c;从而控制shell脚本的操作。 1.重温Linux信号 Linux系统和应用程序可以产生超过30个信号。下表列出了在shell脚本编程时会遇到的最常见的Linux系统信…...

OpenGL学习笔记(十二):初级光照:投光物/多光源(平行光、点光源、聚光)

文章目录 平行光点光源聚光多光源 现实世界中&#xff0c;我们有很多种类的光照&#xff0c;每种的表现都不同。将光投射(Cast)到物体的光源叫做投光物(Light Caster)。 平行光/定向光(Directional Light)点光源(Point Light)聚光(Spotlight) 平行光 当一个光源处于很远的地…...

redis底层数据结构——整数集合

文章目录 定义内部实现升级升级的好处提升灵活性节约内存 降级总结 定义 整数集合&#xff08;intset&#xff09;是集合键的底层实现之一&#xff0c;当一个集合只包含整数值元素&#xff0c;并且这个集合的元素数量不多时&#xff0c;Redis就会使用整数集合作为集合键的底层…...

w198基于Springboot的智能家居系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…...

【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter2-HTML 中的 JavaScript

二、HTML 中的 JavaScript 将 JavaScript 插入 HTML 的主要方法是使用<script>元素。 <script>元素有下列 8 个属性。 async&#xff1a;可选。表示应该立即开始下载脚本&#xff0c;但不能阻止其他页面动作&#xff0c;比如下载资源或等待其他脚本加载。只对外部…...

【5】阿里面试题整理

[1]. 介绍一下ZooKeeper ZooKeeper是一个开源的分布式协调服务&#xff0c;核心功能是通过树形数据模型&#xff08;ZNode&#xff09;和Watch机制&#xff0c;解决分布式系统的一致性问题。 它使用ZAB协议保障数据一致性&#xff0c;典型场景包括分布式锁、配置管理和服务注…...

系统思考—自我超越

“人们往往认为是个人的能力限制了他们&#xff0c;但事实上&#xff0c;是组织的结构和惯性思维限制了他们的潜力。”—彼得圣吉 最近和一家行业隐形冠军交流&#xff0c;他们已经是领域第一&#xff0c;老板却依然要求&#xff1a;核心团队都要自我超越&#xff0c;攻坚克难…...

大模型-ALIGN 详细介绍

ALIGN模型&#xff08;A Large-scale ImaGe and Noisy-text embedding&#xff09;是一种大规模图像和噪声文本嵌入模型&#xff0c;它通过对比学习的方式将图像和文本嵌入到同一个向量空间中&#xff0c;使得匹配的图像-文本对的嵌入向量接近&#xff0c;不匹配的则远离。这种…...