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

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

打卡第三十四天
1道简单题+两道中等题
image

题目:
image

思路:哈希表+遍历

代码:

class Solution{
public:int maxSum(vector<int>& nums){unordered_map<int,int> hash;int ans = -1;for(int x: nums){int maxdigit = 0;//初始化当前数字的最大位数为0int num = x;// 用临时变量处理,避免修改原数字while(num > 0){maxdigit = max(maxdigit,num % 10);// num % 10 得到最后一位数,比较取最大值num /= 10;// 去掉最后一位数,处理下一位}if(hash.count(maxdigit)){ // 哈希表中是否已经存在相同最大数字的键ans = max(ans,x + hash[maxdigit]);// 计算当前数字与该分组中最大值的和并与当前答案比较,取较大值更新答案}hash[maxdigit] = max(hash[maxdigit],x);//更新哈希表,确保存储的是该分组的最大值}return ans;}

题目:
image

思路:哈希表统计每个数字出现的次数,对每个数字key找互补数字(k - key),统计较少数量的数字出现次数

代码:

class Solution {
public:int maxOperations(vector<int>& nums, int k) {int ans = 0;unordered_map<int,int> hash;int n = nums.size();for(int num : nums){// 第一次遍历:统计每个数字出现的频率hash[num]++;}for(auto [key,value]: hash){// 第二次遍历:遍历哈希表中的所有键值对if(key * 2 == k){ans += value / 2;// 同一个数字需要两个才能组成一对,所以取出现次数的一半}else if(key * 2 < k && hash.count(k - key)){// 当前数字小于k/2,并且存在互补数字(k - key)ans += min(value,hash[k - key]);// 取当前数字和互补数字出现次数的较小值}}return ans;}
};

耗时≈一小时 明天继续

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

相关文章:

  • 3. Gin RESTful API 开发
  • 说课逐字稿2
  • 251123头疼的一天
  • Codeforces Round 1066 (Div. 1 + Div. 2) 做题记录
  • 2025.11.23总结
  • 字符串常见操作
  • 广州比较靠谱的留学中介
  • SpringBoot 2.x - 3.x 踩坑记录
  • 广州比较好的留学机构
  • 配置文件路径
  • AtCoder Beginner Contest 433 题解
  • 使用 Lua 语言识别英文数字验证码
  • 广州10大出国留学机构
  • 北京留学机构,谁知道哪家比较好
  • 北京留学读研中介机构推荐
  • 北京留学机构排行榜
  • 北京口碑最好的十大留学机构
  • 北京口碑最好的留学机构
  • 用 Kotlin 实现简单的文本处理程序
  • 北京口碑比较好的留学中介
  • 北京出国留学的机构哪家好
  • 北京出国留学的机构哪个好
  • 北京比较靠谱的留学中介
  • 北京比较好的留学机构
  • 北京10大出国留学机构
  • Upgrade Your Universal Audi-Style 3-Button Smart Key with KEYDIY MLB08 434MHz Non-OEM PCB
  • 分库分表问题
  • 数据采集作业3 102302111 海米沙
  • KEYDIY PAK09 Phone As Key: Smart Keyless Entry Remote Control for European/American Vehicles
  • 2025年11月23日