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

继续打卡day6

383. 赎金信 - 力扣(LeetCode)

class Solution {
public:bool canConstruct(string ransomNote, string magazine) {unordered_map<char, int> us;for(auto c: ransomNote){us[c]++; // 将字符串存储}for(auto c: magazine){if(us.count(c)){us[c]--;if(us[c] == 0) us.erase(c);}}return us. Empty();}
};

 15. 三数之和 - 力扣(LeetCode)

还是不会处理这里的去重逻辑

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {sort(nums.begin(), nums.end());vector<vector<int>> ans;auto n = nums.size();for(auto i = 0; i < n - 2; i++){  // 边界注意是n-2int left = i + 1, right = n -1;if(i > 0 && nums[i-1] == nums[i]) continue;while(left < right){int target = nums[i] + nums[left] + nums[right];if(target > 0){right--;}else if(target < 0){left++;} else{vector<int> res = {nums[i], nums[left], nums[right]};ans.push_back(res);while(left < right && nums[left] == nums[left+1]) left++;while(right > left && nums[right-1] == nums[right]) right--;left++;right--;}}}return ans;}
};

454. 四数相加 II - 力扣(LeetCode)

class Solution {
public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {unordered_map<int, int> ump;for(auto a: nums1){for(auto b: nums2){ump[a+b]++; // 统计可能出现的组数 , 次数}}int ans = 0;for(auto c : nums3){for(auto d : nums4){if(ump.count(-(c+d))){ans += ump[-c -d];}}}return ans;}
};

18. 四数之和 - 力扣(LeetCode)

class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<vector<int>> res;int n = nums.size();if(n < 4) return res;sort(nums.begin(), nums.end());for(int i = 0; i < n - 3; i++){if(i > 0 && nums[i] == nums[i-1]) continue;for(int j = i+1; j < n - 2; j++){if(j > i + 1 && nums[j-1] == nums[j]) continue;long long sum2 = nums[i] + nums[j];// 双指针int left = j + 1, right = n - 1;while(left < right){long long sum4 = sum2 + nums[left] + nums[right];if(target > sum4){left++;}else if(target < sum4){right--;} else{ // 找到一个4元组合res.push_back({nums[i], nums[j], nums[left],nums[right]});while(left < right && nums[right-1] == nums[right]) right--;while(left < right&& nums[left+1] == nums[left]) left++;left++, right--;}}}}return res;}
};

总结:这次有的题目第二次写了还是不会,归根结底是对原理不清楚,只是在背题解一样,要多理解为什么这样写的原理。最难不过坚持!!!

http://www.lryc.cn/news/603633.html

相关文章:

  • 机器学习线性回归:从基础到实践的入门指南
  • Wndows Docker Desktop-Unexpected WSL error错误
  • unity 使用PropertyDrawer 在Inspector 面板上自定义字段的显示方式
  • 天铭科技×蓝卓 | “1+2+N”打造AI驱动的汽车零部件行业智能工厂
  • RPG增容2.尝试使用MMC根据游戏难度自定义更改怪物的属性(二)
  • 本土化DevOps实践:Gitee为核心的协作工具链与高效落地指南
  • git中多仓库工作的常用命令
  • Mac安装Navicat步骤Navicat Premium for Mac v17.1.9【亲测】
  • 【腾讯云】EdgeOne网站安全防护的配置方法 防范盗刷流量 附恶意IP和UA黑名单
  • YOLOv11.pt 模型转换为 TFLite 和 NCNN 模型
  • npm : 无法加载文件 D:\Nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本
  • Kafka运维实战 17 - kafka 分区副本从 1 增加到 3【实战】
  • 图形界面应用程序技术栈大全
  • Java把word转HTML格式
  • python中的 @dataclass
  • It学习资源下载
  • LeetCode热题100——155. 最小栈
  • 【JVM】常见的 Java 垃圾回收算法以及常见的垃圾回收器介绍及选型
  • Docker网络技术深度研究与实战手册
  • DisplayPort 与 Display Port Alt模式两者区别解析
  • java导出pdf(使用html)
  • 【LeetCode 热题 100】(二)双指针
  • 【初识数据结构】CS61B中的基数排序
  • 纯血鸿蒙 AudioRenderer+AudioCapturer+RingBuffer 实现麦克风采集+发声
  • Leetcode-3152 特殊数组 II
  • 从字符串中“薅出”最长子串:LeetCode 340 Swift 解法全解析
  • B+树高效实现与优化技巧
  • 如何选择AI IDE?对比Cursor分析功能差异
  • echarts图表点击legend报错问题(折线图)
  • 8.项目起步(2)