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

第 366 场周赛 LeetCode 周赛题解

A 分类求和并作差

在这里插入图片描述

模拟

class Solution {
public:int differenceOfSums(int n, int m) {int res = 0;for (int i = 1; i <= n; i++)res += i % m != 0 ? i : -i;return res;}
};

B 最小处理时间

在这里插入图片描述

排序:设四个 p r o c e s s o r T i m e processorTime processorTime 的元素形成的数组为 p p p p p p 降序排序, t a s k s tasks tasks 升序排序, p p p t a s k s tasks tasks 按下标逐位相加产生的最大元素即为答案

class Solution {
public:int minProcessingTime(vector<int> &processorTime, vector<int> &tasks) {vector<int> p;for (auto x: processorTime)for (int i = 0; i < 4; i++)p.push_back(x);sort(p.begin(), p.end(), greater<>());sort(tasks.begin(), tasks.end());int res = 0;for (int i = 0; i < tasks.size(); i++)res = max(res, p[i] + tasks[i]);return res;}
};

C 执行操作使两个字符串相等

在这里插入图片描述

动态规划:设 s 1 s1 s1 s 2 s2 s2 相同下标元素不同的下标位置的序列为 l i li li ,若 l i li li 长度为奇数则返回 − 1 -1 1 。设 p i , j p_{i,j} pi,j 为使得 s 1 s1 s1 l i [ i , j ] li[i,j] li[i,j] 中的下标处与 s 2 s2 s2 相同的最小代价, p i , j p_{i,j} pi,j 可由 p i + 1 , j − 1 p_{i+1,j-1} pi+1,j1 p i , k + p k + 1 , j p_{i,k}+p_{k+1,j} pi,k+pk+1,j转移得到。

class Solution {
public:int minOperations(string s1, string s2, int x) {vector<int> li;for (int i = 0; i < s1.size(); i++)if (s1[i] != s2[i])li.push_back(i);if (li.empty())return 0;if (li.size() & 1)return -1;int m = li.size();int p[m][m];for (int len = 1; len <= m; len++)for (int i = 0, j = i + len - 1; j < m; i++, j++)if (len & 1)p[i][j] = -1;else {if (len == 2)p[i][j] = li[j] == li[i] + 1 ? 1 : min(x, li[j] - li[i]);else {p[i][j] = p[i + 1][j - 1] + x;for (int k = i + 1; k < j; k += 2)p[i][j] = min(p[i][j], p[i][k] + p[k + 1][j]);}}return p[0][m - 1];}
};

D 对数组执行操作使平方和最大

在这里插入图片描述

贪心:题目所述操作不会改变数组中二进制各位上的 1 1 1 的数目,所以统计二进制各位 1 1 1 的总数,按非降序,尽可能大地生成 k k k个数。

class Solution {
public:int maxSum(vector<int> &nums, int k) {vector<int> cnt(31);long long mod = 1e9 + 7;for (auto x: nums)for (int i = 0; i <= 30; i++)if (x >> i & 1)cnt[i]++;int res = 0;while (k--) {int cur = 0;for (int i = 0; i <= 30; i++)if (cnt[i]) {cnt[i]--;cur |= 1 << i;}res = (res + 1LL * cur * cur % mod) % mod;}return (res + mod) % mod;}
};
http://www.lryc.cn/news/186371.html

相关文章:

  • Linux: tcpdump抓包示例
  • seafile server10.0.1 onlyoffice
  • 商城系统选型:Java商城系统还是PHP商城系统好?
  • 【多线程进阶】线程安全的集合类
  • 016 Spring Boot + Vue 图书管理系统
  • C语言中volatile/register/const/static/extern/auto关键字的作用
  • docker compose的安装和使用
  • /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found (required by
  • 数字化转型的必备工具:智能呼叫中心系统的应用
  • macOS Sonoma 正式版系统已发布,macos14值得更新吗
  • 数据结构-图-最短路径问题
  • 弹性资源组件elastic-resource设计(二)-集群
  • Flink学习笔记(一):Flink重要概念和原理
  • 网络中的一些基本概念
  • mysql中varchar长度为多少
  • python+selenium实现UI自动化(入门篇)
  • 深度学习基础知识 nn.Sequential | nn.ModuleList | nn.ModuleDict
  • 【DevOps】搭建你的第一个 Docker 应用栈
  • 软件测试职业生涯需要编写的全套文档模板,收藏这一篇就够了 ~
  • 【Kubernetes】Pod——k8s中最重要的对象之一
  • vue-cli-service: command not found问题解决
  • 每日一练 | 华为认证真题练习Day117
  • 【JVM】垃圾回收(GC)详解
  • 阿里云服务器公网带宽多少钱1M?
  • 应用DeepSORT实现目标跟踪
  • Beyond Compare 4 30天评估到期 解决方法
  • 化妆品用乙基己基甘油全球市场总体规模2023-2029
  • springboot家政服务管理平台springboot29
  • 【网络安全】如何保护IP地址?
  • 2023年失业了,想学一门技术可以学什么?