【题解】—— LeetCode一周小结32
🌟欢迎来到 我的博客 —— 探索技术的无限可能!
🌟博客的简介(文章目录)
【题解】—— 每日一道题目栏
上接:【题解】—— LeetCode一周小结31
5.不含连续1的非负整数
题目链接:600. 不含连续1的非负整数
给定一个正整数 n ,请你统计在 [0, n] 范围的非负整数中,有多少个整数的二进制表示中不存在 连续的 1 。
示例 1:
输入: n = 5
输出: 5
解释:
下面列出范围在 [0, 5] 的非负整数与其对应的二进制表示:
0 : 0
1 : 1
2 : 10
3 : 11
4 : 100
5 : 101
其中,只有整数 3 违反规则(有两个连续的 1 ),其他 5 个满足规则。
示例 2:
输入: n = 1
输出: 2
示例 3:
输入: n = 2
输出: 3
提示:
1 <= n <= 109
题解:
方法:数位 DP
class Solution {public int findIntegers(int n) {int m = Integer.SIZE - Integer.numberOfLeadingZeros(n);int[][] memo = new int[m][2];for (int[] row : memo) {Arrays.fill(row, -1); // -1 表示没有计算过}return dfs(m - 1, 0, true, n, memo); // 从高位到低位}// pre 表示前一个比特位填的数private int dfs(int i, int pre, boolean isLimit, int n, int[][] memo) {if (i < 0) {return 1;}if (!isLimit && memo[i][pre] >= 0) { // 之前计算过return memo[i][pre];}int up = isLimit ? n >> i & 1 : 1;int res = dfs(i - 1, 0, isLimit && up == 0, n, memo); // 填 0if (pre == 0 && up == 1) { // 可以填 1res += dfs(i - 1, 1, isLimit, n, memo); // 填 1}if (!isLimit) {memo[i][pre] = res; // 记忆化}return res;}
}
6.找出所有稳定的二进制数组 I
题目链接:3129. 找出所有稳定的二进制数组 I
给你 3 个正整数 zero ,one 和 limit 。
一个
二进制数组
arr 如果满足以下条件,那么我们称它是 稳定的 :
0 在 arr 中出现次数 恰好 为 zero 。
1 在 arr 中出现次数 恰好 为 one 。
arr 中每个长度超过 limit 的
子数组
都 同时 包含 0 和 1 。
请你返回 稳定 二进制数组的 总 数目。
由于答案可能很大,将它对 109 + 7 取余 后返回。
示例 1:
输入:zero = 1, one = 1, limit = 2
输出:2
解释:
两个稳定的二进制数组为 [1,0] 和 [0,1] ,两个数组都有一个 0 和一个 1 ,且没有子数组长度大于 2 。
示例 2:
输入:zero = 1, one = 2, limit = 1
输出:1
解释:
唯一稳定的二进制数组是 [1,0,1] 。
二进制数组 [1,1,0] 和 [0,1,1] 都有长度为 2 且元素全都相同的子数组,所以它们不稳定。
示例 3:
输入:zero = 3, one = 3, limit = 2
输出:14
解释:
所有稳定的二进制数组包括 [0,0,1,0,1,1] ,[0,0,1,1,0,1] ,[0,1,0,0,1,1]
,[0,1,0,1,0,1] ,[0,1,0,1,1,0] ,[0,1,1,0,0,1] ,[0,1,1,0,1,0]
,[1,0,0,1,0,1] ,[1,0,0,1,1,0] ,[1,0,1,0,0,1] ,[1,0,1,0,1,0]
,[1,0,1,1,0,0] ,[1,1,0,0,1,0] 和 [1,1,0,1,0,0] 。
提示:
1 <= zero, one, limit <= 200
题解:
方法:动态规划
class Solution {public int numberOfStableArrays(int zero, int one, int limit) {final int mod = (int) 1e9 + 7;long[][][] f = new long[zero + 1][one + 1][2];for (int i = 1; i <= Math.min(zero, limit); ++i) {f[i][0][0] = 1;}for (int j = 1; j <= Math.min(one, limit); ++j) {f[0][j][1] = 1;}for (int i = 1; i <= zero; ++i) {for (int j = 1; j <= one; ++j) {long x = i - limit - 1 < 0 ? 0 : f[i - limit - 1][j][1];long y = j - limit - 1 < 0 ? 0 : f[i][j - limit - 1][0];f[i][j][0] = (f[i - 1][j][0] + f[i - 1][j][1] - x + mod) % mod;f[i][j][1] = (f[i][j - 1][0] + f[i][j - 1][1] - y + mod) % mod;}}return (int) ((f[zero][one][0] + f[zero][one][1]) % mod);}
}
7.找出所有稳定的二进制数组 II
题目链接:3130. 找出所有稳定的二进制数组 II
给你 3 个正整数 zero ,one 和 limit 。
一个
二进制数组
arr 如果满足以下条件,那么我们称它是 稳定的 :
0 在 arr 中出现次数 恰好 为 zero 。
1 在 arr 中出现次数 恰好 为 one 。
arr 中每个长度超过 limit 的
子数组
都 同时 包含 0 和 1 。
请你返回 稳定 二进制数组的 总 数目。
由于答案可能很大,将它对 109 + 7 取余 后返回。
示例 1:
输入:zero = 1, one = 1, limit = 2
输出:2
解释:
两个稳定的二进制数组为 [1,0] 和 [0,1] ,两个数组都有一个 0 和一个 1 ,且没有子数组长度大于 2 。
示例 2:
输入:zero = 1, one = 2, limit = 1
输出:1
解释:
唯一稳定的二进制数组是 [1,0,1] 。
二进制数组 [1,1,0] 和 [0,1,1] 都有长度为 2 且元素全都相同的子数组,所以它们不稳定。
示例 3:
输入:zero = 3, one = 3, limit = 2
输出:14
解释:
所有稳定的二进制数组包括 [0,0,1,0,1,1] ,[0,0,1,1,0,1] ,[0,1,0,0,1,1]
,[0,1,0,1,0,1] ,[0,1,0,1,1,0] ,[0,1,1,0,0,1] ,[0,1,1,0,1,0]
,[1,0,0,1,0,1] ,[1,0,0,1,1,0] ,[1,0,1,0,0,1] ,[1,0,1,0,1,0]
,[1,0,1,1,0,0] ,[1,1,0,0,1,0] 和 [1,1,0,1,0,0] 。
提示:
1 <= zero, one, limit <= 1000
题解:
方法:递推
class Solution {public int numberOfStableArrays(int zero, int one, int limit) {final int MOD = 1_000_000_007;int[][][] f = new int[zero + 1][one + 1][2];for (int i = 1; i <= Math.min(limit, zero); i++) {f[i][0][0] = 1;}for (int j = 1; j <= Math.min(limit, one); j++) {f[0][j][1] = 1;}for (int i = 1; i <= zero; i++) {for (int j = 1; j <= one; j++) {// + MOD 保证答案非负f[i][j][0] = (int) (((long) f[i - 1][j][0] + f[i - 1][j][1] + (i > limit ? MOD - f[i - limit - 1][j][1] : 0)) % MOD);f[i][j][1] = (int) (((long) f[i][j - 1][0] + f[i][j - 1][1] + (j > limit ? MOD - f[i][j - limit - 1][0] : 0)) % MOD);}}return (f[zero][one][0] + f[zero][one][1]) % MOD;}
}
8.找出与数组相加的整数 I
题目链接:3131. 找出与数组相加的整数 I
给你两个长度相等的数组 nums1 和 nums2。
数组 nums1 中的每个元素都与变量 x 所表示的整数相加。如果 x 为负数,则表现为元素值的减少。
在与 x 相加后,nums1 和 nums2 相等 。当两个数组中包含相同的整数,并且这些整数出现的频次相同时,两个数组 相等 。
返回整数 x 。
示例 1:
输入:nums1 = [2,6,4], nums2 = [9,7,5]
输出:3
解释:
与 3 相加后,nums1 和 nums2 相等。
示例 2:
输入:nums1 = [10], nums2 = [5]
输出:-5
解释:
与 -5 相加后,nums1 和 nums2 相等。
示例 3:
输入:nums1 = [1,1,1,1], nums2 = [1,1,1,1]
输出:0
解释:
与 0 相加后,nums1 和 nums2 相等。
提示:
1 <= nums1.length == nums2.length <= 100
0 <= nums1[i], nums2[i] <= 1000
测试用例以这样的方式生成:存在一个整数 x,使得 nums1 中的每个元素都与 x 相加后,nums1 与 nums2 相等。
题解:
方法:数学
class Solution {public int addedInteger(int[] nums1, int[] nums2) {return min(nums2) - min(nums1);}private int min(int[] nums) {int res = Integer.MAX_VALUE;for (int x : nums) {res = Math.min(res, x);}return res;}
}
9.找出与数组相加的整数 II
题目链接:3132. 找出与数组相加的整数 II
给你两个整数数组 nums1 和 nums2。
从 nums1 中移除两个元素,并且所有其他元素都与变量 x 所表示的整数相加。如果 x 为负数,则表现为元素值的减少。
执行上述操作后,nums1 和 nums2 相等 。当两个数组中包含相同的整数,并且这些整数出现的频次相同时,两个数组 相等 。
返回能够实现数组相等的 最小 整数 x 。
示例 1:
输入:nums1 = [4,20,16,12,8], nums2 = [14,18,10]
输出:-2
解释:
移除 nums1 中下标为 [0,4] 的两个元素,并且每个元素与 -2 相加后,nums1 变为 [18,14,10] ,与 nums2
相等。
示例 2:
输入:nums1 = [3,5,5,3], nums2 = [7,7]
输出:2
解释:
移除 nums1 中下标为 [0,3] 的两个元素,并且每个元素与 2 相加后,nums1 变为 [7,7] ,与 nums2 相等。
提示:
3 <= nums1.length <= 200
nums2.length == nums1.length - 2
0 <= nums1[i], nums2[i] <= 1000
测试用例以这样的方式生成:存在一个整数 x,nums1 中的每个元素都与 x 相加后,再移除两个元素,nums1 可以与 nums2 相等。
题解:
方法:O(nlogn) 排序+判断子序列
class Solution {public int minimumAddedInteger(int[] nums1, int[] nums2) {Arrays.sort(nums1);Arrays.sort(nums2);// 枚举保留 nums1[2] 或者 nums1[1] 或者 nums1[0]// 倒着枚举是因为 nums1[i] 越大答案越小,第一个满足的就是答案for (int i = 2; i > 0; i--) {int x = nums2[0] - nums1[i];// 在 {nums1[i] + x} 中找子序列 nums2int j = 0;for (int k = i; k < nums1.length; k++) {if (nums2[j] == nums1[k] + x && ++j == nums2.length) {// nums2 是 {nums1[i] + x} 的子序列return x;}}}// 题目保证答案一定存在return nums2[0] - nums1[0];}
}
10.找到 Alice 和 Bob 可以相遇的建筑
题目链接:2940. 找到 Alice 和 Bob 可以相遇的建筑
给你一个下标从 0 开始的正整数数组 heights ,其中 heights[i] 表示第 i 栋建筑的高度。
如果一个人在建筑 i ,且存在 i < j 的建筑 j 满足 heights[i] < heights[j] ,那么这个人可以移动到建筑 j 。
给你另外一个数组 queries ,其中 queries[i] = [ai, bi] 。第 i 个查询中,Alice 在建筑 ai ,Bob 在建筑 bi 。
请你能返回一个数组 ans ,其中 ans[i] 是第 i 个查询中,Alice 和 Bob 可以相遇的 最左边的建筑 。如果对于查询 i ,Alice 和 Bob 不能相遇,令 ans[i] 为 -1 。
示例 1:
输入:heights = [6,4,8,5,2,7], queries = [[0,1],[0,3],[2,4],[3,4],[2,2]]
输出:[2,5,-1,5,2]
解释:第一个查询中,Alice 和 Bob 可以移动到建筑 2 ,因为 heights[0] < heights[2] 且
heights[1] < heights[2] 。第二个查询中,Alice 和 Bob 可以移动到建筑 5 ,因为 heights[0] < heights[5] 且 heights[3]
< heights[5] 。第三个查询中,Alice 无法与 Bob 相遇,因为 Alice 不能移动到任何其他建筑。
第四个查询中,Alice 和 Bob 可以移动到建筑 5 ,因为 heights[3] < heights[5] 且 heights[4]
< heights[5] 。第五个查询中,Alice 和 Bob 已经在同一栋建筑中。
对于 ans[i] != -1 ,ans[i] 是 Alice 和 Bob 可以相遇的建筑中最左边建筑的下标。
对于 ans[i] == -1 ,不存在 Alice 和 Bob 可以相遇的建筑。
示例 2:
输入:heights = [5,3,8,2,6,1,4,6], queries =
[[0,7],[3,5],[5,2],[3,0],[1,6]]输出:[7,6,-1,4,6]
解释:第一个查询中,Alice 可以直接移动到 Bob 的建筑,因为 heights[0] < heights[7] 。
第二个查询中,Alice 和 Bob 可以移动到建筑 6 ,因为 heights[3] < heights[6] 且 heights[5]
< heights[6] 。第三个查询中,Alice 无法与 Bob 相遇,因为 Bob 不能移动到任何其他建筑。
第四个查询中,Alice 和 Bob 可以移动到建筑 4 ,因为 heights[3] < heights[4] 且 heights[0]
< heights[4] 。第五个查询中,Alice 可以直接移动到 Bob 的建筑,因为 heights[1] < heights[6] 。
对于 ans[i] != -1 ,ans[i] 是 Alice 和 Bob 可以相遇的建筑中最左边建筑的下标。
对于 ans[i] == -1 ,不存在 Alice 和 Bob 可以相遇的建筑。
提示:
1 <= heights.length <= 5 * 104
1 <= heights[i] <= 109
1 <= queries.length <= 5 * 104
queries[i] = [ai, bi]
0 <= ai, bi <= heights.length - 1
题解:
方法1:离线+最小堆
class Solution {public int[] leftmostBuildingQueries(int[] heights, int[][] queries) {int[] ans = new int[queries.length];Arrays.fill(ans, -1);List<int[]>[] qs = new ArrayList[heights.length];Arrays.setAll(qs, i -> new ArrayList<>());for (int i = 0; i < queries.length; i++) {int a = queries[i][0];int b = queries[i][1];if (a > b) {int tmp = a;a = b;b = tmp; // 保证 a <= b}if (a == b || heights[a] < heights[b]) {ans[i] = b; // a 直接跳到 b} else {qs[b].add(new int[]{heights[a], i}); // 离线询问}}PriorityQueue<int[]> pq = new PriorityQueue<>((a, b) -> a[0] - b[0]);for (int i = 0; i < heights.length; i++) {while (!pq.isEmpty() && pq.peek()[0] < heights[i]) {// 堆顶的 heights[a] 可以跳到 heights[i]ans[pq.poll()[1]] = i;}for (int[] q : qs[i]) {pq.offer(q); // 后面再回答}}return ans;}
}
方法2:离线+单调栈二分
class Solution {public int[] leftmostBuildingQueries(int[] heights, int[][] queries) {int n = heights.length;int[] ans = new int[queries.length];List<int[]>[] qs = new ArrayList[n];Arrays.setAll(qs, i -> new ArrayList<>());for (int i = 0; i < queries.length; i++) {int a = queries[i][0];int b = queries[i][1];if (a > b) {int tmp = a;a = b;b = tmp; // 保证 a <= b}if (a == b || heights[a] < heights[b]) {ans[i] = b; // a 直接跳到 b} else {qs[b].add(new int[]{heights[a], i}); // 离线询问}}int[] st = new int[n];int top = 0;for (int i = n - 1; i >= 0; i--) {for (int[] q : qs[i]) {ans[q[1]] = binarySearch(heights, st, top, q[0]);}while (top > 0 && heights[i] >= heights[st[top - 1]]) {top--;}st[top++] = i;}return ans;}// 返回 st 中最后一个 > x 的高度的下标// 如果不存在,返回 -1// https://www.bilibili.com/video/BV1AP41137w7/private int binarySearch(int[] heights, int[] st, int right, int x) {int left = -1; // 开区间 (left, right)while (left + 1 < right) { // 开区间不为空int mid = (left + right) >>> 1;if (heights[st[mid]] > x) {left = mid; // 范围缩小到 (mid, right)} else {right = mid; // 范围缩小到 (left, mid)}}return left < 0 ? -1 : st[left];}
}
方法3:在线+线段树二分
class Solution {public int[] leftmostBuildingQueries(int[] heights, int[][] queries) {int n = heights.length;mx = new int[2 << (Integer.SIZE - Integer.numberOfLeadingZeros(n))];build(1, 0, n - 1, heights);int[] ans = new int[queries.length];for (int i = 0; i < queries.length; i++) {int a = queries[i][0];int b = queries[i][1];if (a > b) {int tmp = a;a = b;b = tmp; // 保证 a <= b}if (a == b || heights[a] < heights[b]) {ans[i] = b; // a 直接跳到 b} else {// 线段树二分,找 [b+1,n-1] 中的第一个 > heights[a] 的位置ans[i] = query(1, 0, n - 1, b + 1, heights[a]);}}return ans;}private int[] mx;// 用 heights 初始化线段树,维护区间最大值private void build(int o, int l, int r, int[] heights) {if (l == r) {mx[o] = heights[l];return;}int m = (l + r) / 2;build(o * 2, l, m, heights);build(o * 2 + 1, m + 1, r, heights);mx[o] = Math.max(mx[o * 2], mx[o * 2 + 1]);}// 返回 [L,n-1] 中第一个 > v 的值的下标// 如果不存在,返回 -1private int query(int o, int l, int r, int L, int v) {if (mx[o] <= v) { // 区间最大值 <= vreturn -1; // 没有 > v 的数}if (l == r) { // 找到了return l;}int m = (l + r) / 2;if (L <= m) {int pos = query(o * 2, l, m, L, v); // 递归左子树if (pos >= 0) { // 找到了return pos;}}return query(o * 2 + 1, m + 1, r, L, v); // 递归右子树}
}
11.不相交的线
题目链接:1035. 不相交的线
在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。
现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足:
nums1[i] == nums2[j]
且绘制的直线不与任何其他连线(非水平线)相交。
请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。
以这种方法绘制线条,并返回可以绘制的最大连线数。
示例 1:
输入:nums1 = [1,4,2], nums2 = [1,2,4]
输出:2
解释:可以画出两条不交叉的线,如上图所示。
但无法画出第三条不相交的直线,因为从 nums1[1]=4 到 nums2[2]=4 的直线将与从 nums1[2]=2 到
nums2[1]=2 的直线相交。
示例 2:
输入:nums1 = [2,5,1,2,5], nums2 = [10,5,2,1,5,2]
输出:3
示例 3:
输入:nums1 = [1,3,7,1,7,5], nums2 = [1,9,2,5,1]
输出:2
提示:
1 <= nums1.length, nums2.length <= 500
1 <= nums1[i], nums2[j] <= 2000
题解:
方法:动态规划
class Solution {public int maxUncrossedLines(int[] nums1, int[] nums2) {int m = nums1.length, n = nums2.length;int[][] f = new int[m + 1][n + 1];for (int i = 1; i <= m; ++i) {for (int j = 1; j <= n; ++j) {if (nums1[i - 1] == nums2[j - 1]) {f[i][j] = f[i - 1][j - 1] + 1;} else {f[i][j] = Math.max(f[i - 1][j], f[i][j - 1]);}}}return f[m][n];}
}
下接:【题解】—— LeetCode一周小结33
相关文章:
![](https://i-blog.csdnimg.cn/direct/06a56f672d92401c96bfe04a638a23eb.png)
【题解】—— LeetCode一周小结32
🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 【题解】—— 每日一道题目栏 上接:【题解】—— LeetCode一周小结31 5.不含连续1的非负整数 题目链接:600. 不含连续…...
![](https://img-blog.csdnimg.cn/img_convert/c3bd1ab9f5227f39c655193d2076ec90.jpeg)
详解线索分层的目的、维度与创新实践
线索分层是一个系统性的过程,旨在更有效地管理、跟踪和利用线索资源。这一过程可以借鉴多种策略和方法,特别是在用户运营和市场营销中。 1、线索分层的目的 线索分层的主要目的是根据线索的不同特征或成熟度,将其分类管理,以便更…...
![](https://www.ngui.cc/images/no-images.jpg)
于8月21号的回顾
傍晚的日落和逐渐深邃的夜,驱散了白天的极致闷热。倦怠和疲惫充斥着大脑,喧嚣的浮沉又在耳边轰鸣。 我不曾想到,再次打开博客已经是两年后的今天了。手指轻轻滑过鼠标,博客的页面缓缓加载,那些被时间尘封的记忆瞬间涌…...
![](https://www.ngui.cc/images/no-images.jpg)
Abstract Class抽象类
抽象类(Abstract Class)在面向对象编程中是一种特殊的类,它不能被实例化,即不能创建该类的对象。抽象类主要用于定义一组接口(即方法),这些方法的具体实现由子类来完成。抽象类通常用于表示一种…...
![](https://i-blog.csdnimg.cn/direct/8f769457fe5a4072825a9a2ae835ef9f.png)
webrtc ns 降噪之粉红噪声参数推导
webrtc中降噪中,前50帧需要进行简单噪声估计,使用白噪声和粉红噪声模型估算。 首先我们 复习 有色噪声(包含白噪声)的一般模型: S(f) 是频率 f 处的功率谱密度。f是频率。α 是一个频谱指数,通常在1左右。…...
![](https://i-blog.csdnimg.cn/direct/e553a19dfa1f408fa63055cb632cad4d.png)
IO进程线程8月21日
1,思维导图 2,登录 #ifndef __LOG_H__ #define __LOG_H__ #include<myhead.h> typedef struct {char name[20];char pwd[20]; }str;int regist();int login(); #endif#include"log.h" int login() {char a[20]"\n";str p,s;…...
![](https://i-blog.csdnimg.cn/direct/9fc2f7645ba14733be8c5be738811b77.png)
Web安全:SqlMap工具
一、简介 sqlmap 是一款开源的渗透测试工具,可以自动化进行SQL注入的检测、利用,并能接管数据库服务器。它具有功能强大的检测引擎,为渗透测试人员提供了许多专业的功能并且可以进行组合,其中包括数据库指纹识别、数据读取和访问底层文件系统…...
![](https://img-blog.csdnimg.cn/ac2a6fa1a01045b3b9f0ba9c5882aab6.jpg)
用手机写一本电子书
第1步、进入Andi.cn网站 第2步、点击登录,注册用户 第3步、点击去创作,进入创作页面 第4步、点击右下角的小笔,写一篇文章 第5步、下翻,点击提交按钮 第6步、再写一篇文章 第7步、点击栏目设计 第8步、进入栏目设计,点…...
![](https://i-blog.csdnimg.cn/direct/98a753045eab4db69206f41285920a21.png)
【网络编程】基于UDP的TFTP文件传输
1)tftp协议概述 简单文件传输协议,适用于在网络上进行文件传输的一套标准协议,使用UDP传输 特点: 是应用层协议 基于UDP协议实现 数据传输模式 octet:二进制模式(常用) mail:已经不再…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue 3 + Pinia 实现网页刷新功能
概述 在现代 Web 开发中,保持用户界面的动态性和响应性至关重要。当用户触发某些操作时,例如点击按钮或者完成表单提交,我们往往需要刷新页面的一部分来展示最新的数据。本文将介绍如何使用 Vue 3 和 Pinia 来实现这一功能。 技术栈 Vue 3…...
![](https://img-blog.csdnimg.cn/img_convert/d262c105b950158f2e92faf36da52a2d.png)
DVWA综合靶场漏洞讲解
目录 综合靶场漏洞讲解 Brute Force Low Medium High Command Injection Low Medium High File Inclusion Low,Medium,High File Upload Low Medium High SQL Injection Low Medium High SQL Injection (Blind) Low Medium High XSS(DOM&am…...
![](https://i-blog.csdnimg.cn/direct/ebfd03f4e34347acb813eb1b90ebc499.png)
实现Bezier样条曲线
1.给出n1 个控制点pk(xk,yk,zk),这里k可取值0-n,多项式函数公式如下 获取的单个点的代码 void zmBezier::getPoint(float u, double p[3]) {int n m_count - 1;double x 0, y 0, z 0;for(int k 0; k < n; k){x m_ctrlPoints[k][0] * BEZ_k_n(n, k, u);y m_ctrlPoin…...
![](https://i-blog.csdnimg.cn/direct/adde2c0985bd490b98df0252d5193e99.png)
MySQL中的EXPLAIN的详解
一、介绍 官网介绍: https://dev.mysql.com/doc/refman/5.7/en/explain-output.htmlhttps://dev.mysql.com/doc/refman/8.0/en/explain-output.htmlexplain(执行计划),使用explain关键字可以模拟优化器执行sql查询语句ÿ…...
![](https://i-blog.csdnimg.cn/direct/b67e47773e9d49f0bc7b8880fb6d7d5b.png)
LearnOpenGL——SSAO学习笔记
LearnOpenGL——SSAO学习笔记 SSAO一、基本概念二、样本缓冲三、法向半球四、随机核心转动五、SSAO着色器六、环境遮蔽模糊七、应用SSAO遮蔽因子 SSAO 一、基本概念 环境光照是我们加入场景总体光照中的一个固定光照常量,它被用来模拟光的散射(Scattering)。散射应…...
![](https://i-blog.csdnimg.cn/direct/fc4697f8861348ac8820fbf6d9cb10b0.png)
[C语言]-基础知识点梳理-文件管理
前言 各位师傅们好,我是qmx_07,今天给大家讲解文件管理的相关知识,也就是常见的 读取,删除一类的操作 文件 为什么要使用文件? 程序的数据是存储在电脑的内存中,如果程序退出,内存回收&…...
![](https://img-blog.csdnimg.cn/img_convert/5c2a043a555365e66f866b256645ec99.jpeg)
pcdn闲置带宽被动收入必看教程。第五讲:光猫更换和基础设置
PCDN闲置带宽被动收入必看教程 —— 第五讲:光猫更换和基础设置 为了从闲置带宽中获得被动收入,高效的网络设备至关重要。运营商提供的光猫通常能满足日常家用需求,但对于PCDN应用来说,它们可能不足以提供所需的高性能和稳定性。…...
![](https://img-blog.csdnimg.cn/img_convert/6b6093a5d8f8cab4144c01dc2f5dddf8.jpeg)
工业数据采集网关简介-天拓四方
随着工业4.0和物联网(IoT)技术的深入发展,工业数据采集网关作为连接现场设备与上层管理系统的关键节点,其在智能工厂中的作用愈发凸显。本文将深入探讨工业数据采集网关的功能、特点、应用场景及其实操性,以期为读者提…...
![](https://i-blog.csdnimg.cn/direct/d3ce2ee597fe4aff8e2cf0ea6cfc99bd.png)
Java 调整字符串,验证码生成
package text7;public class ZiFanz {public static void main(String[] args) {//1.定义两个字符串String strA "abcde";String strB "deabc";//2.abcde->bcdea->cdeab->deabc旋转字符串//旋转并比较boolean result cheak(strA, strB);System…...
![](https://i-blog.csdnimg.cn/direct/b5c7a4f13e4642a8822f93d7066c0c36.png)
【专题】全球商用服务机器人市场研究(2023)报告合集PDF分享(附原数据表)
原文链接:https://tecdat.cn/?p37366 近年来,随着人工智能、物联网和自动化技术的不断进步,商用服务机器人行业迅速崛起,展现出广阔的发展前景。从最初的实验室研发到如今的规模化应用,商用服务机器人已逐渐成为各行…...
![](https://i-blog.csdnimg.cn/direct/fdabec0c6c514d4aa64d6025032e3065.png)
SQL UA注入 (injection 第十八关)
简介 SQL注入(SQL Injection)是一种常见的网络攻击方式,通过向SQL查询中插入恶意的SQL代码,攻击者可以操控数据库,SQL注入是一种代码注入攻击,其中攻击者将恶意的SQL代码插入到应用程序的输入字段中&a…...
![](https://i-blog.csdnimg.cn/direct/06061195f5034a27a72e2d4309a0ebeb.png)
初阶数据结构之计数排序
非比较排序 计数排序 计数排序⼜称为鸽巢原理,是对哈希直接定址法的变形应⽤。 操作步骤: 1)统计相同元素出现次数 2)根据统计的结果将序列回收到原来的序列中 #include "CountSort.h" void Count(int* arr, int n)…...
![](https://i-blog.csdnimg.cn/direct/009c8d2cbed34971a2041dc72b5fffda.png)
【开端】记一次诡异的接口排查过程
一、绪论 最近碰到这么一个情况,接口请求超时。前提是两台服务器间的网络是畅通的,端口也是通,应用代码也是通。意思是在应用上,接口没有任何报错,能正常返回数据。客户端到服务端接口也能通,但是接收不到服…...
![](https://i-blog.csdnimg.cn/direct/488c3f8095b243288378632a4c889580.png)
jenkins最佳实践(二):Pipeline流水线部署springCloud微服务项目
各位小伙伴们大家好呀,我是小金,本篇文章我们将介绍如何使用Pipeline流水线部署我们自己的微服务项目,之前没怎么搞过部署相关的,以至于构建流水线的过程中中也遇到了很多自己以前没有考虑过的问题,特写此篇࿰…...
![](https://i-blog.csdnimg.cn/direct/433615690d4e43978b41541e771843ab.png#pic_center)
第2章 C语言基础知识
第2章 C语言基础知识 1.printf()函数 在控制台输出数据,需要使用输出函数,C语言常用的输出函数为printf()。 printf()函数为格式化输出函数,其功能是按照用户指定的格式将数据输出到屏幕上。 printf(“格式控制字符串”,[输出列表]); 格式控…...
![](https://i-blog.csdnimg.cn/direct/aa8cfe909b314e2cb1b966869d30bfb2.jpeg#pic_center)
鹭鹰优化算法SBOA优化RBF神经网络的扩散速度实现多数入多输出数据预测,可以更改数据集(MATLAB代码)
一、鹭鹰优化算法介绍 鹭鹰优化算法(Secretary Bird Optimization Algorithm, SBOA)是一种新型的元启发式算法,它于2024年4月由Youfa Fu等人提出,并发表在SCI人工智能二区顶刊《Artificial Intelligence Review》上。该算法的灵感…...
![](https://i-blog.csdnimg.cn/direct/61befcba12bd45b58dc2c08e433751fe.png)
MySQL基础练习题48-连续出现的数字
目录 题目 准备数据 分析数据 题目 找出所有至少连续出现三次的数字。 准备数据 ## 创建库 create database db; use db;## 创建表 Create table If Not Exists Logs (id int, num int)## 向表中插入数据 Truncate table Logs insert into Logs (id, num) values (1, 1) i…...
![](https://i-blog.csdnimg.cn/direct/9418d289348447f6a4532fd6c74bc6d8.png)
webrtc学习笔记2
音视频采集和播放 打开摄像头并将画面显示到页面 1. 初始化button、video控件 2. 绑定“打开摄像头”响应事件onOpenCamera 3. 如果要打开摄像头则点击 “打开摄像头”按钮,以触发onOpenCamera事件的调用 4. 当触发onOpenCamera调用时 a. 设置约束条件,…...
![](https://i-blog.csdnimg.cn/direct/78488bc8a8d64c3e8c2b14f3ec6cec17.jpeg#pic_center)
Simple RPC - 06 从零开始设计一个服务端(上)_注册中心的实现
文章目录 Pre核心内容服务端结构概述注册中心的实现1. 注册中心的架构2. 面向接口编程的设计3. 注册中心的接口设计4. SPI机制的应用 小结 Pre Simple RPC - 01 框架原理及总体架构初探 Simple RPC - 02 通用高性能序列化和反序列化设计与实现 Simple RPC - 03 借助Netty实现…...
![](https://www.ngui.cc/images/no-images.jpg)
【深度学习】基于Transformers的大模型推理框架
本文旨在介绍基于transformers的decoder-only语言模型的推理框架。与开源推理框架不同的是: 本框架没有利用额外的开源推理仓库,仅基于huggingface,transformers,pytorch等原生工具进行推理,适合新手学习大模型推理流…...
![](https://i-blog.csdnimg.cn/direct/d7585aa78dc04f0e8c70d27db5031cf0.png)
电脑监控怎样看回放视频?一键解锁电脑监控回放,守护安全不留死角!高效员工电脑监控,回放视频随时查!
你是否曾好奇那些键盘敲击背后的秘密?电脑监控不仅是守护企业安全的隐形盾牌,更是揭秘高效与合规的魔法镜!一键解锁安企神监控回放,就像打开时间宝盒,让过去的工作瞬间跃然眼前。无论是精彩瞬间还是潜在风险࿰…...
![](https://img-blog.csdnimg.cn/20210412092221392.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Z4dHh6Mg==,size_16,color_FFFFFF,t_70)
佛山 做网站公司有哪些/郑州seo外包公司哪家好
问题 Charles是Mac上面知名的代理软件,类似Windows上面的fiddler。在调试CDN的过程中,需要远程调试某个地区的节点,就只能使用代理服务区进行访问调试。但是这个过程中同时需要Charles对CDN的客户端进行抓包处理,但同时有需要一个…...
网站建设硬件预算/济南今日头条最新消息
近年来,华为在数字政府、智慧城市领域积极躬身入局。2020年以来,深圳龙岗、安徽六安、江苏盐城、内蒙古乌兰察布等地,纷纷与华为携手共建智慧政务。日前,国际数据公司IDC发布《中国政务云基础架构市场厂商评估MarketScape报告》。…...
![](/images/no-images.jpg)
平台类网站做多久/企业网站推广方案策划
题目 给你n(n<5e4)个数,第i个数为ai(1<ai<1e6) 以下q(q<5e4)个修改,第j次把pj改为vj(1<vj<1e6) 每次询问问修改之后,[1,n]间有多少种不同的gcd的值 思路来源 归神代码 题解 网上搜题解都看不懂,只好硬啃…...
![](https://img-blog.csdnimg.cn/img_convert/3d55af0b00f7513dc3c0e4cae0d502fa.webp?x-oss-process=image/format,png)
一个独立IP做几个网站比较合适/抖音的商业营销手段
前言 目前开发的SpringBoot项目在启动的时候需要预加载一些资源。而如何实现启动过程中执行代码,或启动成功后执行,是有很多种方式可以选择,java培训我们可以在static代码块中实现,也可以在构造方法里实现,也可以使用…...
![](/images/no-images.jpg)
色块网站/如何做网络营销推广
德国机器人公司MetraLabs GmbH推出的RFID库存机器人TORY近日迎来其一周年使用纪念日,该机器人目前在零售公司Adler Modemarkte AG位于Erfurt的门店投入使用。TORY是世界上第一个投入实际使用的RFID库存机器人。该机器人的读取精度高达90%。此外,该机器人…...
![](https://img-blog.csdnimg.cn/20201101204213119.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzMTYyNQ==,size_16,color_FFFFFF,t_70)
北京网站建设公司网络营销外包网络建站报价/企业seo优化
java 动态规划(三角形最短路径和) ************************** 三角形最短路径和 问题描述 给定一个三角形,找出自顶向下的最小路径和 每一步只能移动到下一行中相邻的结点上(相邻节点:索引相同、索引1)示例: [[2],[…...