第 126 场 LeetCode 双周赛题解

news2024/12/23 16:36:30

A 求出加密整数的和

在这里插入图片描述

模拟

class Solution {
public:
    int sumOfEncryptedInt(vector<int> &nums) {
        int res = 0;
        for (auto x: nums) {
            string s = to_string(x);
            char ch = *max_element(s.begin(), s.end());
            for (auto &c: s)
                c = ch;
            res += stoi(s);
        }
        return res;
    }
};

B 执行操作标记数组中的元素

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模拟:用堆维护元素中的最小元素,用数组记录元素是否被标记过,模拟对数组的操作过程

class Solution {
public:
    using ll = long long;

    vector<long long> unmarkedSumArray(vector<int> &nums, vector<vector<int>> &queries) {
        priority_queue<pair<int, int>, vector<pair<int, int>>, greater<>> heap;//最小堆
        int n = nums.size();
        for (int i = 0; i < n; i++)
            heap.emplace(nums[i], i);
        ll s = accumulate(nums.begin(), nums.end(), 0LL);
        vector<int> tag(n);
        vector<ll> res;
        for (auto &q: queries) {
            if (!tag[q[0]]) {//未被标记过
                tag[q[0]] = 1;
                s -= nums[q[0]];
            }
            for (int i = 0; i < q[1] && !heap.empty();) {//尽量标记ki个数组中还没有标记的最小元素
                auto [v, ind] = heap.top();
                heap.pop();
                if (tag[ind])
                    continue;
                tag[ind] = 1;
                s -= v;
                i++;
            }
            res.push_back(s);
        }
        return res;
    }
};


C 替换字符串中的问号使分数最小

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

贪心:记录 s s s 中各英文字母的出现次数,然后遍历 s s s ,遇到 ? ? ? 时将当前出现次数最小的英文字母放至该位置,同时该字母出现次数 + 1 +1 +1 ,最后对原字符串中所有 ? ? ? 处的字母进行排序,即得到满足条件的字符串

class Solution {
public:
    string minimizeStringValue(string s) {
        vector<int> cnt(26);
        string res;
        vector<char> li;
        vector<int> loc;
        int j = 0;
        for (auto c: s)
            if (c != '?')
                cnt[c - 'a']++;
        for (auto c: s) {
            if (c == '?') {
                int mn = *min_element(cnt.begin(), cnt.end());
                for (int i = 0; i < 26; i++)
                    if (cnt[i] == mn) {
                        cnt[i]++;
                        li.push_back('a' + i);
                        loc.push_back(j);
                        break;
                    }
            }
            j++;
        }
        sort(li.begin(), li.end());
        for (int i = 0; i < li.size(); i++)
            s[loc[i]] = li[i];
        return s;
    }
};

D 求出所有子序列的能量和

在这里插入图片描述
在这里插入图片描述

动态规划:设 p [ i + 1 ] [ j ] [ v ] p[i+1][j][v] p[i+1][j][v] 为字符串 n u m s [ 0 , i ] nums[0,i] nums[0,i] 中长度为 j j j 和为 v v v 的自序列的数目,因为 n u m s nums nums 任意一个长为 j j j 的子序列, n u m s nums nums 包含该子序列的子序列数目为 2 n − j 2^{n-j} 2nj ,所以 n u m s nums nums 中所有子序列的能量和为 ∑ j = 1 n p [ n ] [ j ] [ k ] × 2 n − j \sum_{j=1}^n p[n][j][k]\times 2^{n-j} j=1np[n][j][k]×2nj

class Solution {
public:
    using ll = long long;

