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

leetcode-3443. K次修改后的最大曼哈顿距离

题目描述

示例输入

解题思路

一开始觉得需要画个找一下灵感因为最难这个k修改修改改在关键地方才能使得最大曼哈顿距离更远所以由于一直想不到k哪里才能合适导致这个题目卡了很久

后面思路换了一下

N,W,S,E划分两个阵营对抗NS对抗WE对抗

这样给定一个字符串永远能够计算字符串结尾部分此时曼哈顿距离多少只需要abs(N-S) + abs(W-E)就可以所谓修改无非S转化N或者N转化S(以纵向为例),使得优势阵营进一步扩大最终导致曼哈顿距离增长阵营已经没有可以转化如果k没有用完剩余修改次数丢掉如果k不够所有阵营转化优势最多只能转换k

由此我们可以题目s进行遍历充分利用k转换这样可以得到每一步曼哈顿距离如果超过记录最大更新遍历之后最大曼哈顿距离就是结果

我愿意将此题称之为见风使舵!!!

代码

class Solution {
public:int maxDistance(string s, int k) {int N=0,S=0,W=0,E=0,Max_ = 0,Max_NS,Max_WE,Min_NS,Min_WE,add,tmp;for(int i = 0; i < s.size(); i++){if(s[i] == 'N') N++;else if(s[i] == 'S') S++;else if(s[i] == 'W') W++;else E++;
		Max_NS = max(N,S);
		Min_NS = min(N,S);
		Max_WE = max(W,E);
		Min_WE = min(W,E);
		add = k > (Min_WE + Min_NS) ? (Min_WE + Min_NS) : k;
		tmp = (Max_NS + Max_WE + 2 * add - (Min_NS + Min_WE));if(tmp > Max_) Max_ = tmp;}return Max_;}
};

相关文章:

  • Vue 滑动验证组件
  • OPENGLPG第九版学习 - 纹理与帧缓存 part1
  • conda导出环境文件requirements.txt
  • Python OpenCV 模板匹配的一些应用场景和方法思考,浅析KAZE特征匹配对比
  • Odoo 18进阶开发:打造专业级list,kanban视图Dashboard
  • Cmake入门及CMakeLists.txt 语法介绍
  • 数据库从零开始:MySQL 中的 DDL 库操作详解【Linux版】
  • 服务网格安全(Istio)从入门到实践
  • 电子电气架构 --- 软件供应商如何进入OEM体系
  • 频繁操作Json嵌套数据PostgreSQL配合JSON操作工具类+sql
  • 最小化联邦平均(FedAvg)的算法开销
  • Apipost 签约锐捷网络:AI赋能,共推 ICT 领域 API 生态智能化升级
  • 算法第38天|322.零钱兑换\139. 单词拆分
  • FTTR+软路由网络拓扑方案
  • LVS vs Nginx 负载均衡对比:全面解析
  • 【分布式】基于Dubbo实现对远程调用接口的封装
  • 数据结构第八章(六)-置换选择排序和最佳归并树
  • 企业实践 | 银河麒麟KylinOS-V10(SP3)高级服务器操作系统基础安装指南
  • cusor资源管理器缩进调整与工具条竖着摆放
  • 电子制造智能化转型:MES如何解决工艺复杂、质量追溯与供应链协同
  • 开一家做网站的公司/百度搜索关键词排名优化技术
  • 可以做词云的网站/推广营销软件app
  • 做网站管理好吗/品牌广告策划方案
  • 免费织梦网站源码下载/搜了网推广效果怎么样
  • 做网站找外包公司要要搞清楚什么/seo在线培训机构
  • 做网站批发利润怎么样/如何制作一个网页