D360周赛复盘:模拟(思维题目)⭐⭐+贪心解决可能的最小和(类似上次)

2023-11-18

2833.距离原点最远的点

给你一个长度为 n 的字符串 moves ,该字符串仅由字符 'L''R''_' 组成。字符串表示你在一条原点为 0 的数轴上的若干次移动。

你的初始位置就在原点(0),第 i 次移动过程中,你可以根据对应字符选择移动方向:

  • 如果 moves[i] = 'L'moves[i] = '_' ,可以选择向左移动一个单位距离
  • 如果 moves[i] = 'R'moves[i] = '_' ,可以选择向右移动一个单位距离

移动 n 次之后,请你找出可以到达的距离原点 最远 的点,并返回 从原点到这一点的距离

示例 1:

输入:moves = "L_RL__R"
输出:3
解释:可以到达的距离原点 0 最远的点是 -3 ,移动的序列为 "LLRLLLR" 。

示例 2:

输入:moves = "_R__LL_"
输出:5
解释:可以到达的距离原点 0 最远的点是 -5 ,移动的序列为 "LRLLLLL" 。

示例 3:

输入:moves = "_______"
输出:7
解释:可以到达的距离原点 0 最远的点是 7 ,移动的序列为 "RRRRRRR" 。

提示:

  • 1 <= moves.length == n <= 50
  • moves 仅由字符 'L''R''_' 组成

思路

  • L_count > R_count 时,字符串中向左的移动比向右的多。而每个 _ 可以视为一个“自由移动”,它可以选择向左或向右移动。为了到达原点最远的距离,所有的 _都应该选择向左移动。所以,abs(L_count - R_count) + _count 就是最远的距离。

这个解法的核心思想是,为了达到最远的距离,应该尽可能地选择一个方向移动。

完整版

  • 因为需要移动n次,所有的移动字符都需要被遍历。因此,我们需要将L的总数与R的总数相减,再加上自由步数。
class Solution {
public:
    int furthestDistanceFromOrigin(string moves) {
        int L_count = count(moves.begin(),moves.end(),'L');
        int R_count = count(moves.begin(),moves.end(),'R');
        int _count = count(moves.begin(),moves.end(),'_');
        return abs(L_count-R_count)+_count;
    }
};

2834.找出美丽数组的最小和

给你两个正整数:ntarget

如果数组 nums 满足下述条件,则称其为 美丽数组

  • nums.length == n.
  • nums 由两两互不相同的正整数组成。
  • 在范围 [0, n-1] 内,不存在 两个 不同 下标 ij ,使得 nums[i] + nums[j] == target

返回符合条件的美丽数组所可能具备的 最小 和。

示例 1:

输入:n = 2, target = 3
输出:4
解释:nums = [1,3] 是美丽数组。
- nums 的长度为 n = 2 。
- nums 由两两互不相同的正整数组成。
- 不存在两个不同下标 i 和 j ,使得 nums[i] + nums[j] == 3 。
可以证明 4 是符合条件的美丽数组所可能具备的最小和。

示例 2:

输入:n = 3, target = 3
输出:8
解释:
nums = [1,3,4] 是美丽数组。 
- nums 的长度为 n = 3 。 
- nums 由两两互不相同的正整数组成。 
- 不存在两个不同下标 i 和 j ,使得 nums[i] + nums[j] == 3 。
可以证明 8 是符合条件的美丽数组所可能具备的最小和。

示例 3:

输入:n = 1, target = 1
输出:1
解释:nums = [1] 是美丽数组。

提示:

  • 1 <= n <= 105
  • 1 <= target <= 105

思路

本题就和上次周赛的贪心很像了,求得也是可能的最小和,所以需要从最小的数字开始取!

完整版

和上次周赛代码基本相同,求的都是可能的最小和问题。

