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

第436场周赛:按对角线进行矩阵排序、将元素分配给有约束条件的组、统计可以被最后一个数位整除的子字符串数目、最大化游戏分数的最小值

Q1、按对角线进行矩阵排序

1、题目描述

给你一个大小为 n x n 的整数方阵 grid。返回一个经过如下调整的矩阵:

  • 左下角三角形(包括中间对角线)的对角线按 非递增顺序 排序。
  • 右上角三角形 的对角线按 非递减顺序 排序。

2、解题思路

遍历所有对角线

  • 主对角线及以下的对角线:从 (i,0) 开始遍历 (i=0,1,...,n-1),这些对角线需要降序排序
  • 主对角线右侧的对角线:从 (0,j) 开始遍历 (j=1,2,...,n-1),这些对角线需要升序排序

对每条对角线进行排序

  • 提取当前对角线的所有元素存入数组 v
  • 按照题目要求对 v 进行排序。
  • 按照对角线的顺序,将排序后的 v 放回 grid

3、代码实现

class Solution {
public:vector<vector<int>> sortMatrix(vector<vector<int>>& grid) {int n = grid.size(); // 矩阵大小// 处理左下角三角形 (含主对角线) :非递增排序for (int i = 0; i < n; ++i) {sortDiagonal(grid, i, 0, false);}// 处理右上角三角形: 非递减排序for (int j = 1; j < n; ++j) {sortDiagonal(grid, 0, j, true);}return grid;}private:/*** @brief 对矩阵的某条对角线进行排序** @param grid 矩阵* @param row  当前对角线起点的行索引* @param col  当前对角线起点的列索引* @param increasing 是否升序排序(true: 升序, false: 降序)*/void sortDiagonal(vector<vector<int>>& grid, int row, int col, bool increasing) {int n = grid.size();vector<int> v; // 存储对角线元素int i = row, j = col;// 收集当前对角线上的所有元素while (i < n && j < n) {v.push_back(grid[i++][j++]);}// 按照要求排序if (increasing) {sort(v.begin(), v.end()); // 升序排序} else {sort(v.rbegin(), v.rend()); // 降序排序}// 将排序后的元素放回原来的对角线位置i = row, j = col;int idx = 0;while (i < n && j < n) {grid[i++][j++] = v[idx++];}}
};

在这里插入图片描述

4、复杂度分析

时间复杂度分析

  • 总共有 2n-1 条对角线,每条对角线至多 n 个元素。
  • 每条对角线排序需要 O(n log n),所以总的时间复杂度为 O(n² log n)

Q2、将元素分配给有约束条件的组

1、题目描述

给你一个整数数组 groups,其中 groups[i] 表示第 i 组的大小。另给你一个整数数组 elements

请你根据以下规则为每个组分配 一个 元素:

  • 如果 groups[i] 能被 elements[j] 整除,则元素 j 可以分配给组 i
  • 如果有多个元素满足条件,则分配下标最小的元素 j
  • 如果没有元素满足条件,则分配 -1 。

返回一个整数数组 assigned,其中 assigned[i] 是分配给组 i 的元素的索引,若无合适的元素,则为 -1。

**注意:**一个元素可以分配给多个组。

2、解题思路

预处理 elements

  • 记录 元素值 val 的最小索引 j,使用 unordered_map<int, int> 存储 {元素值 -> 最小索引}
  • set<int> 维护所有可用 elements

遍历 groups,查找可整除元素的最小索引

  • 优化方式:只检查 groups[i]所有因数(因数成对出现)。
  • set<int> 里查找因数 dgroups[i] / d,找到最小索引。

时间复杂度分析

