第一题:
1.题目 :2373. 矩阵中的局部最大值 - 力扣(LeetCode)
2.思路 :通过循环对每个i和j单独计算以i + 1和j + 1为中心的3*3矩阵中最大值
class Solution {
public:
int numSubarrayProductLessThanK(vector<int>& nums, int k) {
int n = nums.size();
int res = 0;
int i = 0,sum = 1;
for(int j = 0; j < n; j ++)
{
sum = sum * nums[j]; //移动j指针,观察是否满足题目条件
while(i <= j && sum >= k)
{
sum = sum / nums[i];
i ++;
} //当区间不再满足题目要求时,让i指针移动
res += j - i + 1;
}
return res;
}
};
第二题:
1.题目:2374. 边积分最高的节点 - 力扣(LeetCode)
2.思路:先计算顶点的边积分,然后for找出最大的节点
class Solution {
public:
int edgeScore(vector<int>& edges) {
int n = edges.size();
vector<long long int> record(n, 0);
for(int i = 0; i < n; i ++){
record[edges[i]] += i; //i点指向第edges[i]顶点时,第edges[i]个顶点加i;
}
int index = 0;
for(int i = 1; i < n; i ++){
if(record[i] > record[index]){
index = i; //找出最大的数
}
}
return index;
}
};