当前位置: 首页 > news >正文

第32天(简单题中等题 数据结构)

打卡第三十二天
3道简单题+1道中等题

image

题目两数之和:
image

思路:哈希表,对数组中的每一个数 x,寻找数组中是否存在 target - x。创建一个哈希表,对于每一个x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,保证不会让 x 和自己匹配。

代码:

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int,int> freq;//创建哈希表int n = nums.size(),sum = 0;for(int i = 0;i < n;i++){auto it = freq.find(target - nums[i]);//在哈希表中查找(target - nums[i])if(it != freq.end()){// 找到目标值//freq.end() 表示"未找到"的特殊位置,return {it -> second,i};// 返回目标值的索引和当前索引}freq[nums[i]] = i;//nums[i]:数组中的当前数字; i:当前数字在数组中的索引位置}return{};}
};

image


题目与对应负数同时存在的最大正整数:
image

思路:排序+双指针
image

代码:

class Solution {
public:int findMaxK(vector<int>& nums) {sort(nums.begin(),nums.end());// 对数组进行排序for(int i = 0,j = nums.size() - 1;i < j;j--){// 初始化双指针:i从最小数开始,j从最大数开始while(i < j && nums[i] < -nums[j]){// 移动左指针i,直到找到不小于当前负最大值的数i++;}if(nums[i] == -nums[j]){// 如果找到互为相反数的两个数return nums[j];// 返回正数(因为数组已排序,nums[j]是较大的正数)}}return -1;}
};


题目可互换矩形的组数:
image

思路:遍历+哈希表,把答案增加之前遍历过的宽高比的个数,在遍历的过程中,用一个哈希表统计每个元素的出现次数。

代码:

class Solution {
public:long long interchangeableRectangles(vector<vector<int>>& rectangles) {unordered_map<double,long long> freq;// 哈希表,键是宽高比,值是该比例出现的次数long long int n = rectangles.size(),ans = 0;for(int i = 0;i < n;i++){ans += freq[rectangles[i][0]/(double)rectangles[i][1]];// 计算当前矩形的宽高比,并累加之前相同比例的矩形数量freq[rectangles[i][0]/(double)rectangles[i][1]]++;// 更新当前宽高比的出现次数}return ans;// 返回可互换矩形的总对数}
};

题目要求 i<j,如果先更新freq,再更新答案,就把 nums[j] 自己也统计进来了,相当于把 i=j 的情况也认为是好数对,所以要先更新答案再更新freq

常用枚举技巧:枚举右,维护左

耗时≈1.5小时 明天继续

http://www.jsqmd.com/news/47123/

相关文章:

  • 2025年11月GEO公司谁专业?硬核测评TOP10终极对比
  • 2025年11月GEO公司终极对比:如何选?10家服务商全景解析
  • 2025年11月GEO公司谁专业?权威发布推荐对比
  • 2025年11月GEO公司全景报告:哪家强?十大服务商权威揭晓
  • 2025年11月GEO公司选择报告:哪个服务商实战案例更突出?
  • 【CI130x 离在线】Linux平台从命名管道接收PCM格式数据并转为WAV文件——Python脚本实现
  • 2025年11月GEO公司深度盘点:哪家强?TOP10热度榜权威揭晓
  • 2025年11月GEO服务商怎么选?终极对比TOP10推荐指南
  • CF1863D-Two-Colored Dominoes
  • 2025年11月GEO公司深度盘点:怎么选?十大服务商权威发布
  • 2025年11月GEO服务商怎么选?深度盘点TOP10专业解析
  • docker-- 遇到服务无法访问,排查记录
  • 4. 2025年11月GEO服务商深度盘点:十大专业机构对比分析与选择策略
  • 2025年11月GEO服务商选择指南:哪家好权威推荐
  • 2025年11月GEO服务商怎么选?终极对比TOP10评测报告
  • 苹果手机传文件到 windows 电脑
  • 飞书弹窗报错 Failed to load DLL from D:\installed_app\Feishu\app\frame.dll, System Error Code = 5
  • 11/21
  • Vision Transformer (ViT) 原理及解读
  • 2025.11.21
  • 关于Git的多分支使用
  • 高中数学核心素养记忆口诀,从简到难,方便您记忆和理解
  • 杂题选做 25.11
  • 【第8章 数据分析基础】让AI帮你可视化一个数据集
  • sam3 (2)开发 - MKT
  • P1719 最大加权矩阵
  • Python pyinstaller convert py file as *.exe file
  • HTML 零基础入门到实战(附 100 + 代码示例与图解教程)
  • 立方数
  • Rust环境搭建