class Solution {
public:
    long long minimumPossibleSum(int n, int target) {
        set<long long>used;
        int cur = 1;
        long long sum=0;
        for(int i=1;i<=n;i++){
            while(used.count(cur)||used.count(target-cur)){
                cur++;
            }
            used.insert(cur);
            sum+=cur;
        }
        return sum;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

D360周赛复盘:模拟(思维题目)⭐⭐+贪心解决可能的最小和(类似上次) 的相关文章

  • 将处理后的图形绘制到另一个图形中

    我想将一个经过处理的图形绘制到另一个图形中 I have two graphics var gHead Graphics FromImage h var gBackground Graphics FromImage b Transform
  • MEX 文件中的断言导致 Matlab 崩溃

    我正在使用mxAssert 宏定义为matrix h在我的 C 代码中 mex 可以完美编译 当我调用的 mex 代码中违反断言时 该断言不会导致我的程序崩溃 而是导致 Matlab 本身崩溃 我错过了什么吗 这是有意的行为吗 当我查看 M
  • 如何进行带有偏差的浮点舍入(始终向上或向下舍入)?

    我想以偏置舍入浮动 要么总是向下 要么总是向上 代码中有一个特定的点 我需要这个 程序的其余部分应该像往常一样四舍五入到最接近的值 例如 我想四舍五入到最接近的 1 10 倍数 最接近 7 10 的浮点数约为 0 69999998807 但
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • VS30063:您无权访问 https://dev.azure.com

    我正在尝试在 asp net core 2 1 mvc 应用程序中使用以下代码连接 Azure DevOps Uri orgUrl new Uri https dev azure com xxxxx String personalAcces
  • 如何用 kevent() 替换 select() 以获得更高的性能?

    来自Kqueue 维基百科页面 http en wikipedia org wiki Kqueue Kqueue 在内核和用户空间之间提供高效的输入和输出事件管道 因此 可以修改事件过滤器以及接收待处理事件 同时每次主事件循环迭代仅使用对
  • 转到 C# WPF 中的第一页

    我正在 WPF 中使用导航服务 为了导航到页面 我使用 this NavigationService Navigate new MyPage 为了返回我使用 this NavigationService GoBack 但是如何在不使用的情况
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • 事件日志写入错误

    很简单 我想向事件日志写入一些内容 protected override void OnStop TODO Add code here to perform any tear down necessary to stop your serv
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 无法使用 Ninject 将依赖项注入到从 Angular 服务调用的 ASP.NET Web API 控制器中

    我将 Ninject 与 ASP NET MVC 4 一起使用 我正在使用存储库 并希望进行构造函数注入以将存储库传递给其中一个控制器 这是实现 StatTracker 接口的上下文对象 EntityFramework public cla
  • 我应该在应用程序退出之前运行 Dispose 吗?

    我应该在应用程序退出之前运行 Dispose 吗 例如 我创建了许多对象 其中一些对象具有事件订阅 var myObject new MyClass myObject OnEvent OnEventHandle 例如 在我的工作中 我应该使
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • 为什么 Ajax.BeginForm 在 Chrome 中不起作用?

    我正在使用 c NET MVC2 并尝试创建一个 ajax 表单来调用删除数据库记录 RemoveRelation 的方法 删除记录的过程正在按预期进行 删除记录后 表单应调用一个 JavaScript 函数 从视觉效果中删除该记录 Rem
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens

随机推荐

  • JavaScript一种将数据库记录建立层级关系的处理方法

    JavaScript一种将数据库记录建立层级关系的处理方法 背景 方案 提示 背景 项目开展中 有些数据往往具有层级关系 在数据中用ID Parent来标示 那么在前端如何有效的还原这种层级关系 而其是很多层级的情况 方便的将数据加载的树
  • c#处理3种json数据的实例介绍

    这篇文章主要介绍了c 处理包含数组 对象的复杂json数据的方法 需要的朋友可以参考下 网络中数据传输经常是xml或者json 现在做的一个项目之前调其他系统接口都是返回的xml格式 刚刚遇到一个返回json格式数据的接口 通过例子由易到难
  • Linux安装iptables 替换firewall

    1 查看当前防火墙状态 systemctl status firewalld service 2 关闭防火墙 并查看防火墙状态 systemctl stop firewalld service 停止firewall 3 禁止防火墙开机启动
  • Springboot项目在Jenkins+Docker中实现自动化部署

    Springboot项目在Jenkins Docker中实现自动化部署 一 环境准备 1 项目开发环境 2 Jenkins docker运行环境 二 Docker安装 三 Jenkins安装 四 创建一个Springboot项目 1 使用I
  • 太突然!北大方正破产了!负债3029亿元!

    点击上方 Python高校 关注 未未干货立马到手 来源 中国基金报 chinafundnews 记者 乔麦 体量超3000亿的中国最大校企方正集团 债务危机迎来新进展 日前 方正集团旗下6家上市公司齐发提示性公告表示 北京银行申请对方正集
  • Tomcat调优【精简版】

    Tomcat调优 优化Tomcat内存分配 调整Tomcat启动脚本contalina sh 设置tomcat启动时分配的内存很可使用的最大内存 CATALINA OPTS 调整Tomcat线程池 Tomcat默认使用的线程池 Thread
  • Mysql中符号@的作用

    select a 变量名 如果你不加的话 会认为这是一个列名 但是这列不存在 就报错了 变量名 定义一个用户变量 对该用户变量进行赋值 用户变量赋值有两种方式 一种是直接用 号 另一种是用 号 其区别在于 使用set命令对用户变量进行赋值时
  • Premiere Pro CC2019安装资料及安装教程

    简介 Adobe Premiere是一款常用的视频编辑软件 由Adobe公司推出 现在常用的版本有CS4 CS5 CS6 CC 2014 CC 2015 CC 2017 CC 2018以及CC 2019版本 Adobe Premiere是一
  • Kafka 顺序消费方案

    Kafka 顺序消费方案 前言 1 问题引入 2 解决思路 3 实现方案 前言 本文针对解决Kafka不同Topic之间存在一定的数据关联时的顺序消费问题 如存在Topic insert和Topic update分别是对数据的插入和更新 当
  • applicationcontext in module file is included in 5 contexts的解决方式

    有时候IDEA会出现这样的情况 明明敲得挺好的代码却莫名其妙的出现这个错误 然后自己这个错误出现几次了 所以我要把它记录下来 让我们把他解决吧 1 file project Structure 2 Modules Spring 先把所有的
  • Java开发Telegram机器人

    基于springboot在 pom 中添加
  • Android webview显示电脑版网页

    第一步获取webview的setting 同时进行配置 settings webView getSettings settings setCacheMode WebSettings LOAD NO CACHE 支持js settings s
  • Python发送电子邮件的几种方式介绍

    发送电子邮件是Python中常见的任务之一 可以用于自动化发送通知 报表以及其他与邮件相关的任务 Python提供了几种方式来发送电子邮件 本文将介绍其中的三种常用方式 使用smtplib库 使用email库和使用第三方库 使用smtpli
  • 小程序云开发攻略,解决最棘手的问题

    背景 最近小程序非常的火 应公司业务发展要求 开发维护了几款小程序 公司开发的小程序都是由后端提供的接口 开发繁琐而复杂 直到小程序出现了云开发 仔细研读了文档之后 欣喜不已 于是我着手开发了本人的第一款小程序 小程序云开发教程地址 点我查
  • 【线性表】最常用的数据结构:线性表

    线性表 Linear List 是 最常用且 最简单的一种数据结构 有数据库知识的同学应该比较了解 线性表的定义 线性表是由n n 0 个 数据元素 结点 a 1 a 2 a n组成的有限序列 数据元素的个数n定义为表的长度 n 0时称为空
  • linux 检查程序所需库,查看命令运行所需要的库支持

    问题 我想知道当我调用一个特定的可执行文件在运行时载入了哪些共享库 是否有方法可以明确Linux上可执行程序或运行进程的共享库依赖关系 查看可执行程序的共享库依赖关系 要找出某个特定可执行依赖的库 可以使用ldd命令 这个命令调用动态链接器
  • ImportError: liblapack.so.3: cannot open shared object file: No such file or directory

    如果用的是conda的话 尝试一下 conda install c conda forge liblapack
  • 【操作教程】EasyNVR平台如何接入硬盘录像机?

    EasyNVR是基于RTSP Onvif协议接入的视频平台 可支持将前端设备的音视频进行采集 传输 处理并分发 实现视频监控直播 云端录像 云存储 检索回看 国标级联 告警等视频能力 平台兼容性高 可拓展性强 性能稳定 可应用在智慧工地 智
  • Failed to create the Java Virtual Machine问题解决

    问题现象 打开eclipse exe 弹出如下对话框 问题分析 这是eclipse启动初始化时报的错 一般出现这种情况跟安装了多个Java虚拟机有关 然后eclipse启动的时候 不知道要配置哪一个JDK 所以会报Failed to cre
  • D360周赛复盘:模拟(思维题目)⭐⭐+贪心解决可能的最小和(类似上次)

    文章目录 2833 距离原点最远的点 思路 完整版 2834 找出美丽数组的最小和 思路 完整版 2833 距离原点最远的点 给你一个长度为 n 的字符串 moves 该字符串仅由字符 L R 和 组成 字符串表示你在一条原点为 0 的数轴