第427场周赛: 转换数组、用点构造面积最大的矩形 Ⅰ、长度可被 K 整除的子数组的最大元素和、用点构造面积最大的矩形 Ⅱ

Q1、转换数组

1、题目描述

给你一个整数数组 nums,它表示一个循环数组。请你遵循以下规则创建一个大小 相同 的新数组 result

对于每个下标 i(其中 0 <= i < nums.length),独立执行以下操作:

  • 如果 nums[i] > 0:从下标 i 开始,向 移动 nums[i] 步,在循环数组中落脚的下标对应的值赋给 result[i]
  • 如果 nums[i] < 0:从下标 i 开始,向 移动 abs(nums[i]) 步,在循环数组中落脚的下标对应的值赋给 result[i]
  • 如果 nums[i] == 0:将 nums[i] 的值赋给 result[i]

返回新数组 result

**注意:**由于 nums 是循环数组,向右移动超过最后一个元素时将回到开头,向左移动超过第一个元素时将回到末尾。

2、解题思路

  1. 循环数组的处理
    • 循环数组的关键是取模运算。当数组的大小为 n 时,对于任何一个下标 i 和步数 k,可以通过 (i + k) % n 来获得向右移动 k 步后的目标下标,或者通过 (i - k + n) % n 来获得向左移动 k 步后的目标下标。
  2. 问题分解
    • 对于每个下标 i ,根据 nums[i] 的值来决定如何计算 result[i]:
      • 如果 nums[i] == 0,直接将 result[i] 设置为 nums[i]
      • 如果 nums[i] > 0,我们需要向右移动 nums[i] 步,计算目标下标并取值。
      • 如果 nums[i] < 0,我们需要向左移动 abs(nums[i]) 步,同样计算目标下标并取值。
  3. 细节处理
    • 通过对数组长度 n 取模,确保即使移动的步数超过数组长度,也能正确处理循环效果。

3、代码实现

class Solution {
public:vector<int> constructTransformedArray(vector<int>& nums) {int n = nums.size();vector<int> result(n);for (int i = 0; i < n; ++i) {if (nums[i] == 0) {result[i] = nums[i];} else {int targetIndex = (i + nums[i] % n + n) % n;result[i] = nums[targetIndex];}}return result;}
};

4、复杂度分析

时间复杂度O(n),其中 n 是输入数组 nums 的大小。我们只遍历了一次 nums 数组,进行常数时间的操作,因此时间复杂度是线性的。

空间复杂度O(n),我们创建了一个新的数组 result 来存储变换后的结果,空间复杂度为 O(n)


Q2、用点构造面积最大的矩形 Ⅰ

1、题目描述

给你一个数组 points,其中 points[i] = [xi, yi] 表示无限平面上一点的坐标。

你的任务是找出满足以下条件的矩形可能的 最大 面积:

  • 矩形的四个顶点必须是数组中的 四个 点。
  • 矩形的内部或边界上 不能 包含任何其他点。
  • 矩形的边与坐标轴 平行

返回可以获得的 最大面积 ,如果无法形成这样的矩形,则返回 -1。

2、解题思路

  1. 矩形的基本条件
    • 矩形的四个顶点必须在给定的点集 points 中。
    • 矩形的边必须与坐标轴平行。
    • 矩形的内部或边界不能有其他点。
  2. 矩形的顶点特性
    • 假设有四个顶点 (x1, y1), (x2, y2), (x3, y3), (x4, y4),其中 (x1, y1)(x2, y2) 是对角线的两个顶点。根据矩形的性质,其他两个顶点可以通过交换 x 或 y 坐标来确定,具体是 (x1, y2)(x2, y1)
    • 因此,对于任意两点 (x1, y1)(x2, y2),我们可以计算出另外两个点 (x1, y2)(x2, y1),然后检查这两个点是否在 points 中。如果这两个点都存在,那么这四个点就能形成一个矩形。
  3. 验证矩形的合法性
    • 矩形的边界必须没有其他点。我们需要确保除了矩形的四个顶点外,矩形内的所有点都不包含在 points 中。为了提高效率,我们可以使用哈希集 unordered_set 来存储点坐标,这样可以在常数时间内查询某个点是否存在。
  4. 计算矩形面积
    • 对于两个对角点 (x1, y1)(x2, y2),矩形的面积可以通过 abs(x2 - x1) * abs(y2 - y1) 来计算。

