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

【算法】力扣 713题:乘积小于 K 的子数组之深入思考

文章目录

  • 前言
  • 题目:乘积小于 K 的子数组
  • 参考思路
    • 方法一:滑动窗口
    • 方法二:二分查找
  • 参考题解
    • 方法一:滑动窗口解法
    • 方法二:二分查找解法
  • 深入思考
    • 浮点精度?
    • right - left + 1?
    • 二分法?
    • 哈希优化?


前言

在这里插入图片描述

本题与 力扣713题 相同


题目:乘积小于 K 的子数组

给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。

示例 1:
输入:nums = [10,5,2,6], k = 100
输出:8

解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2]、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。
需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。

示例 2:
输入:nums = [1,2,3], k = 0
输出:0

提示:
1 <= nums.length <= 3 * 104
1 <= nums[i] <= 1000
0 <= k <= 106

参考思路

方法一:滑动窗口

注意!!这里的数字都是正数
联想之前的滑动窗口,如果满足非负数组的单调性

  • 也就是在非负数组中,子数组和随着窗口的扩展(右边界右移)是单调不减的

参考深入思考中的滑动窗口解析:【算法】力扣560题:和为 K 的连续子数组之深入思考

那么使用滑动窗口是非常好的办法!

  • 使用滑动窗口来维护一个满足条件的子数组范围 [left, right]。
  • 对于每个右边界 right,找到最小的左边界 left,使得窗口内的乘积小于 k。
  • 统计以 nums[right] 结尾的满足条件的子数组个数:right - left + 1。

但是要注意处理极端情况:if (k <= 1) return 0;

复杂度分析

  • 时间复杂度:O(n)
    每个元素最多被访问两次(一次加入窗口,一次移出窗口)。

  • 空间复杂度:O(1)
    只使用了常数级别的额外空间。

方法二:二分查找

如果有做过 和为k的子数组 这个题,可能会延伸思考,那么这题如果求乘积。那么我能不能也有前缀乘积的方法来解题呢?

可以!但是仔细一想前缀乘积会使得数字变得很大,从而溢出

所以我们对于数组中的每个元素 nums[i],取自然对数 ln(nums[i])。
乘积小于 k 的条件可以转换为:

nums[left] * nums[left+1] * ... * nums[right] < k

两边取对数之后

ln(nums[left]) + ln(nums[left+1]) + ... + ln(nums[right]) < ln(k)

此时一看,这不是我们熟悉的前缀和吗?
因此计算对数数组的前缀和

prefixSum[i] = ln(nums[0]) + ln(nums[1]) + ... + ln(nums[i-1])

对其变形
对于每个右边界 right,我们需要找到最小的左边界 left,使得:

prefixSum[right+1] - prefixSum[left] < ln(k)

之后,问题就转换成了找到一某一个 prefixSum 使其值 < ln(k)
所以核心就是:两边取对数将乘积问题转换为求和问题,然后利用前缀和 + 二分查找来解决

那么注意到数组的数字都是大于1的数字
所以计算前缀和数组是单调递增的,因此可以使用二分查找来高效地找到满足条件的 left。
这里可以选择直接调用库函数来实现二分查找,只需要快速找到第一个大于等于 ln(k)的位置即可

此时,可能有疑问
1.之前那题“子数组和为k”不是说不能用二分法吗?为什么这里又可以用?
2.那这里这题可以用哈希表优化来做吗?
参考答案可以看本文的第三部分:深入思考

复杂度分析

  • 时间复杂度:O(n log n)
    计算前缀乘积的时间复杂度是 O(n)。
    对于每个 j,二分查找的时间复杂度是 O(log n),总共有 n 个 j,因此二分查找的总时间复杂度是 O(n log n)。

  • 空间复杂度:O(n)
    需要存储前缀乘积数组。

二分法可以用来解决乘积小于 K 的子数组问题,但它的时间复杂度是 O(n log n),不如滑动窗口方法高效

参考题解

方法一:滑动窗口解法

