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

双周赛103(模拟、网格图BFS、树状数组)

文章目录

  • 双周赛103
    • [6406. K 个元素的最大和](https://leetcode.cn/problems/maximum-sum-with-exactly-k-elements/)
      • 模拟
    • [6405. 找到两个数组的前缀公共数组](https://leetcode.cn/problems/find-the-prefix-common-array-of-two-arrays/)
      • 模拟
    • [6403. 网格图中鱼的最大数目](https://leetcode.cn/problems/maximum-number-of-fish-in-a-grid/)
      • 本质是网格图求连通块大小
    • 🎉[6404. 将数组清空](https://leetcode.cn/problems/make-array-empty/)
      • 树状数组

双周赛103

题解参考:小样肖恩:https://leetcode.cn/circle/discuss/KAtdoc/

6406. K 个元素的最大和

难度简单0

给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操作 恰好 k 次,最大化你的得分:

  1. nums 中选择一个元素 m
  2. 将选中的元素 m 从数组中删除。
  3. 将新元素 m + 1 添加到数组中。
  4. 你的得分增加 m

请你返回执行以上操作恰好 k 次后的最大得分。

示例 1:

输入:nums = [1,2,3,4,5], k = 3
输出:18
解释:我们需要从 nums 中恰好选择 3 个元素并最大化得分。
第一次选择 5 。和为 5 ,nums = [1,2,3,4,6] 。
第二次选择 6 。和为 6 ,nums = [1,2,3,4,7] 。
第三次选择 7 。和为 5 + 6 + 7 = 18 ,nums = [1,2,3,4,8] 。
所以我们返回 18 。
18 是可以得到的最大答案。

示例 2:

输入:nums = [5,5,5], k = 2
输出:11
解释:我们需要从 nums 中恰好选择 2 个元素并最大化得分。
第一次选择 5 。和为 5 ,nums = [5,5,6] 。
第二次选择 6 。和为 6 ,nums = [5,5,7] 。
所以我们返回 11 。
11 是可以得到的最大答案。

提示:

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100
  • 1 <= k <= 100

模拟

题意:每次取一个数,将其作为得分,并对其进行增大 1的操作,进行k次,求总得分最大值。

显然每次取最大值肯定是最好的,因此数组中唯一重要的是最大值 m。因为每次的得分以1为公差依次递增,因此计算一个首项为 m,公差为1,项数为k的等差数列的和即可

时间复杂度为 O(n),来自于求数组最大值

Java

class Solution {public int maximizeSum(int[] nums, int k) {Arrays.sort(nums);int max = nums[nums.length - 1];int res = 0;while(k-- > 0){res += max;max++;}return res;}
}

python

class Solution:def maximizeSum(self, nums: List[int], k: int) -> int:m = max(nums)ans = 0while k > 0:ans += mm += 1k -= 1return ans
# 推公式:一行代码
class Solution:def maximizeSum(self, nums: List[int], k: int) -> int:# 推公式:假设数组最大值为m,累加k次#   答案就是:m + (m+1) + (m+2) + ... + (m + k - 1)#   ==> (m + m + k - 1)*k / 2【(首项+尾项)*项数 / 2:等差数列的前n项和: Sn=[n(A1+An)]/2】return (2 * max(nums) + k-1) * k // 2;

6405. 找到两个数组的前缀公共数组

难度中等0

给你两个下标从 0 开始长度为 n 的整数排列 AB

AB前缀公共数组 定义为数组 C ,其中 C[i] 是数组 AB 到下标为 i 之前公共元素的数目。

请你返回 AB前缀公共数组

如果一个长度为 n 的数组包含 1n 的元素恰好一次,我们称这个数组是一个长度为 n排列

示例 1:

输入:A = [1,3,2,4], B = [3,1,2,4]
输出:[0,2,3,4]
解释:i = 0:没有公共元素,所以 C[0] = 0 。
i = 1:1 和 3 是两个数组的前缀公共元素,所以 C[1] = 2 。
i = 2:1,2 和 3 是两个数组的前缀公共元素,所以 C[2] = 3 。
i = 3:1,2,3 和 4 是两个数组的前缀公共元素,所以 C[3] = 4 。

示例 2:

输入:A = [2,3,1], B = [3,1,2]
输出:[0,1,3]
解释:i = 0:没有公共元素,所以 C[0] = 0 。
i = 1:只有 3 是公共元素,所以 C[1] = 1 。
i = 2:1,2 和 3 是两个数组的前缀公共元素,所以 C[2] = 3 。

提示:

  • 1 <= A.length == B.length == n <= 50
  • 1 <= A[i], B[i] <= n
  • 题目保证 AB 两个数组都是 n 个元素的排列。

模拟

java

class Solution {public int[] findThePrefixCommonArray(int[] A, int[] B) {int n = A.length;int[] res = new int[n];int[] cnta = new int[n+1];int[] cntb = new int[n+1];int presum = 0;for(int i = 0; i < n; i++){cnta[A[i]]++;cntb[B[i]]++;if(A[i] != B[i]){if(cntb[A[i]] > 0) presum += 1;if(cnta[B[i]] > 0) presum += 1;   }else{if(cntb[A[i]] > 0) presum += 1;}res[i] = presum;}return res;}
}

由于两个数组都是1到 n 的排列,前缀公共部分种的任意一个数,一定在 A,B 中分别出现一次,即出现两次。因此在一个数出现两次时,前缀公共数字数量增加了 1,使用这一性质更新即可。

时间复杂度为O(n),来源于遍历数组

class Solution:def findThePrefixCommonArray(self, A: List[int], B: List[int]) -> List[int]:n, presum = len(A), 0ans = []cnt = [0] * (n+1)for x, y in zip(A, B):cnt[x] += 1if cnt[x] == 2: presum += 1 # 不要在 cnt[y] += 1 后进行,否则 x = y 的情况下分别计数,会多算cnt[y] += 1if cnt[y] == 2:presum += 1ans.append(presum)return ans

6403. 网格图中鱼的最大数目

难度困难1

给你一个下标从 0 开始大小为 m x n 的二维整数数组 grid ,其中下标在 (r, c) 处的整数表示:

  • 如果 grid[r][c] = 0 ,那么它是一块 陆地
  • 如果 grid[r][c] > 0 ,那么它是一块 水域 ,且包含 grid[r][c] 条鱼。

一位渔夫可以从任意 水域 格子 (r, c) 出发,然后执行以下操作任意次:

  • 捕捞格子 (r, c) 处所有的鱼,或者
  • 移动到相邻的 水域 格子。

请你返回渔夫最优策略下, 最多 可以捕捞多少条鱼。如果没有水域格子,请你返回 0

格子 (r, c) 相邻 的格子为 (r, c + 1)(r, c - 1)(r + 1, c)(r - 1, c) ,前提是相邻格子在网格图内。

示例 1:

img

输入:grid = [[0,2,1,0],[4,0,0,3],[1,0,0,4],[0,3,2,0]]
输出:7
解释:渔夫可以从格子 (1,3) 出发,捕捞 3 条鱼,然后移动到格子 (2,3) ,捕捞 4 条鱼。

示例 2:

img

输入:grid = [[1,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,1]]
输出:1
解释:渔夫可以从格子 (0,0) 或者 (3,3) ,捕捞 1 条鱼。

提示:

  • m == grid.length
  • n == grid[i].length
  • 1 <= m, n <= 10
  • 0 <= grid[i][j] <= 10

本质是网格图求连通块大小

对于每一个水域构成的连通块,最多捕捞的鱼的总数为这个连通块里鱼的数量的总和。因此我们只需要对于每一个连通块查看总鱼数量即可。这个可以用深度/广度优先搜索或并查集直接解决。时间复杂度O(nm)。

java(DFS)

在遍历每一个连通块时,可以将遍历过的位置值设置为0,这样就不用开vis数组了

class Solution {int[][] dirts = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};int[][] grid;int n, m;public int findMaxFish(int[][] grid) {int res = 0;n = grid.length; m = grid[0].length;this.grid = grid;for(int i = 0; i < n; i++){for(int j = 0; j < m; j++)res = Math.max(res, dfs(i, j));}return res;}public int dfs(int i, int j){if(i < 0 || i >= n || j < 0 || j >= m || grid[i][j] == 0)return 0;int result = grid[i][j];grid[i][j] = 0;for(int[] d : dirts){int x = i + d[0], y = j + d[1];result += dfs(x, y);}return result;}
}

python

class Solution:def findMaxFish(self, grid: List[List[int]]) -> int:n, m = len(grid), len(grid[0])ans = 0def dfs(i, j: int) -> int:res = grid[i][j]grid[i][j] = 0for x, y in (i + 1, j), (i - 1, j), (i, j - 1), (i, j + 1): if 0 <= x < n and 0 <= y < m and grid[x][y]:res += dfs(x, y)return resfor i in range(n):for j in range(m):if grid[i][j] > 0:tot = dfs(i, j)ans = max(ans, tot)return ans

更短更优雅的网格图DFS模板:python

class Solution:def findMaxFish(self, grid: List[List[int]]) -> int:n, m = len(grid), len(grid[0])ans = 0def dfs(i, j: int) -> int:if i < 0 or i >= n or j < 0 or j >= m or grid[i][j] == 0:return 0res = grid[i][j]grid[i][j] = 0for x, y in (i + 1, j), (i - 1, j), (i, j - 1), (i, j + 1): res += dfs(x, y)return resreturn max(max(dfs(i, j) for j in range(m)) for i in range(n))

🎉6404. 将数组清空

难度困难2

给你一个包含若干 互不相同 整数的数组 nums ,你需要执行以下操作 直到****数组为空

  • 如果数组中第一个元素是当前数组中的 最小值 ,则删除它。
  • 否则,将第一个元素移动到数组的 末尾

请你返回需要多少个操作使 nums 为空。

示例 1:

输入:nums = [3,4,-1]
输出:5
OperationArray
1[4, -1, 3]
2[-1, 3, 4]
3[3, 4]
4[4]
5[]

示例 2:

输入:nums = [1,2,4,3]
输出:5
OperationArray
1[2, 4, 3]
2[4, 3]
3[3, 4]
4[4]
5[]

示例 3:

输入:nums = [1,2,3]
输出:3
OperationArray
1[2, 3]
2[3]
3[]

提示:

  • 1 <= nums.length <= 105
  • -109 <= nums[i] <= 109
  • nums 中的元素 互不相同

题解:小羊肖恩 https://leetcode.cn/u/yawn_sean/

首先,我们肯定不能直接执行题目中给出的操作,否则时间复杂度将达到操作的数量。那么,我们应该在原数组中考虑删除操作和移动操作分别意味着什么。

我们考虑一个指针,在原数组中进行移动,且每次移动一个单位。那么“第一个元素移动到末尾”可以刻画为将该指针移动到下一个还在数组中的数字位置上,“删除”可以刻画为将某一个位置置空。

删除的位置顺序是预先给定的,对应位置的数字从小到大。

接下来我们考虑两次删除操作之间的间隔,相当于从某个位置移动到下一个最小值的位置。这两个位置在原数组中的下标是确定的, 因此我们只需要考虑这两点间有多少位置未被置空即可,这相当于一个区间求和,每次可以更新置空情况。 这可以通过线段树或树状数组等实现 (可以搜索相关知识)。具体逻辑可见代码注释。

时间复杂度为O(nlogn),来源于排序还有树状数组等结构的更新


为什么大佬们一眼看出是树状数组呢?

不是一眼看出树状数组,而是要把找两个相邻的最小值之间还有几个数没删掉的问题转变成动态区间和问题,这个转化过程才是最重要的,至于你用什么数据结构求动态区间和是次要的,很多数据结构都能做,最常用的树状数组和线段树(这题比较特殊有序集合也能做),树状数组容易套板,码量少,常数还比线段树小。所以你才会看到大佬们清一色的树状数组。

树状数组

题解:https://leetcode.cn/problems/make-array-empty/solution/shu-zhuang-shu-zu-mo-ni-pythonjavacgo-by-ygvb/

class Solution:"""转换:将第一个元素移动到数组的末尾 ==> 用 下标  来标记当前数组的第一个数是谁,然后不断往后移动举例 :2413 ==> 当前下标2 ==> 1324 ==>删除1 ==> 324 ==> 当前下标3这个转换是怎么想到的?技巧,相对关系【数字往后移 等价于 用一个下标来模拟】删除一个数后,下标自动向右移动一位(这一次操作是免费的)我们需要记录每一个数的位置,从小到大删除上一个删除的数的下标是 pre, 当前要删除的下标是 i因此我们需要思考【从pre移动到i,需要移动多少次?】1. 维护中间被删除的数字个数==> 树状数组如果pre <= i, 移动次数 i-pre-query(pre,i) 【pre到i,再减去中间删除的个数】如果pre > i, 移动次数 n - pre-query(pre,n) + 1【n到1的那一步】 + (i-1) - query(1,i) 【pre到n,再从1到i】 简化一下: n - pre + i - (k - query(i, pre-1)) 【树状数组中一共有k个数】2. """def countOperationsToEmptyArray(self, nums: List[int]) -> int:ans = n = len(nums) # 先把 n 计入答案t = BIT(n+1) # 树状数组下标从1开始pre = 1 # 上一个最小值的位置,初始为 1# 根据元素大小对下标进行排序,然后枚举 数的位置 从小到大删除每个数ids = sorted(range(n), key = lambda i: nums[i])for k, i in enumerate(ids):i += 1 # 下标i从1开始if pre <= i: # 从 pre 移动到 i,跳过已经删除的数ans += i - pre - t.query(pre, i)else:ans += n - pre + i - (k - t.query(i, pre-1))t.inc(i) # 删除i(添加到树状数组中)pre = ireturn ans# 树状数组模板
class BIT:def __init__(self, n):self.tree = [0] * n# 将下标 i 上的数加一def inc(self, i: int) -> None:while i < len(self.tree):self.tree[i] += 1i += i & -i# 返回闭区间 [1, i] 的元素和def sum(self, i: int) -> int:res = 0while i > 0:res += self.tree[i]i &= i - 1return res# 返回闭区间 [left, right] 的元素和def query(self, left: int, right: int) -> int:return self.sum(right) - self.sum(left - 1)

java

class Solution {public long countOperationsToEmptyArray(int[] nums) {int n = nums.length;Integer[] ids = new Integer[n];for(int i = 0; i < n; i++) ids[i] = i;Arrays.sort(ids, (i, j) -> nums[i] - nums[j]);long ans = n; // 先把n计入答案BinaryIndexedTree t = new BinaryIndexedTree(n+1); // 下标从1开始int pre = 1;for(int k = 0; k < n; k++){int i = ids[k] + 1;// 当前要删除的下标,提前+1(下标从1开始)if(i >= pre) // 从 pre 移动到 i,跳过已经删除的数ans += i - pre - t.RangeSum(pre, i);else // 从 pre 移动到 n,再从 1 移动到 i,跳过已经删除的数ans += n - pre + i - k + t.RangeSum(i, pre-1);t.add(i, 1); // 删除ipre = i;}return ans;}
}// BIT动态维护 arr 的前缀和(注意这里下标是从1开始的)
class BinaryIndexedTree{private int n;private int[] tree;public BinaryIndexedTree(int n){ // 初始化时,要传入n+1this.n = n;tree = new int[n];}// 将index位置加上val值 arr[i] += val(注意传进来的index要+1)public void add(int index, int val){while(index < n){tree[index] += val;index += index & -index;}}// 查询[1, index]的前缀和(注意传进来的index要+1)public int query(int index) {int s = 0;while (index > 0) {s += tree[index];index -= index & -index; // n&(~n+1) == n&(-n)}return s;}// 返回[left, right]之间的区间和(注意传进来的index要+1)public int RangeSum(int left, int right){return query(right) - query(left-1);}
}

相关文章:

双周赛103(模拟、网格图BFS、树状数组)

文章目录 双周赛103[6406. K 个元素的最大和](https://leetcode.cn/problems/maximum-sum-with-exactly-k-elements/)模拟 [6405. 找到两个数组的前缀公共数组](https://leetcode.cn/problems/find-the-prefix-common-array-of-two-arrays/)模拟 [6403. 网格图中鱼的最大数目](…...

【数据结构】二叉树(详细)

二叉树 1.树1.1定义1.2基本术语1.3树形结构和线性结构1.4树的存储结构1.4.1双亲表示法1.4.2孩子兄弟表示法 2.二叉树2.1定义2.2特殊二叉树2.3性质2.4存储结构2.4.1顺序存储2.4.2链式存储结构 3.二叉树的基本操作3.1前序遍历&#xff08;先序遍历&#xff09;3.2中序遍历3.3后序…...

蓝牙耳机哪款性价比高一些?2023年性价比最高的蓝牙耳机推荐

随着科技的进步&#xff0c;蓝牙耳机已然成为我们生活中的一部分&#xff0c;无论是通勤、追剧、运动或者玩游戏&#xff0c;大都会用到蓝牙耳机。那么&#xff0c;哪款蓝牙耳机的性价比高一些&#xff1f;相信大多数人在选择产品的时候&#xff0c;都会看性价比。接下来&#…...

等保2.0存在的问题

等保制度和技术要求 国家信息安全等级保护制度(二级)相关要求包含技术要求和管理要求,技术要求包含:物理安全、网络安全、主机安全、应用安全及数据安全及备份恢复;管理要求包含:安全管理机构、安全管理制度、人员安全管理、系统建设管理、系统运维管理。 一、 技术要求 …...

国民技术N32G430开发笔记(9)- IAP升级 Bootloader的制作

IAP升级 Bootloader的制作 1、上节提到Flash的分区&#xff0c;0x8000000-0x8004000为Boot分区&#xff0c;我们的bootloader就烧录到此分区。 Bootloader很简单&#xff0c;新建一个普通的工程&#xff0c; 也不用初始化外部设备&#xff0c;开机后&#xff0c;直接跳转到 A…...

如何使用depcheck检查vue和react的依赖,以后不用把时间浪费在依赖问题上了

当我们在开发 JavaScript 项目时&#xff0c;会引入各种依赖库。但是有些依赖库可能只用到了部分功能&#xff0c;或者已经不再需要了&#xff0c;但是却一直被保留在项目中。 这些未使用的依赖库会占据项目的空间&#xff0c;增加项目的复杂度&#xff0c;影响项目的性能。为…...

使用Python和机器学习进行文本情感分类

使用Python和机器学习进行文本情感分类 1. 效果图2. 原理3. 源码参考这篇博客将介绍如何使用Python进行机器学习的文本情感分类(Text Emotions Classification)。 1. 效果图 训练文本及情感分类前5条数据如下: 训练过程及测试文本情感分类效果图如下: 可以看到 对文本“S…...

QML路径视图(The PathView)

路径视图&#xff08;PathView&#xff09;非常强大&#xff0c;但也非常复杂&#xff0c;这个视图由QtQuick提供。它创建了一个可以让子项沿着任意路径移动的视图。沿着相同的路径&#xff0c;使用缩放&#xff08;scale&#xff09;&#xff0c;透明&#xff08;opacity&…...

5月4号软件资讯更新合集.....

&#x1f680; Layui 2.8.2 发布 更新日志 table 修复 autoSort: true 时&#xff0c;更改 table.cache 未同步到 data 属性的问题 修复 多级表头存在 hide 表头属性时&#xff0c;执行完整重载可能出现的错位问题 修复 未开启 page 属性时底边框缺失问题 优化 打印内容中…...

基于 Rainbond 的混合云管理解决方案

内容概要&#xff1a;文章探讨了混合云场景中的难点、要点&#xff0c;以及Rainbond平台在跨云平台的混合云管理方面的解决方案。包括通过通过统一控制台对多集群中的容器进行编排和管理&#xff0c;实现了对混合云中应用的一致性管理。文章还介绍了Rainbond平台在混合云环境下…...

加强网络风险生命周期

当今业务环境中云原生应用程序的激增帮助组织简化了运营。 企业现在可以近乎实时地监控数据、与客户互动并分享见解&#xff0c;帮助他们克服曾经阻碍生产力的低效率问题。 然而&#xff0c;使用云也极大地扩展了企业可利用的攻击面。 CSPM、CWPP、CNAPP、SAST、SCA、IaC、D…...

Java——二叉树的深度

题目链接 牛客网在线oj题——二叉树的深度 题目描述 输入一棵二叉树&#xff0c;求该树的深度。从根结点到叶结点依次经过的结点&#xff08;含根、叶结点&#xff09;形成树的一条路径&#xff0c;最长路径的长度为树的深度&#xff0c;根节点的深度视为 1 。 数据范围&am…...

一般现在时(二)

一般现在时(二) 1.什么叫实义动词? 实义动词是指表示有具体意思的动词&#xff0c;也叫行为动词。 例如:like(喜欢) eat(吃) live(居住) have(有) run(跑)等等。 实义动词占英语中动词的绝大多数 &#x1f516;我们已学过的be动词可译为是,有时译为成为,有时则没有具体意…...

leetcode657. 机器人能否返回原点

题目描述解题思路执行结果 leetcode657. 机器人能否返回原点 题目描述 机器人能否返回原点 在二维平面上&#xff0c;有一个机器人从原点 (0, 0) 开始。给出它的移动顺序&#xff0c;判断这个机器人在完成移动后是否在 (0, 0) 处结束。 移动顺序由字符串 moves 表示。字符 mov…...

DAY 48 Nginx的 location与rewrite模块

[正则表达式] 常用的[Nginx] 正则表达式 $ &#xff1a;匹配输入字符串的结束位置* &#xff1a;匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” &#xff1a;匹配前面的字符一次或多次。如“ol”能匹配“ol”及“oll”、“olll”&#xff0c;但不能匹配“…...

Linux 常用操作技巧

Linux 操作技巧大全 Linux是一种强大的操作系统&#xff0c;掌握各种操作技巧可以帮助我们惬意地使用它。在这篇博客中&#xff0c;我们将分享一些实用的Linux技巧&#xff0c;希望能对您有所帮助&#xff01; 1. 使用Tab进行自动补全 在输入命令时&#xff0c;按下Tab键可…...

BetaFlight统一硬件配置文件研读之timer命令

BetaFlight统一硬件配置文件研读之timer命令 1. 源由2. 代码分析3. 实例分析4. 配置情况4.1 AFn配置查表4.2 timer4.3 timer show4.4 timer pin list 5. 参考资料 统一硬件配置文件的设计是一种非常好的设计模式&#xff0c;可以将硬件和软件的工作进行解耦。 1. 源由 cli命令…...

码出高效:Java开发手册笔记(java对象四种引用关系及ThreadLocal)

码出高效&#xff1a;Java开发手册笔记&#xff08;java对象四种引用关系及ThreadLocal&#xff09; 前言一、引用类型二、ThreadLocal价值三、ThreadLocal副作用 前言 “水能载舟&#xff0c;亦能覆舟。”用这句话来形容 ThreadLocal 最贴切不过。ThreadLocal 初衷是在线程并…...

为什么要进行数据决策?数据决策对企业而言有何重要意义?

“大数据”几乎已成为时下最时髦的词汇&#xff0c;不夸张地说&#xff0c;当今各行各业无不对大数据充满了向往&#xff0c;希望自己在新一轮的大数据营销中抢占先机。同时&#xff0c;从大数据中引申出的数据挖掘、数据分析、数据安全等数据运用技术也成为人们热捧的焦点。 …...

2. Java 异常体系

2.1 Throwable java.lang.Throwable 类是 Java 程序执行过程中发生的异常事件对应的类的根父类。 Throwable 中的常用方法&#xff1a; public void printStackTrace()&#xff1a;打印异常的详细信息。 包含了异常的类型、异常的原因、异常出现的位置、在开发和调试阶段都得…...

如何学好STM32,需要哪些步骤?

学习STM32应用于项目开发需要以下步骤&#xff1a; 学习STM32的基本知识&#xff1a;包括STM32的架构、寄存器、外设等&#xff0c;理解STM32的工作原理和基本操作方法。 学习嵌入式系统和RTOS的基础知识&#xff1a;了解嵌入式系统的概念、RTOS的基本原理和使用方法&#xff…...

武忠祥老师每日一题||不定积分基础训练(四)

∫ d x 1 x 3 \int \frac{\rm dx}{1x^3} ∫1x3dx​ 解法一&#xff1a; 待定系数法&#xff1a; ∫ d x 1 x 3 \int \frac{dx}{1x^3} ∫1x3dx​ ∫ d x ( 1 x ) ( x 2 − x 1 ) \int \frac{dx}{(1x)(x^2-x1)} ∫(1x)(x2−x1)dx​ 1 3 ∫ ( 1 x 1 − x 2 x 2 − x …...

记一次产线打印json导致的redis连接超时

服务在中午十一点上线后&#xff0c;服务每分钟发出三到四次redis连接超时告警。错误信息为&#xff1a; Dial err:dial tcp: lookup xxxxx: i/o timeout 排查过程 先是检查redis机器的情况&#xff0c;redis写入并发数较大&#xff0c;缓存中保留了一小时大概400w条数据。red…...

FPGA入门系列12--RAM的使用

文章简介 本系列文章主要针对FPGA初学者编写&#xff0c;包括FPGA的模块书写、基础语法、状态机、RAM、UART、SPI、VGA、以及功能验证等。将每一个知识点作为一个章节进行讲解&#xff0c;旨在更快速的提升初学者在FPGA开发方面的能力&#xff0c;每一个章节中都有针对性的代码…...

【三十天精通Vue 3】第二十六天 Vue3 与 TypeScript 最佳实践

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: 三十天精通 Vue 3 文章目录 引言一、为什么使用TypeScript&#xff1f;二、Vue 3和TypeScript…...

ffmpeg-mov-metadate不识别Bug修复

文章目录 BUG起因类似问题反馈问题解决具体步骤&#xff1a; 阅读过文章ffmpeg命令行解析调试流程记录movenc.c源码分析 BUG起因 在ffmpeg参数默认可识别的metadata参数如下&#xff1a; 具体可见libavformat/movenc.c->mov_write_udta_tag() mov_write_string_metadata(s,…...

(8)(8.6) 引导程序更新

文章目录 前言 1 我在哪里可以下载最新的引导程序? 2 使用任务规划器进行升级...

汽车电路图、原理框图、线束图、元器件布置图的识读技巧与要点

摘要&#xff1a; 想要读懂汽车电路图就必须把电的通路理清楚&#xff0c;即某条线是什么信号&#xff0c;该信号是输入信号、输出信号还是控制信号以及信号起什么作用&#xff0c;在什么条件下有信号&#xff0c;从哪里来&#xff0c;到哪里去。 一、汽车电路图的识读技巧 1.…...

( 数组和矩阵) 667. 优美的排列 II ——【Leetcode每日一题】

❓667. 优美的排列 II 难度&#xff1a;中等 给你两个整数 n 和 k &#xff0c;请你构造一个答案列表 answer &#xff0c;该列表应当包含从 1 到 n 的 n 个不同正整数&#xff0c;并同时满足下述条件&#xff1a; 假设该列表是 answer [a1, a2, a3, ... , an] &#xff0…...

【python基础语法七】python内置函数和内置模块

内置全局函数 abs 绝对值函数 print(abs(-1)) # 1 print(abs(100)) # 100round 四舍五入 """奇进偶不进(n.5的情况特定发生)""" res round(3.87) # 4 res round(4.51) # 5 # res round(2.5) # 2 # res round(3.5) # 4 res round(6.5) # …...

企业网站无线端怎么做/南京seo公司排名

一、整体大纲 二、 系统IO函数 1. 一些概念 文件描述符 PCB C库函的IO缓冲区 1&#xff09; 文件描述符 int 类型 一个进程最多可打开多少文件 2&#xff09; pcb 进程控制块 在其中有一个文件描述符表 -- 数组[1024…...

可以做动画的网站都有哪些/百度账号管理

精彩网址大全——生活资讯&文体娱乐卷 中国铁道出版社 随着网络的普及&#xff0c;网络上的信息以空前的速度膨胀&#xff0c;网络也从信息集散地变成的信息垃圾场。从前在网络上寻找信息时&#xff0c;可能找不到所需要的信息&#xff0c;要想找到所需要的有用信息就变得…...

wordpress编辑器没有16px/网络营销的平台有哪些

一、导读 本文主要内容包括数组转换成List&#xff0c;List转成数组&#xff0c;List转成map的几种方式。 好文章 记得 收藏点赞关注 &#xff01;&#xff01;&#xff01; 二、代码 /*** 练习数组转list&#xff0c;list转数组&#xff0c;list转map** author JiaMing* sin…...

杭州网站设计开发/app下载量推广

2019独角兽企业重金招聘Python工程师标准>>> https://github.com/javahongxi 本文转载自kaitao.toutiao.im 4.1 ServletContext接口介绍 ServletContext&#xff08;Servlet上下文&#xff09;接口定义了servlet运行在的Web应用的视图。容器供应商负责提供Servlet容…...

怎样建设美丽中国?/重庆网站快速排名优化

北京时间6月1日凌晨消息&#xff0c;据路透社报道&#xff0c;针对2013年戴尔创始人迈克尔戴尔&#xff08;Michael Dell&#xff09;和银湖资本&#xff08;Silver Lake Partners&#xff09;以249亿美元收购戴尔公司这一交易&#xff0c;特拉华州一法官周二裁定&#xff0c;该…...

电子政务网站建设/指数网站

最近开始学习LDPC&#xff0c;还是刚接触有点生疏&#xff0c;现在主要在看LDPC译码网上有好多LDPC的译码例程&#xff0c;matlab的。我看了大部分都是一个译码函数&#xff0c;有点看不懂。求大家指教问题一&#xff1a;参数f0,f1含义问题二&#xff1a;这个使用的是什么译码方…...