lc2903_找出满足差值条件的下标1 【TED演讲】眼下人类所需的亿万环境污染治理方案 Kubernetes集群中DNS故障的可观测性与根因诊断 valgrind设置无限报错以及排除初始化报错
Algorithm
lc2903_找出满足差值条件的下标1
思路:
直接遍历检查 i, i+indexDifference.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class Solution {
public:
vector<int> findIndices(vector<int>& nums, int indexDifference, int valueDifference) {
vector<int> ans(2, -1);
int sz = nums.size();
for (int i = 0; i < sz; i++) {
for (int j = i + indexDifference; j < sz; j++) {
if (abs(nums[i] - nums[j]) >= valueDifference) {
ans[0] = i;
ans[1] = j;
return ans;
}
}
}
return ans;
}
};
|
题解里面还有动态维护前面 i 遍历的最大最小值的单次遍历的方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
class Solution {
public:
vector<int> findIndices(vector<int>& nums, int indexDifference, int valueDifference) {
int minIndex = 0, maxIndex = 0;
for (int j = indexDifference; j < nums.size(); j++) {
int i = j - indexDifference;
if (nums[i] < nums[minIndex]) {
minIndex = i;
}
if (nums[j] - nums[minIndex] >= valueDifference) {
return {minIndex, j};
}
if (nums[i] > nums[maxIndex]) {
maxIndex = i;
}
if (nums[maxIndex] - nums[j] >= valueDifference) {
return {maxIndex, j};
}
}
return {-1, -1};
}
};
// https://leetcode.cn/problems/find-indices-with-index-and-value-difference-i/solutions/2784952/zhao-chu-man-zu-chai-zhi-tiao-jian-de-xi-wxxb/
|
Review
眼下人类所需的亿万环境污染治理方案【TED演讲】
都知道二氧化碳过多会导致全球气候变暖,然后导致南北极融化,海岸线上升。
所以环境中的二氧化碳需要一套系统去做回收,固化。
这里视频中演讲者讲到通过基金会激励,然后实现碳中和市场机制。
预先市场承诺机制(AMC),旨在支持碳去除技术的规模化应用。
Tips
Kubernetes 集群中 DNS 故障的可观测性与根因诊断
Share
valgrind设置无限报错以及排除初始化报错
一般使用 valgrind 都是这样进行程序启动运行:
1
|
valgrind --leak-check=full --track-origins=yes --show-reachable=yes --log-file=./mem.log ./bin/your_program
|
但是这样对于大后台程序,容易反复报错其中的 Log 的 char 数组未 memset 初始化,
但是实际代码是计算好填入字符长度并在末尾填入了 \0
的。
最终导致日志被打印超过 10000000 次,然后 valgrind 不再继续运行:
1
2
3
4
5
|
==201844== More than 10000000 total errors detected. I'm not reporting any more.
==201844== Final error counts will be inaccurate. Go fix your program!
==201844== Rerun with --error-limit=no to disable this cutoff. Note
==201844== that errors may occur in your program without prior warning from
==201844== Valgrind, because errors are no longer being displayed.
|
因为可以设置无限报错--error-limit=no
,以及排除初始化报错--undef-value-errors=no
:
1
|
valgrind --error-limit=no --undef-value-errors=no --leak-check=full --show-reachable=yes --log-file=./mem2.log ./bin/your_program
|