Day1力扣打卡

news2024/11/19 6:42:49

打卡记录

在这里插入图片描述


最长相邻不相等子序列 I(脑筋急转弯)

链接

思路:形如 11100110001 要达到最大,必须在重复数字选出一个,即在111中取一个1,在00中取一个0,以此类推最终便得到最长相邻不相等子序列。

class Solution {
public:
    vector<string> getWordsInLongestSubsequence(int n, vector<string>& words, vector<int>& groups) {
        vector<string> ans;
        for (int i = 0; i < n; i++)
            if (i == n - 1 || groups[i] != groups[i + 1]) ans.push_back(words[i]);
        return ans;
    }
};

最长相邻不相等子序列 II(DP)

链接

思路:「子序列 + 考虑相邻元素」DP

子序列 DP 的思考套路
子序列 + 不考虑相邻元素:选或不选。代表题目:494. 目标和(0-1 背包)
子序列 + 考虑相邻元素:枚举选哪个。代表题目:300. 最长递增子序列


class Solution {
public:
    vector<string> getWordsInLongestSubsequence(int n, vector<string>& words, vector<int>& groups) {
        auto check = [&](string& a, string& b) -> bool
        {
            if (a.size() != b.size()) return false;
            int m = a.size();
            bool flag = false;
            for (int i = 0; i < m; ++i)
            {
                if (a[i] != b[i])
                {
                    if (flag) return false;
                    flag = true;
                }
            }
            return flag;
        };
        int dp[n], max_len = 1, pre[n], idx = 0;
        memset(pre, -1, sizeof pre);
        for (int i = 0; i < n; ++i)
        {
            dp[i] = 1;
            for (int j = 0; j < i; ++j)
            {
                if (groups[i] != groups[j] && check(words[i], words[j]) && dp[i] < dp[j] + 1)
                {
                    dp[i] = dp[j] + 1;
                    pre[i] = j;
                }
                if (max_len < dp[i])
                {
                    max_len = dp[i];
                    idx = i;
                }
            }
        }
        vector<string> ans;
        for (int i = idx; i != -1; i = pre[i]) ans.push_back(words[i]);
        reverse(ans.begin(), ans.end());
        return ans;
    }
};

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

链接
在这里插入图片描述

class Solution {
public:
    int minOperations(string s1, string s2, int x) {
        if (count(s1.begin(), s1.end(), '1') % 2 != count(s2.begin(), s2.end(), '1') % 2) {
            return -1;
        }
        int n = s1.length();
        int memo[n][n + 1][2];
        memset(memo, -1, sizeof(memo)); // -1 表示没有计算过
        function<int(int, int, bool)> dfs = [&](int i, int j, bool pre_rev) -> int {
            if (i < 0) {
                return j || pre_rev ? INT_MAX / 2 : 0;
            }
            int &res = memo[i][j][pre_rev]; // 注意这里是引用
            if (res != -1) { // 之前计算过
                return res;
            }
            if ((s1[i] == s2[i]) == !pre_rev) { // 无需反转
                return dfs(i - 1, j, false);
            }
            res = min(dfs(i - 1, j + 1, false) + x, dfs(i - 1, j, true) + 1);
            if (j) { // 可以免费反转
                res = min(res, dfs(i - 1, j - 1, false));
            }
            return res;
        };
        return dfs(n - 1, 0, false);
    }
};

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

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

相关文章

uCOSIII实时操作系统 七 中断与时钟管理

目录 中断管理&#xff1a; 中断处理过程&#xff1a; 临界区保护&#xff1a; 时间管理 OSTimeTick()函数 OSTimeDly()函数 OSTimeDlyHMSM()函数&#xff08;常用的&#xff09; OSTimeDlyResume()函数 中断管理&#xff1a; 中断处理过程&#xff1a; 中断是一个硬件…

Bugku sql注入 基于布尔的SQL盲注 经典题where information过滤

目录 绕过空格 /**/绕过 ()绕过 回车绕过 &#xff08;键按钮&#xff09;绕过 等号绕过 绕过&#xff0c;&#xff08;逗号&#xff09;使用substr 下面存在基本绕过方式 注释符绕过 /**/绕过 #绕过 /*注释内容*/绕过 //注释绕过 大小写绕过 绕过information过…

Spring中注入的使用

目录 一、什么是注入&#xff08;Injection&#xff09; 1.1 为什么要注入 二、注入的基本使用 三、Spring注入原理分析 一、什么是注入&#xff08;Injection&#xff09; 注入就是通过Spring的配置文件&#xff0c;为所创建对象的成员变量进行赋值 1.1 为什么要注入 书接上…

寻找替代Redmine项目管理工具的常见方案

RedMine是一个非常受欢迎的项目管理工具&#xff0c;但它并不是万能的。随着时间的推移&#xff0c;许多功能和特性可能会发生变化或被取消。因此&#xff0c;有许多其他工具可以成为RedMine的替代品。 以下是六种可能的选择&#xff1a; 1、Zoho Projects&#xff1a; Zoho P…

“高级小程序开发指南“

目录 引言小程序视图层小程序逻辑层及生命周期总结 引言 随着移动互联网的快速发展&#xff0c;小程序作为一种轻量级的应用形态&#xff0c;在用户使用体验和开发者便捷性方面受到了广泛关注。本篇博客将带你深入探索小程序的视图层和逻辑层&#xff0c;并介绍其生命周期。 …

高压互锁(HVIL)