解题步骤

  1. 预处理数据
    • 使用哈希集合 unordered_set 存储所有点的坐标,方便后续查询。
  2. 双重遍历所有点对
    • 对于任意两个点 (x1, y1)(x2, y2),如果 x1 != x2y1 != y2,则可以构成一个矩形的两个对角点。计算另外两个顶点 (x1, y2)(x2, y1),并检查它们是否存在于点集合中。
  3. 验证矩形
    • 对于找到的矩形,检查矩形的内部和边界是否只包含矩形的四个顶点,不包含其他点。如果符合条件,则计算矩形的面积。
  4. 更新最大矩形面积
    • 在遍历过程中,始终记录当前找到的最大矩形面积。
  5. 返回结果
    • 如果找到了符合条件的矩形,则返回最大面积;否则返回 -1

3、代码实现

class Solution {
public:int maxRectangleArea(vector<vector<int>>& points) {int n = points.size();if (n < 4) {return -1;  // 如果点数少于4个, 无法形成矩形}// 哈希集合用于快速查询点是否存在unordered_set<string> pointSet;for (const auto& p : points) {pointSet.insert(encode(p[0], p[1]));  // 将每个点编码存入哈希集}int maxArea = -1;  // 最大矩形面积, 初始为-1, 表示未找到矩形// 双重循环,枚举所有点对for (int i = 0; i < n; ++i) {for (int j = i + 1; j < n; ++j) {int x1 = points[i][0], y1 = points[i][1];int x2 = points[j][0], y2 = points[j][1];// 如果两个点在水平或垂直方向上重合,跳过if (x1 != x2 && y1 != y2) {string p3 = encode(x1, y2);  // 第三个点string p4 = encode(x2, y1);  // 第四个点// 检查是否有这两个点if (pointSet.count(p3) && pointSet.count(p4)) {// 检查矩形的内部和边界是否为空if (isValidRectangle(x1, y1, x2, y2, pointSet)) {// 计算矩形面积int area = abs(x2 - x1) * abs(y2 - y1);maxArea = max(maxArea, area);  // 更新最大面积}}}}}return maxArea;  // 返回最大矩形面积, 如果没有矩形, 返回-1}// 将坐标编码成字符串, 便于存入哈希集string encode(int x, int y) {return to_string(x) + "," + to_string(y);}// 检查矩形的内部和边界是否为空bool isValidRectangle(int x1, int y1, int x2, int y2, const unordered_set<string>& pointSet) {int minX = min(x1, x2), maxX = max(x1, x2);int minY = min(y1, y2), maxY = max(y1, y2);// 遍历矩形内部和边界的所有点for (int x = minX; x <= maxX; ++x) {for (int y = minY; y <= maxY; ++y) {string p = encode(x, y);if (pointSet.count(p)) {// 如果不是四个顶点之一,则返回 falseif (!((x == x1 && y == y1) || (x == x1 && y == y2) ||(x == x2 && y == y1) || (x == x2 && y == y2))) {return false;}}}}return true;}
};

4、时间复杂度分析

  • 哈希集合插入:我们将所有点存储到哈希集合中,时间复杂度是 O(n),其中 n 是点的数量。
  • 双重循环:我们枚举所有点对,每次枚举的时间复杂度是 O(n^2)
  • 验证矩形:对于每一对点,我们需要检查矩形的每个点,这需要 O(n) 的时间。

因此,总的时间复杂度为 O(n^3),适合点数较少的情况。


Q3、长度可被 K 整除的子数组的最大元素和

1、题目描述

给你一个整数数组 nums 和一个整数 k

返回 nums 中一个 非空子数组最大 和,要求该子数组的长度可以 k 整除

子数组 是数组中一个连续的、非空的元素序列。

2、解题思路

  • 前缀和(Prefix Sum): 前缀和是一种常见的技巧,它可以在 O(1) 时间复杂度内计算任意区间的和。我们构建一个 prefixSum 数组,其中 prefixSum[i] 表示从数组 nums[0]nums[i-1] 的和。这样,任意子数组的和可以通过 prefixSum 数组的差值计算得到。

  • 余数技巧: 为了确保子数组的长度是 k 的倍数,我们可以利用前缀和的余数。

  • 最小前缀和维护: 为了高效地计算符合条件的子数组和,我们维护一个大小为 k 的数组 minPrefixSum,用来记录每个余数下最小的前缀和。对于每个位置 j,计算当前前缀和 prefixSum[j] 与对应余数的最小前缀和的差值,得到符合条件的子数组和。

  • 最大和更新: 每次遍历时,计算当前前缀和与最小前缀和的差值,更新最大和。

具体实现步骤

  1. 计算前缀和
    • 初始化一个大小为 n + 1 的数组 prefixSum,其中 prefixSum[i] 存储 nums[0]nums[i-1] 的和。此时,prefixSum[0] = 0
  2. 初始化最小前缀和数组
    • 创建一个大小为 k 的数组 minPrefixSum,用来记录每个余数下的最小前缀和。初始化时,将所有值设置为一个非常大的数,LLONG_MAX / 2,这样可以避免溢出。
  3. 遍历前缀和数组
    • 遍历 prefixSum 数组,对于每个 prefixSum[j],计算它的余数 j % k
    • 更新最大和 maxSubarraySum 为当前前缀和与最小前缀和的差值(如果差值大于当前的最大和)。
    • 更新最小前缀和数组 minPrefixSum,保持每个余数下最小的前缀和。
  4. 返回结果
    • 返回计算得到的最大和。

3、代码实现

class Solution {
public:long long maxSubarraySum(vector<int>& nums, int k) {int n = nums.size();vector<long long> prefixSum(n + 1, 0); // 前缀和数组// 计算前缀和数组for (int i = 1; i <= n; ++i) {prefixSum[i] = prefixSum[i - 1] + nums[i - 1];}// 初始化最小前缀和数组vector<long long> minPrefixSum(k, LLONG_MAX / 2);long long ret = LLONG_MIN;// 遍历所有的前缀和,更新最小前缀和数组,并计算可能的最大子数组和for (int i = 0; i <= n; ++i) {// 当前前缀和的余数int remainder = i % k;ret = max(ret, prefixSum[i] - minPrefixSum[remainder]);minPrefixSum[remainder] = min(minPrefixSum[remainder], prefixSum[i]);}return ret;}
};
QQ_1733645195207

4、复杂度

时间复杂度

  • 计算前缀和数组的时间复杂度是 O(n)
  • 遍历前缀和数组并更新最小前缀和数组的时间复杂度也是 O(n)
  • 因此,总时间复杂度是 O(n),其中 n 是数组 nums 的长度。

空间复杂度

  • 我们使用了两个数组 prefixSumminPrefixSum,它们的大小分别为 n + 1k
  • 因此,空间复杂度是 O(n + k)

Q4、用点构造面积最大的矩形 Ⅱ

1、题目描述

在无限平面上有 n 个点。给定两个整数数组 xCoordyCoord,其中 (xCoord[i], yCoord[i]) 表示第 i 个点的坐标。

你的任务是找出满足以下条件的矩形可能的 最大 面积:

  • 矩形的四个顶点必须是数组中的 四个 点。
  • 矩形的内部或边界上 不能 包含任何其他点。
  • 矩形的边与坐标轴 平行

返回可以获得的 最大面积 ,如果无法形成这样的矩形,则返回 -1。

2、解题思路

1、数据预处理

我们需要记录点集的各种关系,用于后续矩形的验证:

  • 按列分组:使用 x_map 记录同一列的所有点的纵坐标。
  • 按行分组:使用 y_map 记录同一行的所有点的横坐标。
  • 计算正下方的点:对于每个点,记录它正下方的点,用 below 存储。
  • 计算正左方的点:对于每个点,记录它正左方的点,用 left 存储。
2、矩形验证

假设矩形的右上角为 (x2, y2),左下角为 (x1, y1),需要验证以下条件:

  1. 矩形左下角 (x1, y1) 存在,且在 (x2, y2) 的左边。
  2. 矩形左上角 (x1, y2) 存在,且在 (x2, y2) 的左边。
  3. 矩形右下角 (x2, y1) 存在,且在 (x2, y2) 的下边。

如果以上条件都满足,就将矩形的顶点记录下来,并存储矩形的面积。

3、离散化

为了高效处理点的范围查询,我们需要对坐标进行离散化:

  • 按行和列分别对坐标排序并映射到离散值。
  • 通过二分查找快速定位坐标的离散值。
4、树状数组支持的离线查询

通过树状数组支持的离线查询,可以高效计算矩形内的点数量:

  • 将每个矩形的验证条件转化为点的区间和查询。
  • 使用树状数组动态维护当前坐标系中的点数量。

通过以上步骤,我们可以逐步处理所有矩形,并得到满足条件的最大面积。

3、代码实现

// 树状数组类,用于高效维护区间和
class Fenwick {vector<int> tree;public:Fenwick(int n) : tree(n + 1, 0) {}// 单点更新,增加一个点void add(int i) {while (i < tree.size()) {tree[i] += 1;i += i & -i;}}// 查询前缀和 [1, i]int pre(int i) {int res = 0;while (i > 0) {res += tree[i];i &= i - 1;}return res;}// 查询区间和 [l, r]int query(int l, int r) { return pre(r) - pre(l - 1); }
};class Solution {
public:long long maxRectangleArea(vector<int>& xCoord, vector<int>& yCoord) {// 使用 x_ma 记录同一列的所有点的纵坐标。使用 y_map 记录同一行的所有点的横坐标。map<int, vector<int>> x_map, y_map;// 用 below 存储每个点它正下方的点, 用 left 存储每个点它正左方的点map<pair<int, int>, int> below, left;// 预处理 x_map 和 y_mapfor (int i = 0; i < xCoord.size(); ++i) {x_map[xCoord[i]].push_back(yCoord[i]);y_map[yCoord[i]].push_back(xCoord[i]);}// 预处理 below, 对于每个点, 记录它正下方的点for (auto& [x, ys] : x_map) {sort(ys.begin(), ys.end());for (int j = 0; j + 1 < ys.size(); ++j) {below[{x, ys[j + 1]}] = ys[j];}}// 预处理 left, 对于每个点, 记录它正左方的点for (auto& [y, xs] : y_map) {sort(xs.begin(), xs.end());for (int j = 0; j + 1 < xs.size(); ++j) {left[{xs[j + 1], y}] = xs[j];}}// 离散化坐标vector<int> xs, ys;for (const auto& [x, _] : x_map) {xs.push_back(x);}for (const auto& [y, _] : y_map) {ys.push_back(y);}sort(xs.begin(), xs.end());sort(ys.begin(), ys.end());auto discretize = [&](int val, const vector<int>& coords) {return lower_bound(coords.begin(), coords.end(), val) - coords.begin();};// 收集矩形的询问vector<tuple<int, int, int, int, long long>> queries;for (auto& [x2, list_y] : x_map) {for (int j = 0; j + 1 < list_y.size(); ++j) {int y1 = list_y[j], y2 = list_y[j + 1];int x1 = left.count({x2, y2}) ? left[{x2, y2}] : -1;if (x1 != -1 && left.count({x2, y1}) && left[{x2, y1}] == x1 &&below.count({x1, y2}) && below[{x1, y2}] == y1) {queries.emplace_back(discretize(x1, xs), discretize(x2, xs), discretize(y1, ys), discretize(y2, ys), (long long)(x2 - x1) * (y2 - y1));}}}// 离线处理vector<vector<tuple<int, int, int, int>>> grouped_queries(xs.size());for (int i = 0; i < queries.size(); ++i) {auto [x1, x2, y1, y2, area] = queries[i];if (x1 > 0) {grouped_queries[x1 - 1].emplace_back(i, -1, y1, y2);}grouped_queries[x2].emplace_back(i, 1, y1, y2);}vector<int> res(queries.size(), 0);Fenwick tree(ys.size());for (int i = 0; i < xs.size(); ++i) {for (int y : x_map[xs[i]]) {tree.add(discretize(y, ys) + 1);}for (auto [qid, sign, y1, y2] : grouped_queries[i]) {res[qid] += sign * tree.query(y1 + 1, y2 + 1);}}// 计算最大面积long long ans = -1;for (int i = 0; i < queries.size(); ++i) {if (res[i] == 4) {ans = max(ans, get<4>(queries[i]));}}return ans;}
};

4、复杂度

  1. 预处理复杂度
    • x_mapy_map 填充:O(n)。
    • belowleft 预处理:O(nlog⁡n)。
  2. 矩形验证:对每个点处理范围查询,复杂度为 O(k),其中 kkk 是点的数量。
  3. 离线查询:使用树状数组动态维护,复杂度为 O(qlog⁡n),其中 q 是矩形数。

总复杂度:O(nlog⁡n+qlog⁡n)。

在这里插入图片描述



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CV工程师专用键盘开源项目硬件分析

1、前言 作为一个电子发烧友&#xff0c;你是否有遇到过这样的问题呢。当我们去查看函数定义的时候&#xff0c;需要敲击鼠标右键之后选择go to definition。更高级一些&#xff0c;我们使用键盘的快捷键来查看定义&#xff0c;这时候可以想象一下&#xff0c;你左手按下ALT&a…

SpringBoot3配置文件

一、统一配置管理概述: SpringBoot工程下&#xff0c;进行统一的配置管理&#xff0c;你想设置的任何参数(端口号、项目根路径、数据库连接信息等等)都集中到一个固定位置和命名的配置文件(application.properties或application.yml)中 配置文件应该放置在Spring Boot工程的s…

【机器学习】任务十一:Keras 模块的使用

1.Keras简介 1.1 什么是Keras&#xff1f; Keras 是一个开源的深度学习框架&#xff0c;用 Python 编写&#xff0c;构建于 TensorFlow 之上。它以简单、快速和易于使用为主要设计目标&#xff0c;适合初学者和研究者。 Keras 提供了高层次的 API&#xff0c;帮助用户快速构…

【新品发布】ESP32-P4开发板 —— 启明智显匠心之作,为物联网及HMI产品注入强劲动力

核心亮点&#xff1a; ESP32-P4开发板&#xff0c;是启明智显精心打造的一款高性能物联网开发板。它专为物联网项目及HMI&#xff08;人机界面&#xff09;产品而设计&#xff0c;旨在为您提供卓越的性能和稳定可靠的运行体验。 强大硬件配置&#xff1a; 双核400MHz RISC-V处…

在Ubuntu22.04.5上安装Docker-CE

文章目录 1. 查看Ubuntu版本2. 安装Docker-CE2.1 安装必要的系统工具2.2 信任Docker的GPG公钥2.3 写入软件源信息2.4 安装Docker相关组件2.5 安装指定版本Docker-CE2.5.1 查找Docker-CE的版本2.5.2 安装指定版本Docker-CE 3. 启动与使用Docker3.1 启动Docker服务3.2 查看Docker…

SSM01-MyBatis框架(一文学会MyBatis)

Mybatis框架 一、Mybatis框架简介 1.1 传统JDBC的缺陷 &#xff08;1&#xff09;数据库连接创建、释放频繁会造成系统资源浪费 【MyBatis通过在核心配置文件中配置数据路连接池解决此问题】 &#xff08;2&#xff09; SQL语句在代码中硬编码(PreparedStatement向占位符传…

uniapp中导入uview或者uview plus

关于SCSS uview-plus依赖SCSS&#xff0c;您必须要安装此插件&#xff0c;否则无法正常运行。 如果您的项目是由HBuilder X创建的&#xff0c;相信已经安装scss插件&#xff0c;如果没有&#xff0c;请在HX菜单的 工具->插件安装中找到"scss/sass编译"插件进行安…

深度解析 Ansible:核心组件、配置、Playbook 全流程与 YAML 奥秘(上)

文章目录 一、ansible的主要组成部分二、安装三、相关文件四、ansible配置文件五、ansible 系列 一、ansible的主要组成部分 ansible playbook&#xff1a;任务剧本&#xff08;任务集&#xff09;&#xff0c;编排定义ansible任务集的配置文件&#xff0c;由ansible顺序依次执…

【CC2530开发基础篇】光敏和热敏传感器

一、前言 1.1 开发背景 本实验通过CC2530单片机接入光敏传感器和热敏传感器&#xff0c;进行数据采集与检测&#xff0c;并将检测结果通过串口终端输出。光敏传感器和热敏传感器是常见的环境感知设备&#xff0c;分别用于测量光强和温度。在实际应用中&#xff0c;这些传感器…

第6章:布局 --[CSS零基础入门]

CSS 布局是网页设计中至关重要的一个方面&#xff0c;它决定了页面上元素的排列和展示方式。以下是几种常见的 CSS 布局方法和技术&#xff1a; 1. 浮动布局&#xff08;Float Layout&#xff09; 浮动布局&#xff08;Float Layout&#xff09;曾经是网页设计中创建多列布局…

设计模式:20、状态模式(状态对象)

目录 0、定义 1、状态模式的三种角色 2、状态模式的UML类图 3、示例代码 0、定义 允许一个对象在其内部状态改变时改变它的行为&#xff0c;对象看起来似乎修改了它的类。 1、状态模式的三种角色 环境&#xff08;Context&#xff09;&#xff1a;环境是一个类&#xff0…

【论文笔记】VisionZip: Longer is Better but Not Necessary in Vision Language Models

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: VisionZip: Longer is Bet…

flex: 1 display:flex 导致的宽度失效问题

flex: 1 & display:flex 导致的宽度失效问题 问题复现 有这样的一个业务场景&#xff0c;详情项每行三项分别占33%宽度&#xff0c;每项有label字数不固定所以宽度不固定&#xff0c;还有content 占满标签剩余宽度&#xff0c;文字过多显示省略号&#xff0c; 鼠标划入展示…

visual studio2019开发过程中遇到的问题和有帮助的插件

文章目录 1. 注释中有中文导致报错2. 打开一个vs2013或者vs2010等老的项目兼容性3. LNK2019 unresolved external symbol main referenced in function __tmainCRTStartup4. image watch插件/扩展使用 1. 注释中有中文导致报错 C4819 The file contains a character that cann…

存内架构IR-DROP问题详解-电容电导补偿

一、总述 电容、电导补偿作为大规模数字电路的关键设计理念&#xff0c;是 CIM 架构优化的核心技术。在 CIM 中&#xff0c;平衡电容或电导并实现计算的精准映射&#xff0c;对能效提升和计算精度保障具有关键作用。本文基于近期文献探讨电容、电导补偿在 CIM 中的具体补偿策…

HDR视频技术之六:色调映射

图像显示技术的最终目的就是使得显示的图像效果尽量接近人们在自然界中观察到的对应的场景。 HDR 图像与视频有着更高的亮度、更深的位深、更广的色域&#xff0c;因此它无法在常见的普通显示器上显示。 入门级的显示器与播放设备&#xff08;例如普通人家使用的电视&#xff0…

隐式神经网络实现低光照图像增强

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

深入浅出:SOME/IP-SD的工作原理与应用

目录 往期推荐 相关缩略语 SOME/IP 协议概述 协议介绍 SOME/IP TP 模块概述和 BSW 模块依赖性 原始 SOME/IP 消息的Header格式 SOME/IP-SD 模块概述 模块介绍 BSW modules依赖 客户端-服务器通信示例 Message 结构 用于SD服务的BSWM状态处理 往期推荐 ETAS工具…

【Docker】Linux与Windows系统安装Docker+Docker上简单安装MySQL

一、Windows安装Docker 由于我在许多平台搜索Windows下安装Docker的方法&#xff0c;都提到了Win10家庭版无法直接安装Docker。个人电脑就是Win10家庭版&#xff0c;本着实践出真知的想法&#xff0c;个人在本机Win10家庭版实验结果为需要采用下述传统手动安装的办法&#xff…

关于springBoot+vue项目中配置SSL证书问题

前端可以通过https进行访问 1.前端在访问后端接口时&#xff0c;使用https进行访问&#xff0c;在request.js配置文件中&#xff0c;这个文件是配置axios的基本请求的&#xff0c;在基础请求地址中改为https方式 2.需要在Linux中的nginx中配置ssl证书&#xff0c;具体请参考&…