  • 预处理 elementsO(m)
  • 遍历 groupsO(n * sqrt(groups[i])),因数分解至多 sqrt(groups[i]) 次。
  • 总复杂度:约 O(n log max(groups[i]) + m),可接受。

3、代码实现

class Solution {
public:vector<int> assignElements(vector<int>& groups, vector<int>& elements) {int n = groups.size();int m = elements.size();vector<int> ret(n, -1); // 结果数组, 初始值为 -1unordered_map<int, int> elementIndex; // 记录元素值 -> 最小索引set<int> elementSet;                  // 记录所有可用的元素值// 预处理 elements, 记录每个元素的最小索引for (int j = 0; j < m; ++j) {if (elementIndex.find(elements[j]) == elementIndex.end()) {elementIndex[elements[j]] = j; // 只存最小索引}elementSet.insert(elements[j]); // 记录存在的元素}// 遍历 groups, 寻找最小可用元素索引for (int i = 0; i < n; ++i) {int minIndex = -1; // 记录当前 groups[i] 可选元素的最小索引// 枚举 groups[i] 的因数 dfor (int d = 1; d * d <= groups[i]; ++d) {if (groups[i] % d == 0) {// 可能的两个因数: d 和 groups[i] / dint factor1 = d, factor2 = groups[i] / d;// 检查因数 factor1 是否在元素集中, 更新最小索引if (elementSet.count(factor1) &&(minIndex == -1 || elementIndex[factor1] < minIndex)) {minIndex = elementIndex[factor1];}// 检查因数 factor2// 是否在元素集中, 更新最小索引 (避免重复检查相等因数)if (factor1 != factor2 && elementSet.count(factor2) &&(minIndex == -1 || elementIndex[factor2] < minIndex)) {minIndex = elementIndex[factor2];}}}ret[i] = minIndex; // 存储当前组的最优元素索引}return ret;}
};

在这里插入图片描述

4、复杂度分析

步骤操作时间复杂度
预处理 elements存入 unordered_map & setO(m)
遍历 groupsO(n)
计算 groups[i] 的所有因数O(sqrt(groups[i]))
查找因数是否存在O(1)
总复杂度O(n log max(groups[i]) + m)

Q3、统计可以被最后一个数位整除的子字符串数目

1、题目描述

给你一个只包含数字的字符串 s

请你返回 s 的最后一位 不是 0 的子字符串中,可以被子字符串最后一位整除的数目。

子字符串 是一个字符串里面一段连续 非空 的字符序列。

**注意:**子字符串可以有前导 0 。

2、解题思路

维护 remainderCount 结构

  • remainderCount[mod][rem] 记录当前处理到的前缀中,对 mod 取模后余数为 rem 的子串个数。

遍历字符串 s

  • 逐个处理字符 digit,它可以作为新子串的起点,也可以扩展已有子串。
  • mod = 19 进行遍历:
    • 计算 digit % mod,即 digit 本身作为单个子串的余数。
    • 对于已有的前缀余数 rem,计算新的 newRem = (rem * 10 + digit) % mod,并更新 remainderCount[mod]
    • 统计 digit 作为子串结尾且余数 0 的情况,加到 totalCount

时间复杂度

  • 由于 mod 只有 1~9,每次更新 O(9),整体复杂度 O(9 * n) ≈ O(n),可以高效处理较长字符串。

3、代码实现

class Solution {
public:long long countSubstrings(string s) {long long totalCount = 0;array<int, 9> remainderCount[10]{}; // 记录模 1~9 下的余数分布// 遍历字符串中的每个数字for (char ch : s) {int digit = ch - '0'; // 当前数字// 计算所有 1~9 的模数for (int mod = 1; mod <= 9; mod++) {array<int, 9> newCount{};  // 存储新的余数分布newCount[digit % mod] = 1; // 单独当前字符作为子串// 遍历当前模数 mod 下所有可能的余数for (int rem = 0; rem < mod; rem++) {int newRem = (rem * 10 + digit) % mod; // 计算新的余数newCount[newRem] += remainderCount[mod][rem]; // 更新计数}// 更新模 mod 的余数统计remainderCount[mod] = newCount;}// 统计以当前 digit 结尾的符合条件的子串数量totalCount += remainderCount[digit][0];}return totalCount;}
};

在这里插入图片描述

4、复杂度分析

操作复杂度
遍历字符串O(n)
遍历 mod = 1~9O(9)
遍历 rem = 0~modO(9)
总复杂度O(9 * n) ≈ O(n)

Q4、最大化游戏分数的最小值

1、题目描述

给你一个长度为 n 的数组 points 和一个整数 m 。同时有另外一个长度为 n 的数组 gameScore ,其中 gameScore[i] 表示第 i 个游戏得到的分数。一开始对于所有的 i 都有 gameScore[i] == 0

你开始于下标 -1 处,该下标在数组以外(在下标 0 前面一个位置)。你可以执行 至多 m 次操作,每一次操作中,你可以执行以下两个操作之一:

  • 将下标增加 1 ,同时将 points[i] 添加到 gameScore[i]
  • 将下标减少 1 ,同时将 points[i] 添加到 gameScore[i]

注意,在第一次移动以后,下标必须始终保持在数组范围以内。

请你返回 至多 m 次操作以后,gameScore 里面最小值 最大 为多少。

2、解题思路

(1) 采用二分查找

我们要找到最大的 minScore,使得 gameScore 的最小值至少是 minScore。由于 minScore 取值范围较大,我们可以 二分查找 这个值。

为什么可以用二分查找?