文章目录 简介高压互锁的作用高压互锁原理高压互锁检测电路设计直流源PWM直流源和PWM比较 高压互锁常见故障MSD 简介 高压互锁(High voltage Inter-lock&#xff0c;简称HVIL)&#xff0c;又称高压互锁回路系统。 高压互锁是混合动力和全电动汽车的安全功能&#xff0c;利用低…

GEO生信数据挖掘(八)富集分析(GO 、KEGG、 GSEA 打包带走)

第六节&#xff0c;我们使用结核病基因数据&#xff0c;做了一个数据预处理的实操案例。例子中结核类型&#xff0c;包括结核&#xff0c;潜隐进展&#xff0c;对照和潜隐&#xff0c;四个类别。第七节延续上个数据&#xff0c;进行了差异分析。 本节对差异基因进行富集分析。 …

函数防抖(javaScript)

防抖说明 &#xff08;1&#xff09;防抖的目的&#xff1a; 当多次执行某一个动作的时候&#xff0c;限制函数调用的次数&#xff0c;节约资源。 &#xff08;2&#xff09;防抖的概念&#xff1a; 函数防抖&#xff08;debounce&#xff09;&#xff1a;就是指触发事件后&…

docker离线安装和使用

通过修改daemon配置文件/etc/docker/daemon.json来使用加速器sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://ullx9uta.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo syste…

Qt ModelView显示数据库数据

利用qt的model view来显示数据表userudps里的数据 用了一个label 两个combox和一个tableview&#xff0c;实现如下效果&#xff1a; 我这里用到是mysql数据库&#xff0c;一般配置mysql数据库就两种有驱动或者没驱动&#xff0c;有的话把mysql的bin目录的libmysql.dll复制到q…

ESP32-IPS彩屏ST7789-Arduino-简单驱动

目的&#xff1a; 使ESP32能够驱动点亮ST7789显示屏 前提条件&#xff1a; ESP32 ST7789 &#xff08;240 x240&#xff0c;IPS&#xff09; 杜邦线 Arduino 过程&#xff1a; 0x00--接线 0x01--驱动&#xff1a; 彩屏驱动库 针对不同的彩屏驱动芯片&#xff0c;常用的 Arduino…

Java中的数组

前言&#xff1a; 本篇博客将为大家介绍Java中的数组的相关知识。 目录 基本介绍 概念相关 数组的使用 数组是引用类型 应用场景 保存数据 作为方法的参数 作为方法的返回值 练习 数组转字符串 数组拷贝 求数组中元素的平均值 查找数组中的指定元素&#xff08;二…

传输线感性耦合和距离的关系

传输线感性耦合和距离的关系 传输线感性耦合是指两条或多条传输线之间由于磁场或电场的相互作用而产生的耦合现象。这种耦合现象对于传输线的信号质量和完整性有很大的影响。其中&#xff0c;传输线之间的距离是一个重要的影响因素。本文将从传输线感性耦合的基本概念入手&…

新年学新语言Go之一

一、前言 搜索相关知识后续内容等上班后再继续&#xff0c;新年新气象&#xff0c;从今天开始学习一下Go语言&#xff0c;第一次听说这门语言还是2016年的时候&#xff0c;然后2018年买了一本书 Go In Action&#xff0c;然后就没有然后了&#xff0c; 转眼这么多年过去了&am…

输入字符串,判断里面有多少个大写字母,多少小写字母,多少数字

public static void main(String[] args) {//输入字符串&#xff0c;判断里面有多少个大写字母&#xff0c;多少小写字母&#xff0c;多少数字countVary("fsdfsD4f4sf&#xffe5;#&#xffe5;%~&*&#xff01;sg9tssfffSFSFS");}public static void countVary(…

【网络】总览(待更新)

网络Ⅰ 零、概述0. 网络协议1. 网络协议分层OSI 七层模型TCP/IP 五层模型 2. 协议报头3. 通信过程 一、应用层1.1 &#x1f517;HTTP 协议1.2 &#x1f517;HTTPS 协议 二、传输层2.1 端口号2.2 netstat - - 查询网络状态2.3 pidof - - 查看服务器的进程 id2.4 &#x1f517;UD…

亚马逊云科技正式发布Amazon DataZone,一项新的数据管理服务

Amazon DataZone现已正式发布。作为一项新的数据管理服务&#xff0c;它能够在组织中对数据生产者和消费者之间产生的数据进行编目、发现、分析、共享和管理。 早在2022年的亚马逊云科技re:Invent上&#xff0c;就预告了Amazon DataZone产品的发布&#xff0c;并在2023年3月对其…

常见场景面试题(二)

typora-copy-images-to: imgs theme: cyanosis 敏感词库的设计&#xff0c;要求增删改查敏感词。敏感词文本匹配&#xff0c;敏感词一万个&#xff0c;文本长度在 20 - 1000 答&#xff1a;使用 trie 树来实现敏感词库的设计&#xff0c;可以利用字符串公共前缀来节约存储空间。…

webrtc gcc算法(1)

老的webrtc gcc算法,大概流程&#xff1a; 这两个拥塞控制算法分别是在发送端和接收端实现的&#xff0c; 接收端的拥塞控制算法所计算出的估计带宽&#xff0c; 会通过RTCP的remb反馈到发送端&#xff0c; 发送端综合两个控制算法的结果得到一个最终的发送码率&#xff0c;并以…

记次好玩的XXX模式

看到很多框架里都用了这种方式