【算法】滑动窗口题单——1.定长滑动窗口⭐
文章目录
- 1456. 定长子串中元音的最大数目
- 2269. 找到一个数字的 K 美丽值
- 1984. 学生分数的最小差值(排序)
- 643. 子数组最大平均数 I
- 1343. 大小为 K 且平均值大于等于阈值的子数组数目
- 2090. 半径为 k 的子数组平均值
- 2379. 得到 K 个黑块的最少涂色次数
- 1052. 爱生气的书店老板
- 2841. 几乎唯一子数组的最大和
- 2461. 长度为 K 子数组中的最大和
- 1423. 可获得的最大点数(转换成找中间窗口最小)
- 2134. 最少交换次数来组合所有的 1 II
- 2653. 滑动子数组的美丽值⭐
- 解法1——利用二分维护窗口中的排序(超时了)
- 解法2——滑动窗口+暴力枚举 ⭐(牛逼的暴力枚举!🐂)
- 567. 字符串的排列
- 438. 找到字符串中所有字母异位词
- 2156. 查找给定哈希值的子串⭐⭐⭐
- 解法1——倒序滚动哈希
- 解法2——倒序滑动窗口 + O ( 1 ) O(1) O(1) 额外空间
- 小技巧,将'a'——'z'转成1——26 🐂
- 346. 数据流中的移动平均值(用队列维护窗口)
- 1100. 长度为 K 的无重复字符子串
题单来源:https://leetcode.cn/problems/minimum-size-subarray-in-infinite-array/solutions/2464878/hua-dong-chuang-kou-on-shi-jian-o1-kong-cqawc/
1456. 定长子串中元音的最大数目
https://leetcode.cn/problems/maximum-number-of-vowels-in-a-substring-of-given-length/description/

提示:
1 <= s.length <= 10^5
s 由小写英文字母组成
1 <= k <= s.length
定长滑动窗口,进来一个加一个,出去一个减一个。
class Solution {public int maxVowels(String s, int k) {int n = s.length(), cnt = 0, ans = 0;Set<Character> vowel = Set.of('a', 'e', 'i', 'o', 'u');for (int l = 0, r = 0; r < n; ++r) {if (vowel.contains(s.charAt(r))) cnt++;if (r >= l + k) {if (vowel.contains(s.charAt(l))) cnt--;l++;}ans = Math.max(ans, cnt);}return ans;}
}
2269. 找到一个数字的 K 美丽值
https://leetcode.cn/problems/find-the-k-beauty-of-a-number/

提示:
1 <= num <= 10^9
1 <= k <= num.length (将 num 视为字符串)
以240为例,
起初 x=100,y=1. 取出 240 % 100 / 1 = 40;
之后 x=1000,y=10 取出 240 % 1000 / 10 = 24;
class Solution {public int divisorSubstrings(int num, int k) {int ans = 0;long x = 1, y = 1;for (int i = 0; i < k; ++i) x *= 10;for (; x / 10 <= num; x *= 10, y *= 10) {long z = (long)num % x / y;if (z != 0 && num % z == 0) ++ans;}return ans;}
}
1984. 学生分数的最小差值(排序)
https://leetcode.cn/problems/minimum-difference-between-highest-and-lowest-of-k-scores/description/

排序之后的区间两边一定是一个最大值和一个最小值。
逐个枚举即可。
class Solution {public int minimumDifference(int[] nums, int k) {Arrays.sort(nums);int n = nums.length, ans = nums[n - 1] - nums[0];for (int l = 0, r = k - 1; r < n; ++l, ++r) {ans = Math.min(ans, nums[r] - nums[l]);}return ans;}
}
643. 子数组最大平均数 I
https://leetcode.cn/problems/maximum-average-subarray-i/description/

注意可能会溢出的问题。
class Solution {public double findMaxAverage(int[] nums, int k) {double ans = -10001, s = 0;for (int l = 0, r = 0; r < nums.length; ++r) {s += nums[r];if (r - l + 1 == k) {ans = Math.max(ans, s / k);s -= nums[l++];}}return ans;}
}
1343. 大小为 K 且平均值大于等于阈值的子数组数目
https://leetcode.cn/problems/number-of-sub-arrays-of-size-k-and-average-greater-than-or-equal-to-threshold/description/

