Day1力扣打卡

打卡记录

在这里插入图片描述


最长相邻不相等子序列 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.mzph.cn/news/107867.shtml

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

相关文章

Elasticsearch 8.11 中的合并更少,摄取更快

作者&#xff1a;ADRIEN GRAND Elasticsearch 8.11 改进了管理索引缓存的方式&#xff0c;从而减少了段合并。 我们对 Elasticsearch 8.11 从索引缓存回收内存的方式进行了重大更改&#xff0c;这有助于减少合并开销&#xff0c;从而加快索引速度。 使用我们的日志跟踪&#x…

maven 常用知识速记

创建项目 maven archetype:generate依赖范围 有如下依赖示例&#xff1a; <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.7</version><scope>test</scope> </dependency>其中…

力扣刷题 day46:10-16

1.最大整除子集 给你一个由 无重复 正整数组成的集合 nums &#xff0c;请你找出并返回其中最大的整除子集 answer &#xff0c;子集中每一元素对 (answer[i], answer[j]) 都应当满足&#xff1a; answer[i] % answer[j] 0 &#xff0c;或 answer[j] % answer[i] 0 如果存在…

百度测试开发工程师面试心得

百度测试开发实习生面试心得&#xff1a; 电话面试&#xff1a; 面试官&#xff1a;首先做一下自我介绍吧 我&#xff1a;我是***&#xff0c;来自什么大学&#xff0c;现在大三&#xff0c;在学校期间担任过部长&#xff0c;副主席等职务&#xff0c; 组织举办了很多比赛&…

DITA-OT 4.0新特性 - PDF themes,定制PDF样式的新方法

随着DITA-OT 4.0的发布&#xff0c;它提供了一种新的定制PDF样式方法&#xff0c;这种方法就是PDF theme。这篇文章来聊一聊这种定制PDF输出的新方法和实验结果。 在进入PDF theme细节之前&#xff0c;为各位读者梳理一下DITA-OT将DITA和Markdown发布成PDF的几种方法。 - 1 …

【Vue】vue在Windows平台IIS的部署

系列文章 【C#】IIS平台下&#xff0c;WebAPI发布及异常处理 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/126539836 【Vue】vue2与WebApi跨域CORS问题 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/133808959 文章目…

【小白使用-已验证】PhpStudy下载安装使用教程23.10.17

1.phpstudy是什么&#xff1f; phpstudy是一个php运行环境的集成包&#xff0c;用户不需要去配置运行环境&#xff0c;就可以使用&#xff0c;phpstudy不仅是一款比较好用的php调试环境工具&#xff0c;并且还包括了开发工具和常用手册&#xff0c;对于新手是有很大帮助的。 一…

git操作说明

SourceURL:file:///home/kingqi/桌面/git操作说明.doc 本地建立仓库 mkdir namebao cd namebao pwd git init 初始化 cd .git/ gedit config 本地存储 进入目录上传全部文件 git add . 提交 git commit -m “说明” 远程提交 复制gitee或者github仓库链接 可以直…

计算机网络第2章-DNS(3)

DNS&#xff1a;因特网的目录服务 在因特网上&#xff0c;主机和人类都一样&#xff0c;可以用很多种方式进行标识&#xff0c;主机的一种标识方法是它的主机名。 但是主机名一般是用IP来表示&#xff0c;IP是由四个字节组成&#xff0c;并且有严格的层次结构&#xff0c;不利…

Asp.net core Web Api 配置swagger中文

启动项目&#xff0c;如图&#xff1a; 原来是英文的&#xff0c;我们要中文的&#xff0c;WeatherForecastController.cs是一个示例&#xff0c;删除即可&#xff0c;WeatherForecast.cs同时删除&#xff0c;当然不删除也行&#xff0c;这里是删除&#xff0c;创建自己的控制器…

pytest 之 pytest.ini配置文件

前言&#xff1a;pytest.ini全局配置文件&#xff0c;是pytest单元测试框架的核心配置文件&#xff0c;pytest.ini 可以改变 pytest 的默认行为 一、配置规则 1、优先级 如pytest.ini有该参数值&#xff0c;在执行的时候&#xff0c;优先读取配置文件中的参数如没有&#xf…

idea禁用双击ctrl

Run anything | IntelliJ IDEA Documentation Disable double modifier key shortcuts

去中心遇见混币器

区块链的去中心化交易所在保护隐私和安全性上有着无可比拟的优势&#xff0c;用户甚至不需要提供注册资料&#xff0c;只要有web3钱包即可跟智能合约交易。在uniswap上可兑换绝大多数加密币&#xff0c;新推出的衍生品交易所ununx已经可以交易美股&#xff0c;期货和外汇,一个全…

Flutter 知识集锦 | 监听与通知 ChangeNotifier

theme: cyanosis 1. 数据的提供者与消费者 今天想要和大家好好聊聊 ChangeNotifier 这个东西&#xff0c;从名字上来看它由 change(改变) 和 Notifier(通知器) 构成。打个比方&#xff1a; 有三个铁粉跟我说: "你发新文章的时候跟我说一声"。 之后我发布文章后&…

C++学习: 文件I/O

作者: 苏丙榅 原文链接: https://subingwen.cn/c/file/ 文章目录 1. 文件概述1.1 什么是文件I/O1.2 磁盘文件分类 2. 文件的打开和关闭2.1 文件指针2.2 打开文件 2.3 关闭文件3. 文件的读写3.1 按照字符读写文件3.1.1 写文件3.1.2 读文件3.1.3 EOF 3.2 按照行读写文件3.2.1 写文…

[架构之路-237]:目标系统 - 纵向分层 - 网络通信 - DNS的递归查询和迭代查询

目录 一、DNS协议与DNS系统架构 1.1 什么是DNS协议 1.2 为什么需要DNS协议 1.3 DNS系统架构 二、DNS系统的查询方式 2.1 递归与迭代的比较 2.2 DNS递归查询 2.3 DNS迭代查询 一、DNS协议与DNS系统架构 1.1 什么是DNS协议 DNS&#xff08;Domain Name System&#xff…

2023年中国商业版服务器操作系统市场发展规模分析:未来将保持稳定增长[图]

服务器操作系统一般指的是安装在大型计算机上的操作系统&#xff0c;比如Web服务器、应用服务器和数据库服务器等&#xff0c;是企业IT系统的基础架构平台&#xff0c;也是按应用领域划分的三类操作系统之一。同时服务器操作系统也可以安装在个人电脑上。 服务器操作系统分类 …

WSL Ubuntu 22.04.2 LTS 安装paddlepaddle-gpu==2.5.1踩坑日记

环境是wsl的conda环境。 使用conda安装paddlepaddle-gpu: conda install paddlepaddle-gpu2.5.1 cudatoolkit11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge 等待安装... 报错处理&#xff1a; (1)PreconditionNotMetError: Cannot lo…

excel管理接口测试用例

闲话休扯&#xff0c;上需求&#xff1a;自动读取、执行excel里面的接口测试用例&#xff0c;测试完成后&#xff0c;返回错误结果并发送邮件通知。 分析&#xff1a; 1、设计excel表格 2、读取excel表格 3、拼接url&#xff0c;发送请求 4、汇总错误结果、发送邮件 开始实现…

LeetCode24.两两交换链表中的节点

这道题还是比较简单&#xff0c;我看完题目的想法就是借助一个第三变量&#xff0c;来改变两个节点的指针的指向&#xff0c;比如我要改变1和2节点的指向&#xff0c;我用h1表示节点1&#xff0c;我创建一个新的节点ans&#xff0c;先拿ans指向节点2&#xff08;ans.next h1.n…