    int sumOfPower(vector<int> &nums, int k) {
        ll mod = 1e9 + 7;
        int n = nums.size();
        int p[n + 1][n + 1][k + 1];
        memset(p, 0, sizeof(p));
        p[0][0][0] = 1;
        for (int i = 0; i < n; i++) {
            p[i + 1][0][0] = 1;
            for (int j = 1; j <= i + 1; j++)
                for (int v = 1; v <= k; v++) {
                    if (v - nums[i] >= 0)
                        p[i + 1][j][v] = (p[i + 1][j][v] + p[i][j - 1][v - nums[i]]) % mod;
                    p[i + 1][j][v] = (p[i + 1][j][v] + p[i][j][v]) % mod;
                }
        }
        vector<ll> pow(n);
        pow[0] = 1;
        for (int i = 1; i < n; i++)
            pow[i] = pow[i - 1] * 2 % mod;
        ll res = 0;
        for (int j = 1; j <= n; j++)
            if (p[n][j][k])
                res = (res + p[n][j][k] * pow[n - j]) % mod;
        return (res + mod) % mod;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1523657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT网络编程之实现UDP广播发送和接收

推荐一个不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;内容全面&#xff0c;作为入门科普和学习提升都不错&#xff0c;分享一下给大家&#xff1a;前言https://www.captainbed.cn/ai 一.UDP通信 1.QT中实现UDP通信主要用到了以下类&#xff1a;QUdpSocket、QHost…

Type-C接口介绍

1、USB介绍 &#xff08;1&#xff09;标准USB A型连接器&#xff08;左&#xff09;及B型连接器&#xff08;右&#xff09; 引脚1 VCC&#xff08;5V&#xff09; 引脚2 Data- 引脚3 Data 引脚4 接地 &#xff08;2&#xff09;Micro USB 引脚定义及OTG (USB-HOST) …

如何使用GIT

如何使用GIT https://www.runoob.com/w3cnote/git-five-minutes-tutorial.html 欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语…

Vue | 使用 ECharts 绘制折线图

目录 一、安装和引入 ECharts 二、使用 ECharts 2.1 新增 div 盒子 2.2 编写画图函数 2.3 完整代码结构 三、各种小问题 3.1 函数调用问题 3.2 数据格式问题 3.3 坐标轴标签问题 3.4 间隔显示标签 参考博客&#xff1a;Vue —— ECharts实现折线图 本文是在上…

【Linux】Shell编程【一】

shell是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言。 Shell 是指一种应用程序&#xff0c;这个应用程序提供了一个界面&#xff0c;用户通过这个界面访问操作系统内核的服务。 Shell属于内置的…

JAVA学习9

目录 一.继承 1.继承的原理&#xff1a; 2.继承的细节&#xff1a; 3.继承的本质&#xff1a; 二.super的使用&#xff1a; 1.基本介绍&#xff1a; 2.注意事项与使用细节&#xff1a;&#xff08;1&#xff09;访问父类的属性super.属性名&#xff0c;但不能访问父类的p…

快速从0-1完成聊天室开发——环信ChatroomUIKit功能详解

聊天室是当下泛娱乐社交应用中最经典的玩法&#xff0c;通过调用环信的 IM SDK 接口&#xff0c;可以快速创建聊天室。如果想根据自己业务需求对聊天室应用的 UI界面、弹幕消息、礼物打赏系统等进行自定义设计&#xff0c;最高效的方式则是使用环信的 ChatroomUIKit 。 文档地址…

个税计算器(Python)

任务描述 目前我国个人所得税计算公式如下&#xff1a; 应纳个人所得税税额 (工资薪金所得 -五险一金 - 个税免征额)适用税率-速算扣除数 个税免征额为5000元/月&#xff0c;2018年10月1日起调整后&#xff0c;也就是2018年实行的7级超额累进个人所得税税率表如下&#xff1…

【组合回溯】Leetcode 131. 分割回文串

【组合回溯】Leetcode 131. 分割回文串 解法 切割组合回溯 ---------------&#x1f388;&#x1f388;131. 分割回文串 题目链接&#x1f388;&#x1f388;------------------- 解法 切割组合回溯 全局变量&#xff1a;result存储所有path的集合&#xff0c;path用来记录切…

新!PCA+DBO+K-means聚类,蜣螂优化算法DBO优化K-means,适合学习,也适合发paper。

PCADBOK-means聚类&#xff0c;蜣螂优化算法DBO优化K-means&#xff0c;适合学习&#xff0c;也适合发paper。 一、 蜣螂优化算法 摘要&#xff1a;受蜣螂滚球、跳舞、觅食、偷窃和繁殖等行为的启发&#xff0c;提出了一种新的基于种群的优化算法(Dung Beetle Optimizer, DBO…

拜占庭将军问题相关问题

1、拜占庭将军问题基本描述 问题 当我们讨论区块链共识时&#xff0c;为什么会讨论拜占庭将军问题&#xff1f; 区块链网络的本质是一个分布式系统&#xff0c;在存在恶意节点的情况下&#xff0c;希望 整个系统当中的善良节点能够对于重要的信息达成一致&#xff0c;这个机…

8.6 Springboot项目实战 Spring Cache注解方式使用Redis

文章目录 前言一、配置Spring Cache1. @EnableCaching2. 配置CacheManager3. application.properties配置二、使用注解缓存数据1. 使用**@Cacheable** 改造查询代码2. 使用**@CacheEvict** 改造更新代码前言 在上文中我们使用Redis缓存热点数据时,使用的是手写代码的方式,这…

每日学习笔记:C++ STL 的forward_list

定义 特点 操作函数 元素查找、移除或安插 forward_list::emplace_after arg...指的是元素构造函数的参数&#xff08;0~N个&#xff09; #include <iostream> #include <memory> #include <list> #include <forward_list> using namespace std;class…

【数据结构】深入理解AVL树:实现和应用

AVL树是一种自平衡的二叉搜索树&#xff0c;它能够保持良好的平衡性质&#xff0c;使得在最坏情况下的时间复杂度也能保持在对数级别。本文将深入介绍AVL树的原理、实现和应用&#xff0c;并通过示例代码演示其基本操作。 文章目录 什么是AVL树&#xff1f;AVL树的实现在AVL树…

Python主成分分析和聚类分析

项目背景 最近遇到这样一个需求&#xff1a; Python主成分分析和聚类分析&#xff1f;商业场景你数据不变展示&#xff0c;主要是用来划分用户等级&#xff0c;用来人文关怀。 基本概念 主成分分析&#xff08;PCA&#xff09;是一种常用的数据降维技术&#xff0c;通过线性变…

力扣巧题:翻倍链表的元素

此题的巧妙之处在于题目数据非常大只能在原链表中解决&#xff0c;遇到进一的问题如果尽早判断就不会有问题&#xff0c;而且第一位的判断非常巧妙 struct ListNode* doubleIt(struct ListNode* head){struct ListNode* Node (struct ListNode*)malloc(sizeof(struct ListNod…

ts版本微信小程序在wxml保存文件不刷新页面的解决办法

将project.config.json中的skylineRenderEnable改为false "skylineRenderEnable": false

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:TextClock)

TextClock组件通过文本将当前系统时间显示在设备上。支持不同时区的时间显示&#xff0c;最高精度到秒级。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 TextClock(options?…

【数据库】基础操作

系列文章目录 &#x1f308;座右铭&#x1f308;&#xff1a;人的一生这么长、你凭什么用短短的几年去衡量自己的一生&#xff01; &#x1f495;个人主页:清灵白羽 漾情天殇_计算机底层原理,深度解析C,自顶向下看Java-CSDN博客 ❤️相关文章❤️&#xff1a;清灵白羽 漾情天…