  • minScore 设定得越高,满足条件的难度就越大。
  • 我们可以通过一个 canAchieve(minScore) 函数来验证是否能在 m 次操作内实现 gameScore[i] >= minScore

(2) 设计 canAchieve(minScore) 检查函数

对于 canAchieve(minScore),我们的目标是检查 是否可以通过最多 m 次操作,使得所有 gameScore[i] 至少为 minScore

核心逻辑

  1. 遍历数组 points,计算需要的步数 stepsNeeded

    • 如果 gameScore[i] 需要至少达到 minScore,那么 stepsNeeded 至少为:

      stepsNeeded = minScore + points [ i ] − 1 points [ i ] \text{stepsNeeded} = \frac{\text{minScore} + \text{points}[i] - 1}{\text{points}[i]} stepsNeeded=points[i]minScore+points[i]1

    • 这里是 (minScore + points[i] - 1) / points[i],是为了确保 上取整 计算 stepsNeeded

  2. 考虑 m 次操作是否足够

    • 每次向前移动 1 次后可以返回,因此每个 stepsNeeded 会消耗 2 × stepsNeeded − 1 2 \times \text{stepsNeeded} - 1 2×stepsNeeded1 次操作。
    • 如果 remainingMoves < 0,说明 m 次操作不够,返回 false

(3) 二分查找 minScore 的最大值

  • left = 0right = (m + 1) / 2 * *min_element(points.begin(), points.end()) + 1
    • right 设定为 points 数组中最小元素乘 (m+1)/2,这是最极端情况下 minScore 可能达到的最大值。
  • 通过二分查找找到最大的 minScore 使 canAchieve(minScore) == true

3、代码实现

class Solution {
public:long long maxScore(vector<int>& points, int m) {// 二分查找检查函数, 判断是否能达到 minScoreauto canAchieve = [&](long long minScore) -> bool {int n = points.size(), remainingMoves = m, prevSteps = 0;for (int i = 0; i < n; i++) {// 计算需要多少次操作, 使 gameScore[i] >= minScoreint stepsNeeded =(minScore + points[i] - 1) / points[i] - prevSteps;// 最后一个元素已经满足if (i == n - 1 && stepsNeeded <= 0) {break;}stepsNeeded = max(stepsNeeded, 1); // 至少要前进 1 步// 计算所需的操作次数remainingMoves -= 2 * stepsNeeded - 1; // 左右横跳操作if (remainingMoves < 0) {return false; // 操作次数不够}prevSteps = stepsNeeded - 1; // 预留下一次操作}return true;};// 设定二分查找的搜索范围long long left = 0;long long right = 1LL * (m + 1) / 2 * *min_element(points.begin(), points.end()) + 1;while (left + 1 < right) {long long mid = left + (right - left) / 2;if (canAchieve(mid)) {left = mid; // 尝试更大的 minScore} else {right = mid; // 降低 minScore}}return left;}
};

在这里插入图片描述

4、复杂度分析

  • 二分查找部分O(log V),其中 Vright 的初始值,大约是 O(log(m))
  • canAchieve() 计算O(n),因为我们需要遍历 points 数组。
  • 整体复杂度O(n log m),对于 n = 10^5m = 10^9 级别的数据,依然可以接受。


相关文章:

第436场周赛:按对角线进行矩阵排序、将元素分配给有约束条件的组、统计可以被最后一个数位整除的子字符串数目、最大化游戏分数的最小值

Q1、按对角线进行矩阵排序 1、题目描述 给你一个大小为 n x n 的整数方阵 grid。返回一个经过如下调整的矩阵&#xff1a; 左下角三角形&#xff08;包括中间对角线&#xff09;的对角线按 非递增顺序 排序。右上角三角形 的对角线按 非递减顺序 排序。 2、解题思路 遍历所…...

DeepSeek vs. ChatGPT:不同的诞生时间,对人工智能发展的不同影响

DeepSeek vs. ChatGPT&#xff1a;不同的诞生时间&#xff0c;对人工智能发展的不同影响 ChatGPT 和 DeepSeek 诞生于不同的时间节点&#xff0c;代表了人工智能不同阶段的发展方向。它们在技术、应用以及对AI发展趋势的影响方面各有侧重。 1. 诞生时间与背景 ChatGPT&#x…...

chrome-base 如何实现一个BindOnce

考虑一个问题&#xff1a; worker_thread.task_runner()->PostDelayedTask(FROM_HERE, base::BindOnce(&Ref::Foo, ref, 1), base::Milliseconds(1000)); BindOnce 是如何实现的呢&#xff1f; 翻看源码&#xff1a;base\functional\bind.h 写的 非常简洁 // Bind a…...

代码随想录算法训练营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;比如下载资源或等待其他脚本加载。只对外部…...