提示:
1 <= arr.length <= 10^5
1 <= arr[i] <= 10^4
1 <= k <= arr.length
0 <= threshold <= 10^4
class Solution {public int numOfSubarrays(int[] arr, int k, int threshold) {int ans = 0;long t = threshold * k, s = 0;for (int i = 0; i < k - 1; ++i) s += arr[i];for (int i = k - 1; i < arr.length; ++i) {s += arr[i];if (s >= t) ans++;s -= arr[i - k + 1];}return ans;}
}
2090. 半径为 k 的子数组平均值
https://leetcode.cn/problems/k-radius-subarray-averages/description/

提示:
n == nums.length
1 <= n <= 10^5
0 <= nums[i], k <= 10^5
用 s 维护长度为 2*k+1 窗口内所有值的总和。
class Solution {public int[] getAverages(int[] nums, int k) {int n = nums.length;int[] ans = new int[n];Arrays.fill(ans, -1);long s = 0, l = 2 * k + 1;for (int i = 0; i < 2 * k && i < n; ++i) s += nums[i];for (int i = 2 * k; i < n; ++i) {s += nums[i];ans[i - k] = (int)(s / l);s -= nums[i - 2 * k];}return ans;}
}
2379. 得到 K 个黑块的最少涂色次数
https://leetcode.cn/problems/minimum-recolors-to-get-k-consecutive-black-blocks/description/

提示:
n == blocks.length
1 <= n <= 100
blocks[i] 要么是 'W' ,要么是 'B' 。
1 <= k <= n
固定长度滑动窗口。
class Solution {public int minimumRecolors(String blocks, int k) {int ans = k, n = blocks.length(), s = 0;for (int i = 0; i < k - 1; ++i) {if (blocks.charAt(i) == 'W') s++;}for (int i = k - 1; i < n; ++i) {if (blocks.charAt(i) == 'W') s++;ans = Math.min(ans, s);if (blocks.charAt(i - k + 1) == 'W') s--;}return ans;}
}
1052. 爱生气的书店老板
https://leetcode.cn/problems/grumpy-bookstore-owner/description/

提示:
n == customers.length == grumpy.length
1 <= minutes <= n <= 2 * 10^4
0 <= customers[i] <= 1000
grumpy[i] == 0 or 1
变量 s 维护长度为minutes的窗口中 生气时的顾客数量,这些顾客可以通过秘密技巧变得满意。
变量 total 计算本来就满意的顾客数量。
最后的答案是本来就满意的顾客数量+使用技巧变得满意的最多顾客数量。
class Solution {public int maxSatisfied(int[] customers, int[] grumpy, int minutes) {int n = customers.length, s = 0, mx = 0, total = 0;for (int i = 0; i < minutes - 1; ++i) {if (grumpy[i] == 1) s += customers[i];else total += customers[i];}for (int i = minutes - 1; i < n; ++i) {if (grumpy[i] == 1) s += customers[i];else total += customers[i];mx = Math.max(mx, s);if (grumpy[i - minutes + 1] == 1) s -= customers[i - minutes + 1];}return total + mx;}
}
2841. 几乎唯一子数组的最大和
https://leetcode.cn/problems/maximum-sum-of-almost-unique-subarray/submissions/

提示:
1 <= nums.length <= 2 * 10^4
1 <= m <= k <= nums.length
1 <= nums[i] <= 10^9
用 s 维护和。
用 cnt 维护不同数字的种类数量。
class Solution {public long maxSum(List<Integer> nums, int m, int k) {long ans = 0, s = 0;Map<Integer, Integer> cnt = new HashMap<>();for (int i = 0; i < k - 1; ++i) {s += nums.get(i);cnt.merge(nums.get(i), 1, Integer::sum);}for (int i = k - 1; i < nums.size(); ++i) {s += nums.get(i);cnt.merge(nums.get(i), 1, Integer::sum);if (cnt.size() >= m) ans = Math.max(ans, s);s -= nums.get(i - k + 1);cnt.merge(nums.get(i - k + 1), -1, Integer::sum);if (cnt.get(nums.get(i - k + 1)) == 0) cnt.remove(nums.get(i - k + 1));}return ans;}
}
2461. 长度为 K 子数组中的最大和
https://leetcode.cn/problems/maximum-sum-of-distinct-subarrays-with-length-k/description/

