ant 0

  1. linux排序并去重 sort data.txt | uniq > data.txt
  2. 根据条件请求不同的处理器 用什么模式 代理模式 责任链 还是装饰器?
  3. 装饰器模式属于结构型模式吗?yes
  4. 装饰类和被装饰类耦合性高吗?no
  5. 动态添加和撤销对象可以用装饰器模式吗???
  6. http2新增了连接的keepalive功能吗?NO
  7. ptr[5]={1,2,3,4,5}; *(++ptr++)报错吗 编译报错吗?YES
  8. Class *c=nullptr; c->print()会报错吗:print是普通成员函数?YES print是虚函数?YES
  9. 一个类可以声明几个友元函数?any
  10. vector在某位置插入?vec.insert(it, 10);
  11. 一条线剪断判断最大长度(用的vector insert和遍历求最大值超时了)50%
  12. 给定一个数n 要找到所有的数x 满足条件gcd(n,x)=x (40%)
  13. 质因数分解
  14. 大数相乘
  15. 判断是不是质数
bool isPrime(int num) {
    if (num <= 1) return false;
    if (num <= 3) return true;
    if (num % 2 == 0 || num % 3 == 0) return false;
    for (int i = 5; i * i <= num; i += 6) 
        if (num % i == 0 || num % (i + 2) == 0) 
            return false;
    return true;
}

int multiply(string& num1, string& num2) {
    int n1 = num1.size(), n2 = num2.size();
    std::vector<int> result(n1 + n2, 0);
    // 模拟竖式乘法
    for (int i = n1 - 1; i >= 0; i--) {
        int carry = 0;
        for (int j = n2 - 1; j >= 0; j--) {
            int sum = (num1[i] - '0') * (num2[j] - '0') + result[i + j + 1] + carry;
            result[i + j + 1] = sum % 10;
            carry = sum / 10;
        }
        if (carry > 0) result[i] += carry;
    }
    // 去除前导零
    std::string ans = "";
    int i = 0;
    while (i < result.size() && result[i] == 0) i++;
    while (i < result.size()) ans += std::to_string(result[i++]);
    // 取模
    int res = 0;
    for (char digit : ans) res = (res * 10 + digit - '0') % mod;
    return res;
}

全部评论
应该用set解: // 找到插入位置前后的红线 auto it_right = red_lines.lower_bound(x); auto it_left = prev(it_right); // 删除旧的段长 int old_length = *it_right - *it_left; segments.erase(segments.find(old_length)); // 插入新红线后,产生两个新的段长 int left_segment = x - *it_left; int right_segment = *it_right - x; // 更新段长 segments.insert(left_segment); segments.insert(right_segment); // 将新红线位置插入 red_lines.insert(x);
点赞 回复 分享
发布于 09-01 21:05 北京
乘法原理:一个数字可以分解成 n=b1^c1 * b2^c2 * .... * bm^cm,其中bi为质数,那么所有的因子的数量就是(c1 + 1) * (c2 + 1) * ... * (cm + 1)
点赞 回复 分享
发布于 09-01 21:05 北京
感觉第三题用long long应该能多ac一点。。
点赞 回复 分享
发布于 09-01 21:06 北京
https://mp.weixin.qq.com/s/6thCgBA5mIXIyxnVjrFL2A
点赞 回复 分享
发布于 09-01 21:07 北京

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务