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

寒假刷题Day24

一、986. 区间列表的交集

class Solution {
public:
    vector<vector<int>> intervalIntersection(vector<vector<int>>& firstList, vector<vector<int>>& secondList) {
        vector<vector<int>> res;
        int i = 0, j = 0, n1 = firstList.size(), n2 = secondList.size();
        if(n1 == 0 || n2 == 0) return res;
        while(i < n1 && j < n2){
            int l = max(firstList[i][0], secondList[j][0]), r = min(firstList[i][1], secondList[j][1]); //有交集
            if(l <= r){
                res.push_back({l, r});
            }
            if(firstList[i][1] > secondList[j][1]){
                ++j;
            }
            else{
                ++i;
            }
        }
        return res;
    }
};

关键在于两点:

  1. 满足r1 >= l2 && r2 >= l1则两集合相交。
  2. 两集合交集为[max(l1, l2), min(r1, r2)]。

二、面试题 16.06. 最小差

class Solution {
public:
    int smallestDifference(vector<int>& a, vector<int>& b) {
        int i = 0, j = 0, n1 = a.size(), n2 = b.size();
        sort(a.begin(), a.end()); 
        sort(b.begin(), b.end());
        long ans = LONG_MAX;  // 用 long 来避免溢出

        while (i < n1 && j < n2) {
            long diff = (long)a[i] - (long)b[j]; // 用 long 计算避免溢出
            ans = min(ans, abs(diff));

            if (diff < 0) {
                i++;
            } else {
                j++;
            }
        }
        return (int)ans;
    }
};

我要吐槽这个神人测试用例:

a =

[-2147483648,1]

b =

[2147483647,0]
 

a[i] - b[j] 可能会超出 int 类型的范围,特别是当 a[i] = -2147483648b[j] = 2147483647 时:

a[ i ] − b[ j ] = −2147483648 − 2147483647 = −4294967295

这个值超出了 int(32 位有符号整数)的范围([-2^{31}, 2^{31}-1]),导致溢出。

相关文章:

  • Word正文中每两个字符之间插入一个英文半角空格
  • 服务器虚拟化(详解)
  • 枚举Enum用法
  • ros:ur机械臂初识
  • 基于STM32的智能垃圾分类回收系统
  • 【kafka系列】At Most Once语义
  • matlab-simulink
  • 鲸鱼算法优化Transformer+KAN网络并应用于时序预测任务
  • TrueNAS in Hyper-V
  • React:初识React
  • 脉冲当量含义
  • 国内已经部署DeepSeek的第三方推荐
  • Java 基于 SpringBoot+Vue 的家政服务管理平台设计与实现
  • TypeScript type 和 interface 的区别
  • 计算机视觉-尺度不变区域
  • mysql的rpm包安装
  • PyQt6/PySide6 的 SQL 数据库操作(QtSql)
  • SpringBoot:解决前后端请求跨域问题(详细教程)
  • pytourch训练识别单个数字的图片
  • 【STM32】DRV8833驱动电机
  • 视频丨习近平同普京在主观礼台出席红场阅兵式
  • 中国象棋协会坚决支持司法机关依法打击涉象棋行业的违法行为
  • 欧洲承诺投资6亿欧元吸引外国科学家
  • 教育部、国家发改委联合启动实施教师教育能力提升工程
  • 东亚社会的“苦难诗学”:从《苦尽柑来遇见你》说起
  • 德国新一届联邦政府宣誓就职