提示:
1 <= k <= nums.length <= 10^5
1 <= nums[i] <= 10^5
class Solution {public long maximumSubarraySum(int[] nums, int k) {long ans = 0, s = 0;Map<Integer, Integer> cnt = new HashMap<>();for (int i = 0; i < nums.length; ++i) {s += nums[i];cnt.merge(nums[i], 1, Integer::sum);if (cnt.size() == k) ans = Math.max(ans, s);if (i >= k - 1) {int x = nums[i - k + 1];s -= x;cnt.merge(x, -1, Integer::sum);if (cnt.get(x) == 0) cnt.remove(x);}}return ans;}
}
1423. 可获得的最大点数(转换成找中间窗口最小)
https://leetcode.cn/problems/maximum-points-you-can-obtain-from-cards/description/

提示:
1 <= cardPoints.length <= 10^5
1 <= cardPoints[i] <= 10^4
1 <= k <= cardPoints.length
从两边拿要取最大,也就是找中间连续的最小。
可以使用固定长度滑动窗口。
class Solution {public int maxScore(int[] cardPoints, int k) {int n = cardPoints.length, l = n - k, total = 0, s = 0, mn = Integer.MAX_VALUE;if (l == 0) return Arrays.stream(cardPoints).sum();for (int i = 0; i < n; ++i) {s += cardPoints[i];total += cardPoints[i];if (i >= l - 1) {mn = Math.min(mn, s);s -= cardPoints[i - l + 1];}}return total - mn;}
}
2134. 最少交换次数来组合所有的 1 II
https://leetcode.cn/problems/minimum-swaps-to-group-all-1s-together-ii/description/

提示:
1 <= nums.length <= 10^5
nums[i] 为 0 或者 1
最后所以的 1 一定会相邻。
所以转换成求固定长度窗口中 1 出现的最大值,其它不在窗口中的 1 都需要交换过来。
class Solution {public int minSwaps(int[] nums) {int k = Arrays.stream(nums).sum(), mx = 0, s = 0, n = nums.length;for (int x = 0; x < 2 * n; ++x) {int i = x % n;s += nums[i];if (x >= k - 1) {mx = Math.max(mx, s);s -= nums[(x - k + 1) % n];}}return k - mx;}
}
2653. 滑动子数组的美丽值⭐
https://leetcode.cn/problems/sliding-subarray-beauty/description/

提示:
n == nums.length
1 <= n <= 10^5
1 <= k <= n
1 <= x <= k
-50 <= nums[i] <= 50
解法1——利用二分维护窗口中的排序(超时了)
class Solution {public int[] getSubarrayBeauty(int[] nums, int k, int x) {int n = nums.length;List<Integer> ls = new ArrayList<>();int[] ans = new int[n - k + 1];for (int i = 0; i < n; ++i) {int t = nums[i];int id = bs(ls, t);ls.add(id, t);if (ls.size() > k) {id = bs(ls, nums[i - k]);ls.remove(id);}if (ls.size() == k) {if (ls.get(x - 1) < 0) ans[i - k + 1] = ls.get(x - 1);else ans[i - k + 1] = 0;}}return ans;}public int bs(List<Integer> ls, int t) {int l = 0, r = ls.size();while (l < r) {int mid = l + r >> 1;if (ls.get(mid) < t) l = mid + 1;else r = mid;}return l;}
}

把 ArrayList 换成 LinkedList 超时会更多。
解法2——滑动窗口+暴力枚举 ⭐(牛逼的暴力枚举!🐂)
https://leetcode.cn/problems/sliding-subarray-beauty/solutions/2241294/hua-dong-chuang-kou-bao-li-mei-ju-by-end-9mvl/

