php网站开发教程网,网站开发手机验证码,计算机网络技术就业方向网站开发,五百亿建站模板打卡记录 同积元组#xff08;哈希表 排列组合#xff09;
链接 思路#xff1a;用哈希表将数组中出现的两不同数乘积依次记录#xff0c;将出现两次以上的乘积组通过排列组合计算总情况个数。 class Solution {
public:int tupleSameProduct(vectorint num…打卡记录 同积元组哈希表 排列组合
链接 思路用哈希表将数组中出现的两不同数乘积依次记录将出现两次以上的乘积组通过排列组合计算总情况个数。 class Solution {
public:int tupleSameProduct(vectorint nums) {int n nums.size(), ans 0;unordered_mapint, int hash;for (int i 0; i n; i)for (int j i 1; j n; j)hash[nums[i] * nums[j]];for (auto e : hash) {if (e.second 1) ans e.second * (e.second - 1) / 2;}return ans * 8;}
};接雨水单调栈
链接 思路横向计算填坑的面积遍历数组时当前元素小于栈顶依次入栈如果大于当前元素开始计算需要填补坑位的面积。需记录底部高度 class Solution {
public:int trap(vectorint height) {int ans 0;stackint stack;for (int i 0; i height.size(); i) {while (!stack.empty() height[stack.top()] height[i]) {int bottom stack.top();stack.pop();if (stack.empty()) break;int h min(height[stack.top()], height[i]) - height[bottom];ans h * (i - stack.top() - 1);}stack.push(i);}return ans;}
};