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

第 133 场 LeetCode 双周赛题解

A 使所有元素都可以被 3 整除的最少操作数

在这里插入图片描述

遍历 n u m s nums nums ,每有一个不被 3 3 3 整除的数,则操作数加 1 1 1

class Solution {public:int minimumOperations(vector<int>& nums) {int res = 0;for (auto x : nums)if (x % 3 != 0)res++;return res;}
};

B 使二进制数组全部等于 1 的最少操作次数 I

在这里插入图片描述

遍历:顺序遍历 n u m s nums nums 中的长为 3 3 3 的子数组,若子数组首元素为 0 0 0 ,则反转子数组,最终判断 n u m s nums nums 的最后两个元素是否为 1 1 1

class Solution {public:int minOperations(vector<int>& nums) {int n = nums.size();int res = 0;for (int i = 0; i < n - 2; i++)if (nums[i] == 0) {res++;nums[i + 1] ^= 1;nums[i + 2] ^= 1;}if (nums[n - 2] == 0 || nums[n - 1] == 0)return -1;return res;}
};

C 使二进制数组全部等于 1 的最少操作次数 II

在这里插入图片描述

遍历:顺序遍历 n u m s nums nums ,记录当前操作的总次数,对于每个遍历到的位置,若当前操作次数为偶数则当前位置的元素不变,否则当前位置元素反转

class Solution {public:int minOperations(vector<int>& nums) {int res = 0;for (auto x : nums)if ((x + res) % 2 == 0)res++;return res;}
};

D 统计逆序对的数目

在这里插入图片描述

动态规划:设 p [ i , j ] p[i,j] p[i,j] i + 1 i+1 i+1 个不同的数形成的恰有 j j j 个逆序对的排列的数目(模 1 e 9 + 7 1e9+7 1e9+7),通过枚举排列的最后一个元素来进行状态转移,转移过程注意不满足题目条件的排列,可以通过记忆化搜索实现

class Solution {public:using ll = long long;ll mod = 1e9 + 7;int numberOfPermutations(int n, vector<vector<int>>& requirements) {vector<int> cnt(n, -1);for (auto& it : requirements)cnt[it[0]] = it[1];//固定要求vector<vector<ll>> p(n, vector<ll>(cnt[n - 1] + 1, INT64_MIN));function<ll(int, int)> get = [&](int loc, int k) {//记忆化搜索if (k < 0)return 0LL;if (p[loc][k] != INT64_MIN)return p[loc][k];if (cnt[loc] != -1 && cnt[loc] != k)//不满足要求return p[loc][k] = 0;if (loc == 0)return p[loc][k] = k == 0 ? 1 : 0;p[loc][k] = 0;for (int i = 0; i <= loc; i++) {//枚举最后一位p[loc][k] += get(loc - 1, k - (loc - i));p[loc][k] %= mod;}return p[loc][k];};return (get(n - 1, cnt[n - 1]) + mod) % mod;}
};
http://www.lryc.cn/news/383271.html

相关文章:

  • 【仿真】UR机器人相机标定、立体标定、手眼标定、视觉追踪(双目)
  • 功能测试【测试用例模板、Bug模板、手机App测试★】
  • Android音频系统
  • Android开发系列(九)Jetpack Compose之ConstraintLayout
  • SpringMVC系列三: Postman(接口测试工具)
  • 项目实训-vue(十二)
  • 达梦数据库的系统视图v$lock
  • 【无人机三维路径规划】基于树木生长算法TGA实现复杂城市地形下无人机避障三维航迹规划附Matlab代码
  • 制造业工厂的管理到底有多难
  • QTday5 2024-06-19
  • Node官网下载各个版本
  • 备战秋招day4
  • 【华为OD机试B卷】服务器广播、需要广播的服务器数量(C++/Java/Python)
  • 目标检测数据集 - 手机屏幕表面表面缺陷检测数据集下载「包含VOC、COCO、YOLO三种格式」
  • 语音相关算法学习整理
  • [C#] opencvsharp对Mat数据进行序列化或者反序列化以及格式化输出
  • Linux中的TCP与UDP:理解两者的差异
  • 通信系统网络架构_1.局域网网络架构
  • Pycharm 启动 Django项目 —— python篇
  • 6-47选择整数计算
  • 什么是Redis?|介绍与使用及特点浅记
  • LeetCode题练习与总结:只出现一次的数字Ⅱ--137
  • Live Wallpaper Themes 4K Pro for Mac v19.9 超高清4K动态壁纸
  • vue3+ts:监听dom宽高变化函数
  • 数据库浅识及MySQL的二进制安装
  • 机器学习之数学基础(七)~过拟合(over-fitting)和欠拟合(under-fitting)
  • ⭐最新版!SpringBoot正确集成PageHelper姿势,不再被误导!
  • 解决:Xshell通过SSH协议连接Ubuntu服务器报“服务器发送了一个意外的数据包,received:3,expected:20”
  • [学习笔记] 禹神:一小时快速上手Electron笔记,附代码
  • Java stream操作流常用的方式