虽然是暴力枚举,但是充分利用了数值的值域很小的特性。
class Solution {public int[] getSubarrayBeauty(int[] nums, int k, int x) {final int BIAS = 50;int[] cnt = new int[BIAS * 2 + 1]; // 计数数组int n = nums.length;int[] ans = new int[n - k + 1];for (int i = 0; i < n; ++i) {cnt[nums[i] + BIAS]++; // 进入窗口if (i >= k - 1) { // 计算该位置的答案int left = x; // 计算剩余的xfor (int j = 0; j < BIAS; ++j) {left -= cnt[j];if (left <= 0) { // 找到了答案ans[i - k + 1] = j - BIAS;break;}}--cnt[nums[i - k + 1] + BIAS]; // 移出窗口}}return ans;}
}
567. 字符串的排列
https://leetcode.cn/problems/permutation-in-string/description/

提示:
1 <= s1.length, s2.length <= 10^4
s1 和 s2 仅包含小写字母
如果 s1 的排列之一是 s2 的 子串。那么应该满足 s2 的一个字串中,各个字符的数量和 s1 相同。
用计数数组维护窗口中各个字符的数量即可。
class Solution {public boolean checkInclusion(String s1, String s2) {int[] cnt = new int[128];for (char ch: s1.toCharArray()) cnt[ch]++;for (int l = 0, r = 0; r < s2.length(); ++r) {cnt[s2.charAt(r)]--;if (r - l >= s1.length()) cnt[s2.charAt(l++)]++; boolean f = true;for (char ch = 'a'; ch <= 'z'; ++ch) {if (cnt[ch] != 0) {f = false;break;}}if (f) return true;}return false;}
}
438. 找到字符串中所有字母异位词
https://leetcode.cn/problems/find-all-anagrams-in-a-string/description/

提示:
1 <= s.length, p.length <= 3 * 10^4
s 和 p 仅包含小写字母
维护 s 中长度等于 p 的滑动窗口,检查 窗口中的各个字符数量和 p 中的字符数量是否相等即可。
class Solution {public List<Integer> findAnagrams(String s, String p) {List<Integer> ans = new ArrayList<>();int[] cnt = new int[128];for (char ch: p.toCharArray()) cnt[ch]++;for (int l = 0, r = 0; r < s.length(); ++r) {cnt[s.charAt(r)]--;if (r - l >= p.length()) cnt[s.charAt(l++)]++;boolean f = true;for (char ch = 'a'; ch <= 'z'; ++ch) {if (cnt[ch] != 0) {f = false;break;}}if (f) ans.add(l);} return ans;}
}
2156. 查找给定哈希值的子串⭐⭐⭐
https://leetcode.cn/problems/find-substring-with-given-hash-value/description/

提示:
1 <= k <= s.length <= 2 * 10^4
1 <= power, modulo <= 10^9
0 <= hashValue < modulo
s 只包含小写英文字母。
测试数据保证一定 存在 满足条件的子串。
解法1——倒序滚动哈希
https://leetcode.cn/problems/find-substring-with-given-hash-value/solutions/1249153/cha-zhao-gei-ding-ha-xi-zhi-de-zi-chuan-fi8jd/
倒序处理,
先处理出 p o w e r ( k − 1 ) m o d m o d u l o power^(k-1) \mod modulo power(k−1)modmodulo。
class Solution {public String subStrHash(String s, int power, int modulo, int k, int hashValue) {int n = s.length(), pos = -1;// h:子串哈希值 mult:power^(k-1) mod modulolong h = 0, mult = 1;// 预处理最后一个子串的哈希值和 power^k mod modulofor (int i = n - 1; i >= n - k; --i) {h = (h * power + (s.charAt(i) - 'a' + 1)) % modulo;if (i != n - k) {mult = mult * power % modulo;}}if (h == hashValue) pos = n - k;// 向前计算哈希值并尝试更新下标for (int i = n - k - 1; i >= 0; --i) {h = ((h - (s.charAt(i + k) - 'a' + 1) * mult % modulo + modulo) * power + (s.charAt(i) - 'a' + 1)) % modulo;if (h == hashValue) {pos = i;}}return s.substring(pos, pos + k);}
}
解法2——倒序滑动窗口 + O ( 1 ) O(1) O(1) 额外空间
class Solution {public String subStrHash(String s, int power, int modulo, int k, int hashValue) {int n = s.length(), pos = -1;// h:子串哈希值 mult:power^(k-1) mod modulolong h = 0, mult = 1;// 预处理最后一个子串的哈希值和 power^k mod modulofor (int i = n - 1; i >= n - k; --i) {h = (h * power + (s.charAt(i) & 31)) % modulo;if (i != n - k) {mult = mult * power % modulo;}}if (h == hashValue) pos = n - k;// 向前计算哈希值并尝试更新下标for (int i = n - k - 1; i >= 0; --i) {h = ((h - (s.charAt(i + k) & 31) * mult % modulo + modulo) * power + (s.charAt(i) & 31)) % modulo;if (h == hashValue) {pos = i;}}return s.substring(pos, pos + k);}
}
小技巧,将’a’——'z’转成1——26 🐂
只需要 & 31 即可。

346. 数据流中的移动平均值(用队列维护窗口)
https://leetcode.cn/problems/moving-average-from-data-stream/description/

提示:
1 <= size <= 1000
-10^5 <= val <= 10^5
最多调用 next 方法 10^4 次
class MovingAverage {Queue<Integer> q = new LinkedList<>();int sz;double sum;public MovingAverage(int size) {sz = size;sum = 0;}public double next(int val) {q.offer(val);sum += val;if (q.size() > sz) sum -= q.poll();return sum / q.size();}
}/*** Your MovingAverage object will be instantiated and called as such:* MovingAverage obj = new MovingAverage(size);* double param_1 = obj.next(val);*/
1100. 长度为 K 的无重复字符子串
https://leetcode.cn/problems/find-k-length-substrings-with-no-repeated-characters/description/

提示:
1 <= S.length <= 10^4
S 中的所有字符均为小写英文字母
1 <= K <= 10^4
维护长度为 k 的滑动窗口中各个字符出现的数量。
class Solution {public int numKLenSubstrNoRepeats(String s, int k) {int[] cnt = new int[128];int ans = 0;for (int l = 0, r = 0; r < s.length(); ++r) {cnt[s.charAt(r)]++;if (r - l >= k) cnt[s.charAt(l++)]--;if (r >= k - 1 && check(cnt)) ans++;}return ans;}public boolean check(int[] cnt) {for (char ch = 'a'; ch <= 'z'; ++ch) {if (cnt[ch] > 1) {return false;}}return true;}
}
相关文章:
【算法】滑动窗口题单——1.定长滑动窗口⭐
文章目录 1456. 定长子串中元音的最大数目2269. 找到一个数字的 K 美丽值1984. 学生分数的最小差值(排序)643. 子数组最大平均数 I1343. 大小为 K 且平均值大于等于阈值的子数组数目2090. 半径为 k 的子数组平均值2379. 得到 K 个黑块的最少涂色次数1052…...
可观测性项目开发与学习ing
http1,2,3的区别 HTTP/1.0、HTTP/1.1、HTTP/2 和 HTTP/3 是不同版本的协议,它们在以下方面有所不同: HTTP/1.0: 是最早的版本,主要特点如下: 每个请求和响应都需要建立一个新的 TCP 连接。不支持持久连接(Keep-Alive&…...
apache-poi
excel类型 excel分为03版本和07版本 03版本 new HSSFWorkbook(); 优点:速度快 缺点:只能写入65536行数据 文件类型:.xls07版本 new XSSFWorkbook(); 优点:不限制写入数量 缺点:容易造成内存溢出(OOM),速度…...
TOD和PPS精确时间同步技术
介绍 PPS和TOD PPS和TOD是两种用于精确时间同步的技术,它们在许多领域都有广泛的应用,总的来说,PPS和TOD被广泛应用于各种需要高度精确时间同步的领域,包括通信、测量、测试、系统集成和计算机网络等。 一、PPS PPS(…...
通过一个例子理解pytest的fixture的使用
需求 希望编写登陆web后做一些操作的测试用例,使用pytest框架具体测试用例执行前,需要先拿到web的token,这个获取token的动作只执行一次 例一 先上测试用例代码 adminpc-1:~$ cat my_test.py import pytestclass TestWebLogin:pytest.fi…...
单片机BootLoader是咋回事?
BootLoader的定义: CPU进入APP之前运行的一小段程序代码就叫做BootLoader。它是由程序员编写的,作用是更新应用程序。这也就说明了只有BootLoader的单片机才可以升级。有的产品有升级的需要就需要BootLoader了。 单片机的启动过程可以这么叙述ÿ…...
python与机器学习1,机器学习的一些基础知识(完善ing)
目录 1 关于阈值θ和偏移量b和公式变形的由来 2 激活函数 3 关于回归,分类等 4 关于模型 5 关于回归 6 关于分类 7 关于误差和梯度下降 7-2 最小二乘法修改θ 8 深度学习 10 分类 11 参考书籍 1 关于阈值θ和偏移量b和公式变形的由来 比如很多信息传入可…...
移动应用开发介绍及iOS方向学习路线(HUT移动组版)
移动应用开发介绍及iOS方向学习路线(HUT移动组版) 前言 作为一个HUT移动组待了一坤年(两年半)多的老人,在这里为还在考虑进哪个组的萌新们以及将来进组的新朋友提供一份关于移动应用开发介绍以及学习路线的白话文…...
vue+uniapp校园寻物失物招领平台 微信小程序1f6z5
系统中的核心用户是管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:首页、个人中心、用户管理、物品分类管理、物品信息管理、物品归还管理、留言板管理、系统管理等功能。管理员用例如图3-7所示。 对于本网上失物招领小程序…...
Linux内核--内存管理(三)物理内存分页机制--kmalloc及slub机制
一、引言 二、slub机制 ------>2.1、slub分配原理slub原理 ------>2.2、slub分配原理 ------>2.3、slub释放原理 ------>2.4、SLUB分配器 三、slub数据结构 ------>3.1、kmem_cache ------>3.2、kmem_cache_cpu ------>3.3、kmem_cache_node --…...
Shell - cron_protect.sh 监控 Python、Streaming 程序
目录 一.引言 二.Flink 程序监控 1.shell 脚本 2.crontab 配置 三.Python 程序监控 1.shell 脚本 2.crontab 配置 四.总结 一.引言 业务有流式处理数据的需求,需要 7x24 通过 Flink Python 程序进行处理。为了监控 Flink 与 Python 的程序运行状态并在程…...
MSB3541 Files 的值“<<<<<<< HEAD”无效。路径中具有非法字符。
MSB3541 Files 的值“<<<<<<< HEAD”无效。路径中具有非法字符。 一般来说出现这个问题是因为使用git版本控制工具合并代码出现了问题,想要解决也很简单。 如图点击错误后定位到文件,发现也没有什么问题。 根据错误后边的提示&a…...
【赠书第9期】巧用ChatGPT高效搞定Excel数据分析
文章目录 前言 1 操作步骤 1.1 数据清理和整理 1.2 公式和函数的优化 1.3 图表和可视化 1.4 数据透视表的使用 1.5 条件格式化和筛选 1.6 数据分析技巧 1.7 自动化和宏的创建 2 推荐图书 3 粉丝福利 前言 ChatGPT 是一个强大的工具,可以为你提供在 Exce…...
会声会影2024旗舰版系统配置要求及格式支持
会声会影2024旗舰版是一款广受欢迎的视频编辑软件,它的最新版本,会声会影2023,已经发布。在这篇文章中,我们将探讨会声会影2024旗舰版系统配置要求及格式支持 会声会影2024是一款专业的视频剪辑软件,能够帮助用户制作高…...
【部署运维】docker:入门到进阶
0 前言 部署运维博客系列一共有三篇: 拥抱开源,将工作中的经验分享出来,尽量避免新手踩坑。 【部署运维】docker:入门到进阶 【部署运维】kubernetes:容器集群管理掌握这些就够了 【部署运维】pythonredisceleryd…...
鸿蒙开发学习——应用程序框架
文章目录 UIAbility的生命周期Create状态WindowStageCreateForeground和Background前后台展示控制onWindowStageDestroyDestory 总结 UIAbility的生命周期 感觉这里他讲的不清晰,UIAbility的4个声明周期是Create、Foreground(桌面展示)、Back…...
Linux dd命令详解:如何从标准输入或文件中读取、转换并输出数据(附实例教程和注意事项)
Linux dd命令介绍 Linux dd命令用于读取、转换并输出数据。dd可以从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。这个命令在备份硬盘、创建启动盘、数据恢复等场景中非常有用。 Linux dd命令适用的Linux版本 d…...
Python——常见内置模块
Python 模块(Modules)1、概念模块函数类变量2、分类3、模块导入的方法:五种4、使用import 导入模块5、使用from……import部分导入6、使用as关键字为导入模块或功能命名别名7、模块的搜索目录8、自定义模块 常见内置模块一、math模块二、rand…...
JAVA毕业设计112—基于Java+Springboot+Vue的宠物领养社区小程序(源码+数据库)
基于JavaSpringbootVue的宠物领养社区小程序(源码数据库)112 一、系统介绍 本系统前后端分离带小程序 小程序(用户端),后台管理系统(管理员) 小程序: 登录、注册、宠物领养、发布寻宠、发布领养、宠物社…...
golang log模块使用
在Go中,log 包是用于输出日志信息的标准库。以下是一些基本的 log 包的使用示例: 基本用法: package mainimport ("log" )func main() {log.Println("This is a log message.") } 运行程序,你会在控制台看到日…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