class Solution {
public:int numSubarrayProductLessThanK(vector<int>& nums, int k) {if (k <= 1) return 0;int result = 0;int left = 0;int product = 1;for (int right = 0; right < nums.size(); ++right) {product *= nums[right];while (product >= k && left <= right) {product /= nums[left];++left;}result += right - left + 1;}return result;}
};

方法二:二分查找解法


class Solution {
public:int numSubarrayProductLessThanK(vector<int>& nums, int k) {if (k <= 1) return 0;int n = nums.size();vector<double> logPrefix(n + 1, 0.0);double logK = log(k); // ln(k)for (int i = 0; i < n; ++i) {logPrefix[i + 1] = logPrefix[i] + log(nums[i]);}int count = 0;// 对于每个右边界 right,使用二分查找找到最小的 leftfor (int right = 0; right < n; ++right) {// 找到第一个大于等于 target 的位置int left = upper_bound(logPrefix.begin(), logPrefix.begin() + right + 1, logPrefix[right + 1] - logK + 1e-10) - logPrefix.begin();count += right + 1 - left;}return count;}
};

深入思考

浮点精度?

在二分查找中,我们比较的是浮点数(prefixSum[mid] 和 target)。
由于浮点数的精度有限,直接比较可能会导致结果不准确。
例如,prefixSum[mid] 可能非常接近 target,但由于精度问题,prefixSum[mid] >= target 的判断可能会出错。

修正方法:
在比较时,添加一个很小的值(例如 1e-10)来避免浮点数精度问题。

这样可以确保 prefixSum[mid] 和 target 的比较更加准确。

right - left + 1?

为什么最后求解的答案是 right - left + 1?

为什么子数组个数是 right - left + 1?

由于子数组必须是连续的,因此以 nums[right] 结尾的子数组可以表示为:

[left, right], [left+1, right], [left+2, right], ..., [right, right]

简而言之,就是当在遍历左右边界的时候,子数组的个数是right - left + 1。表示以 nums[right] 结尾的满足条件的子数组个数。

right - left 表示从 left 到 right 之间的元素个数(不包括 left)。

  • +1 表示包括 left 本身。
  • 因此,right - left + 1 表示从 left 到 right 的所有子数组的个数

二分法?

首先思考这题为什么可以用二分法去查找

因为数组数字都是大于或等于 1 ,因此取对数后的前缀和数组是单调递增的,也就是越乘肯定是越大的
所以说可以使用二分法去快速查找

哈希优化?

这题可以效仿【算法】力扣560题:和为 K 的连续子数组之深入思考 使用哈希优化吗?

需要注意的是,哈希表方法通常用于解决“等于某个值”的问题
哈希表通常用于解决以下类型的问题:

  • 查找“等于某个值”的情况:例如,求和等于 k 的子数组。
  • 快速查找和更新:哈希表可以在 O(1) 时间内完成查找和更新操作。

在求和等于 K 的子数组问题中,哈希表的作用是记录前缀和的出现次数,从而快速判断是否存在子数组的和等于 k。具体来说:

  • 对于当前前缀和 sum,我们查找 sum - k 是否在哈希表中。
  • 如果存在,则说明存在若干个子数组的和等于 k。

而对于这道题:
在乘积小于 K 的子数组问题中,我们需要找到满足以下条件的子数组:

nums[left] * nums[left+1] * ... * nums[right] < k

取对数后:

ln(nums[left]) + ln(nums[left+1]) + ... + ln(nums[right]) < ln(k)

哈希表的核心功能是快速查找“等于某个值”的情况,而“小于”条件需要遍历哈希表中的所有键值对,时间复杂度会从 O(1) 退化为 O(n)。
例如,对于每个右边界 right,我们需要找到所有满足 prefixSum[left] > prefixSum[right+1] - ln(k) 的 left,这需要遍历哈希表中的所有前缀和。

相关文章:

【算法】力扣 713题:乘积小于 K 的子数组之深入思考

文章目录 前言题目&#xff1a;乘积小于 K 的子数组参考思路方法一&#xff1a;滑动窗口方法二&#xff1a;二分查找 参考题解方法一&#xff1a;滑动窗口解法方法二&#xff1a;二分查找解法 深入思考浮点精度&#xff1f;right - left 1&#xff1f;二分法&#xff1f;哈希优…...

Milvus vs. ElasticSearch:向量库检索性能测试

目录 1. 构建检索库2. 测试条件3. 测试结果4. 性能分析5. 结论 1. 构建检索库 构建通用场景库总计约2万张。构建车辆数据库总计约12万张。构建公共数据库&#xff0c;包括Flickr30k、COCO、nlvr2、vqa等数据集约43万张。 2. 测试条件 环境说明&#xff1a;分别单机部署Milvu…...

高级数据结构应用:并查集、跳表、布隆过滤器与缓存结构

高级数据结构应用:并查集、跳表、布隆过滤器与缓存结构 在解决复杂问题时,选择合适的数据结构往往是成功的关键。本文将深入探讨四种强大而实用的高级数据结构:并查集、跳表、布隆过滤器和高效缓存结构(LRU和LFU),包括它们的原理、实现、复杂度分析和实际应用场景。 1.…...

CVPR2025 | 蚂蚁浙大提出MP-GUI算法:全方位增强MLLM的GUI理解能力

近日&#xff0c;计算机视觉和模式识别领域国际顶会CVPR 2025公布了论文录用结果&#xff0c;蚂蚁集团与浙江大学EAGLE实验室合作的论文 “MP-GUI: Modality Perception with MLLMs for GUI Understanding” 被成功录用。 IEEE国际计算机视觉与模式识别会议&#xff08;CVPR&a…...

过河卒cpp动态规划

题目如下 思路 利用二维数组存储棋盘的各个点的位置&#xff0c;首先初始化所有位置为0&#xff0c;然后记马的位置为1&#xff0c;将m&#xff0c;n同时加2&#xff0c;避免马的位置溢出&#xff0c;然后对二维数组进行递推算出dp[n][m] 代码及解析如下 谢谢观看&#xff01;…...

春天咋会像冬天一样

2025年3月20日&#xff0c;阴&#xff0c;天寒 遇见的事&#xff1a;21&#xff5e;24号去曲靖招生&#xff0c;打电话给我说换一下&#xff0c;换了后又没有车了&#xff0c;这么坑。 感受到的情绪&#xff1a;你知道么&#xff0c;换的前提是有车。开车不给报销&#xff0c;…...

DooTask在Linux的离线部署教程

DooTask在Linux的离线部署教程 下载安装包 从网盘中将安装包下载到本地&#xff0c;下载地址 通过网盘分享的文件&#xff1a;DooTask项目管理工具 链接: https://pan.baidu.com/s/1hGmLXonT4c8hLiDP1QBr8w?pwdgdp6 提取码: gdp6 通过网盘分享的文件&#xff1a;DooTask项目…...

分享下web3j 常见用法

转账 fun sendEthTransaction(privateKey: String,toAddress: String,amount: BigDecimal) {//chainIdval chainId:Long 1//url 可以从https://chainlist.org/里面获取可用节点//eth转账&#xff0c;bnb同理&#xff0c;但需发送到bnb对应节点val url "https://xxx"…...

跨域问题确认及处理

背景如下&#xff1a; 近期在做的项目中&#xff0c;有个奇怪的需求&#xff0c;需要在JSP项目中嵌套一个VUE项目&#xff0c;原因是&#xff1a;JSP项目是在运且不大方便重构的一个项目&#xff0c;新需求又想为了未来着想做一套单独的项目&#xff0c;无奈只能嵌套。 当项目开…...

PyCharm如何添加已有的conda环境

1、点击文件中的设置 2、在右侧选中项目下的Python解释器 3、在右侧解释器一栏找到添加解释器选项 4、选择本地解释器 5、填写信息 环境&#xff1a;选择现有 类型&#xff1a;conda conda路径&#xff1a;...\Anaconda\Scripts\conda.exe 环境&#xff08;python路径&…...

揭开最大子段和问题的神秘面纱:从暴力法到极致优化的算法之旅

最大子段和问题&#xff1a;从暴力法到优化的算法解析 题目链接 题目描述 给出一个长度为 nn 的序列 aa&#xff0c;选出其中连续且非空的一段使得这段和最大。 输入格式 第一行是一个整数&#xff0c;表示序列的长度 n。第二行有 n 个整数&#xff0c;第 i 个整数表示序列的…...

MySQL原理:逻辑架构

目的&#xff1a;了解 SQL执行流程 以及 MySQL 内部架构&#xff0c;每个零件具体负责做什么 理解整体架构分别有什么模块每个模块具体做什么 目录 1 服务器处理客户端请求 1.1 MySQL 服务器端逻辑架构说明 2 Connectors 3 第一层&#xff1a;连接层 3.1 数据库连接池(Conn…...

提升模型性能:数据增强与调优实战

‌一、为什么需要数据增强&#xff1f; 数据增强通过对训练图像进行‌随机变换‌&#xff0c;能够有效&#xff1a; 增加数据多样性&#xff0c;防止过拟合提升模型对不同视角、光照条件的鲁棒性在数据量不足时显著提升模型性能 二、MNIST手写数字识别实战‌ ‌1. 加载数据…...

Emacs 折腾日记(十八)——改变Emacs的样貌

截止到上一篇文章为止&#xff0c;之前教程 的内容都看完了&#xff0c;虽然它的后记部分提供了一些后续进阶的内容需要我们自己读手册。但是我不太想继续在elisp上死磕了。看着自己学了那么久的elisp&#xff0c;但是自己的emacs仍然没有半点改变&#xff0c;这个时候各位读者…...

VNA操作使用学习-14 再测晶振特性

再测一下4Mhz晶振&#xff0c;看看特性曲线&#xff0c;熟悉一下vna使用。 s11模式&#xff0c;找遍了各种format都无法显示&#xff0c;只有这一种&#xff08;s11&#xff0c;Resistance&#xff09;稍微显示出一个谐振&#xff0c;但是只有一个点。 s21模式 这是201p&#…...

CentOS7 离线下载安装 GitLab CE

依赖下载 https://vault.centos.org/7.9.2009/os/x86_64/Packages/policycoreutils-python-2.5-34.el7.x86_64.rpm 依赖安装 rpm -ivh policycoreutils-python-2.5-34.el7.x86_64.rpm 查看是否安装依赖 rpm -qa | grep policycoreutils-pythongitlab下载 https://packag…...

LeetCode 热题 100_跳跃游戏 II(79_45_中等_C++)(贪心算法)

LeetCode 热题 100_跳跃游戏 II&#xff08;79_45&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;贪心选择&#xff09;&#xff1a; 代码实现代码实现&#xff08;思路一&#xff08;贪心算法&#xff09;…...

《Linux系统编程篇》Linux Socket 网络编程01 API介绍(Linux 进程间通信(IPC))——基础篇

文章目录 引言1. **创建Socket**2. **绑定Socket**3. **监听Socket**4. **接受客户端连接**5. **连接服务器**6. **发送数据**7. **接收数据**8. **发送数据&#xff08;UDP&#xff09;**9. **接收数据&#xff08;UDP&#xff09;**10. **关闭Socket**11. **设置/获取Socket选…...

系统思考—啤酒游戏经营决策沙盘模拟

再次感谢文华学院的邀请&#xff0c;为经纬集团管理层带来 《啤酒游戏经营决策沙盘》&#xff01; 很多朋友问&#xff1a;“最近是不是啤酒游戏上的少了&#xff1f;” 其实&#xff0c;真正的关键不是游戏本身&#xff0c;而是——如何让大家真正看见复杂系统中的隐性结构。 …...

利用设计模式构建事件处理系统

在现代软件开发中&#xff0c;设计模式提供了一种可重用的解决方案来解决常见的设计问题。在这篇博客中&#xff0c;我们将探讨如何利用模板方法模式、责任链模式、建造者模式以及线程安全设计来构建一个灵活且可扩展的事件处理系统。 设计模式及其应用 1. 模板方法模式 应用…...

ThreadLocal 的详细使用指南

一、ThreadLocal 核心原理 ThreadLocal 是 Java 提供的线程绑定机制&#xff0c;为每个线程维护变量的独立副本。其内部通过 ThreadLocalMap 实现&#xff0c;每个线程的 Thread 对象都有一个独立的 ThreadLocalMap&#xff0c;存储以 ThreadLocal 对象为键、线程局部变量为值…...

全员DeepSeek时代,前端能做些什么?

全员DeepSeek时代&#xff0c;前端能做些什么&#xff1f; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc #mermaid-svg-VNyL95jkz9jEXgUq {font-family:&…...

阿里云 AI 搜索产品荣获 Elastic Innovation Award 2024

阿里云AI搜索产品荣获Elastic Innovation Award 2024&#xff0c;该奖项于近日在新加坡ElasticON 2025的Elastic合作伙伴峰会上颁发&#xff0c;旨在表彰基于Elastic平台开发企业级生成式人工智能&#xff08;GenAI&#xff09;应用的顶尖合作伙伴&#xff0c;这些应用有效帮助…...

html5制作2048游戏开发心得与技术分享

2048游戏开发心得与技术分享 这里写目录标题 2048游戏开发心得与技术分享项目概述技术架构1. 核心技术栈2. 项目结构 核心功能实现1. 数据结构设计2. 移动逻辑实现3. 触摸支持 性能优化1. DOM操作优化2. 事件处理优化 开发心得1. 代码组织2. 调试技巧3. 用户体验优化 项目亮点技…...

AI日报 - 2025年3月21日

&#x1f31f; 今日概览&#xff08;60秒速览&#xff09; ▎&#x1f916; AGI突破 | OpenAI成立安全委员会&#xff0c;加速AGI治理框架构建 ▎&#x1f4bc; 商业动向 | 微软发布医疗大模型DAX Copilot 3.0&#xff0c;覆盖全球临床场景 ▎&#x1f4dc; 政策追踪 | 中国发布…...

MyBatis-Plus:告别手写 SQL 的高效之道

目录 1. MyBatis-plus 简介 2. MyBatis-Plus 快速上手 2.1 项目准备 2.2 导入 MyBatis-Plus 依赖 2.3 配置数据库连接 2.4 配置 MyBatis-Plus 日志打印 3. 使用 MyBatis-Plus 3.1 创建 model 类 3.2 创建 mapper 接口 3.3 MyBatis-Plus 映射机制 3.3.1 TableName &a…...

【AI News | 20250320】每日AI进展

AI Repos 1、servers 该仓库提供详细入门指南&#xff0c;用户可通过简单步骤连接Claude客户端&#xff0c;快速使用所有服务器功能。此项目由Anthropic管理&#xff0c;展示MCP的多样性与扩展性&#xff0c;助力开发者为大语言模型提供安全、可控的工具与数据访问。 2、awe…...

让“树和二叉树”埋在记忆土壤中--性质和概念

Nice to meet your! 目录 树的介绍&#xff1a; 树的创建&#xff1a; 二叉树的概念和结构&#xff1a; 二叉树的存储结构&#xff1a; 树的介绍&#xff1a; 概念和结构&#xff1a; 不知你们是否在现实中看见过分为两个叉的枯树&#xff0c;大概长这样&#xff1a; 那…...

210、【图论】课程表(Python)

题目 思路 这道题本质上是一个拓扑排序。每次先统计每个点的入度个数、然后再统计点与点之间的邻接关系&#xff0c;找到入度为0的点作为起始遍历点。之后每遍历到这个点之后&#xff0c;就把这个点后续的邻接关系边的点入度减去一。当某个点入度为0时&#xff0c;继续被加入其…...

【Linux篇】进程控制

&#x1f4cc; 个人主页&#xff1a; 孙同学_ &#x1f527; 文章专栏&#xff1a;Liunx &#x1f4a1; 关注我&#xff0c;分享经验&#xff0c;助你少走弯路&#xff01; 1. 进程创建 1.1 fork函数 在linux中fork函数是非常重要的函数&#xff0c;它从已存在进程中创建一个…...

freeswitch(在呼叫失败的情况下如何播放语⾳提⽰)

亲测版本centos 7.9系统–》 freeswitch1.10.9 本人freeswitch安装路径(根据自己的路径进入) /usr/local/freeswitch/etc/freeswitch⼀般我们在打电话时会听到『您拨的电话正在通话中,请稍后再 拨.』,或『电话⽆应答』之类的提⽰,我们在 FreeSWITCH ⾥也可以这样做。 …...

软考系统架构设计师之计算机组成与体系结构笔记

一、计算机硬件组成 1. 冯诺依曼结构与哈佛结构 冯诺依曼结构&#xff1a;以存储器为中心&#xff0c;指令和数据统一存储&#xff0c;通过总线连接运算器、控制器、输入输出设备。其核心思想是“存储程序控制”&#xff0c;但存在存储器访问瓶颈问题。哈佛结构&#xff1a;指…...

gonet开源游戏服务器环境配置

1.mysql搭建 搜索mysql-server apt安装包名 sudo apt search mysql-server 安装mysql-server sudo apt-get install mysql-server 安装完成后会&#xff0c;启动mysql服务及创建系统服务 查看服务状态 systemctl status mysql.service 使用超级权限登陆mysql sudo mysql 授…...

软件工程之软件验证计划Software Verification Plan

个人主页&#xff1a;云纳星辰怀自在 座右铭&#xff1a;“所谓坚持&#xff0c;就是觉得还有希望&#xff01;” 本文为基于ISO26262软件验证计划模板&#xff0c;仅供参考。 软件验证计划&#xff0c;包括&#xff1a; 1. 软件需求验证计划 2. 软件架构设计验证计划 3. 软件单…...

大模型详细配置

Transformer结构 目前主力大模型都是基于Transformer的&#xff0c;以下是Transformer的具体架构 它由编码器(Encoder)以及解码器(Decoder)组成&#xff0c;前者主要负责对输入数据进行理解&#xff0c;将每个输入 词元都编码成一个上下文语义相关的表示向量&#xff1b;后者…...

Web爬虫利器FireCrawl:全方位助力AI训练与高效数据抓取

Web爬虫利器FireCrawl&#xff1a;全方位助力AI训练与高效数据抓取 一、FireCrawl 项目简介二、主要功能三、FireCrawl应用场景1. 大语言模型训练2. 检索增强生成&#xff08;RAG&#xff09;&#xff1a;3. 数据驱动的开发项目4. SEO 与内容优化5. 在线服务与工具集成 四、安装…...

产业观察:ASML2025.3.21

一.发展历程 1.1 创业背景 在半导体行业的快速发展背景下&#xff0c;ASML的创业故事拉开了帷幕。1983年&#xff0c; 飞利浦S&I技术总监Georg de Kruyff 与 ASM创始人Arthur del Prado 重启合作讨论&#xff0c;为ASML的创立奠定了基础。双方迅速达成协议&#xff0c;计…...

go语言学习教程推荐,零基础到做项目

一、基础入门阶段 官方教程&#xff08;免费&#xff09; • A Tour of Go&#xff1a;交互式入门教程&#xff0c;边学边练 • Go by Example&#xff1a;通过300代码片段学习语法 入门书籍 • &#x1f4d8;《Go语言圣经》中文版&#xff08;免费在线阅读&#xff09;&#…...

设计模式 二、创建型设计模式

GoF是 “Gang of Four”&#xff08;四人帮&#xff09;的简称&#xff0c;它们是指4位著名的计算机科学家&#xff1a;Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides。他们合作编写了一本非常著名的关于设计模式的书籍《Design Patterns: Elements of Reusable…...

51c大模型~合集73

我自己的原文哦~ https://blog.51cto.com/whaosoft/12318419 #Emu3 视频、图像、文本&#xff0c;只需基于下一个Token预测&#xff1a;智源Emu3发布&#xff0c;验证多模态模型新范式 OpenAI 前首席科学家、联合创始人 Ilya Sutskever 曾在多个场合表达观点&#xff1…...

【el-upload】el-upload组件 - list-type=“picture“ 时,文件预览展示优化

目录 问题图el-upload预览组件 PicturePreview效果展示 问题图 el-upload <el-uploadref"upload"multipledragaction"#":auto-upload"false":file-list"fileList"name"files":accept".png,.jpg,.jpeg,.JGP,.JPEG,.…...

STM32F103系列配置中断向量表偏移(Keil/STM32CubeIDE)

需要在flash中添加bootloader的话&#xff0c;需要对flash进行分区&#xff0c;即bootloader区和app区(程序运行区)&#xff0c;主要记录在 Keil 平台和 STM32CubeIDE平台 上的中断向量表偏移配置&#xff0c;以偏移 0x2800 为例&#xff0c;即预留10k大小的空间给bootloader …...

Redis常用数据类型和使用常见以及基本操作举例(适合初学者,以医药连锁管理系统为背景)

Redis的常见数据类型&#xff0c;包括String、Hash、List、Set、Zset等&#xff0c;这些数据类型都有各自的特点和适用场景。接下来&#xff0c;将这些数据类型与医药连锁管理系统的业务场景进行匹配。 String类型&#xff0c;适合存储单个值。在医药连锁管理系统中&#xff0…...

ASL扩展坞方案|Type-c转换器方案|ASL原厂代理商

安格瑞科技代理的ASL主板组件系列包括CS5211、CS5311、CS5232、CS5263、CS621x、CS5523、CS5518等产品&#xff1b; CS5228ANDP to HDMI(4K60HZ)CS5262ANDP (4lanes) to HDMI2.0 4k60Hz VGACS5263ANDP(4lanes) to HDMI2.0 4k60HzCS5363ANDP (4lanes) to HDMI2.0 4k60Hz CS521…...

论文略读(2025.3.18-更新中)

关于可控视频生成 I2V3D: Controllable image-to-video generation with 3D guidance Image to Video工作&#xff0c;能够实现给一张图&#xff0c;输出一个视频&#xff0c;且可以控制相机。动态信息来自于用户手工设计&#xff08;相机移动&#xff0c;人体骨骼驱动&#x…...

基于SpringBoot的“校园招聘网站”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“校园招聘网站”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统整体功能图 局部E-R图 系统首页界面 系统注册…...

【Linux进程七】程序地址空间

【Linux进程七】程序地址空间 1.进程的地址空间分布2.类型的本质是偏移量3.什么是进程地址空间4.页表的映射和访问权限字段5.地址空间的作用 1.进程的地址空间分布 堆是向上扩展的&#xff0c;栈是向下扩展的 因为字符常量区和代码区相邻&#xff0c;受到同样的保护&#xff0c…...

Linux C/C++编程——线程

线程是允许应用程序并发执行多个任务的一种机制&#xff0c;线程参与系统调度。 系统调度的最小单元是线程、而并非进程。 线程包含在进程之中&#xff0c;是进程中的实际运行单位。一个线程指的是进程中一个单一顺序的控制流&#xff08;或者说是执行路线、执行流&#xff09;…...

【Spring Boot 中 `@Value` 注解的使用】

文章目录 一、前言二、Value 注解简介三、Value 注解的常见用法1. 读取 application.properties 或 application.yml 配置值&#xff08;1&#xff09;配置文件示例&#xff08;2&#xff09;Java 代码示例&#xff08;3&#xff09;测试输出 2. 使用 Value 设置默认值3. 读取系…...

【CAD二次开发】调试无法进入断点提示无可用源问题(非空心断点)

问题截图&#xff1a;显示无可用源&#xff0c;关闭后F5走完后&#xff0c;启动的调试就中断了 操作是&#xff1a;打开Cad&#xff0c;打开dwg后&#xff0c;执行命令&#xff0c;就出现以上截图问题。 问题来源&#xff1a;通常是由于 AutoCAD 的 纤程模式&#xff08;Fiber&…...