代码随想录算法训练营第三十七天|738.单调递增的数字 714. 买卖股票的最佳时机含手续费 968.监控二叉树

738.单调递增的数字

链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

细节:

这个题意是很简单的,拿到题目就会有一个思路,就是沿着给定的数字往下判断就可以了,这其实是一种暴力解法,对java语言来说会超出时长。所以应该使用其他方法

        本题要求的是小于等于N的最大单调递增的正数,要明白一种情况:一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增),首先想让strNum[i - 1]--,然后strNum[i]给为9
        比如:332 ,后面的32是不满足的,那就将2变成9,前面的3减一变成2。
                  成为了329,其实中间的331,330,也都是不满足的
                  此时前面的32也是不满足的,那就将2变成9,前面的3减一变成2.
                  成为了299

        所以这道题目的局部最优是:遇到strNum[i - 1] > strNum[i]的情况,让strNum[i - 1]--,然后strNum[i]给为9,可以保证这两位变成最大单调递增整数

        全局最优是:得到小于等于N的最大单调递增的整数

        可以从局部最优可以推出全局最优,但是还存在一个问题,那就是对数字的遍历顺序,是从前向后遍历呢,还是从后向前遍历呢

        还是以332为例:
        从前向后遍历,33 是满足条件的,32是不满足条件的,改成29,最终是329,是不可以的,所以从前向后遍历会改变已经遍历过的结果了,就会造成不准确
        从后向前遍历,32是不满足情况的,改成29,为329,接下来,32是不满足情况的,改成29,最终是299,所以从后向前遍历,是可以不断利用上次比较出的结果的

        所以这道题目要想清楚两件事:
                1、贪心思路在哪里:怎么保证局部最优,这个是不好想到的
                2、选择哪种遍历顺序                 
原文链接:https://blog.csdn.net/m0_62575233/article/details/127898036

class Solution {public int monotoneIncreasingDigits(int n) {// 将数组转换成字符串String s = String.valueOf(n);// 将字符串转换成字符数组char[] chars = s.toCharArray();int start = s.length();for (int i = s.length() - 2; i >= 0; i--) {if (chars[i] > chars[i + 1]) {chars[i]--;start = i + 1;}}for (int i = start; i < s.length(); i++) {chars[i] = '9';}return Integer.parseInt(String.valueOf(chars));}
}

714. 买卖股票的最佳时机含手续费

链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

细节:太难跳过

968.监控二叉树

链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

细节:太难跳过

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

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

相关文章

软考 系统分析师系列知识点之企业资源规划和实施(3)

接前一篇文章&#xff1a;软考 系统分析师系列知识点之企业资源规划和实施&#xff08;2&#xff09; 所属章节&#xff1a; 第7章. 企业信息化战略与实施 第5节. 企业资源规划和实施 7.5.2 ERP的开发方法 目前&#xff0c;ERP供应商众多&#xff0c;各自的系统都有其自身的特…

渗透测试—信息收集

渗透测试—信息收集 1. 收集域名信息1.1. 域名注册信息1.2. SEO信息收集1.3. 子域名收集1.3.1. 在线子域名收集1.3.2. 子域名收集工具 1.4. 域名备案信息1.5. ICP备案号查询1.6. SSL证书查询 2. 收集真实IP2.1. 超级ping2.2. Ping2.3. CDN绕过 3. 收集旁站或C段IP3.1. 旁站或C段…

Nginx-----------高性能的 Web服务端 location 优先级(二)

一、event事件 events {worker_connections 65536; #设置单个工作进程的最大并发连接数use epoll;#使用epoll事件驱动&#xff0c;Nginx支持众多的事件驱动&#xff0c;比如:select、poll、epoll&#xff0c;只能设置在events模块中设置。accept_mutex on; #on为同一时刻一个…

学习笔记-Git

Git 问题一描述解决方法注意事项 问题一 描述 在commit和push的时候因为网络太慢了中途强行关闭了进程&#xff0c;而push的内容因为文件过大导致无法正常push 按照原本的流程在push的时候会提示失败&#xff0c;并且需要在解决了大文件之后重新push 而因为中途中断了&#x…

自动化开展思路

自动化开展思路 本人在公司一直从事自动化测试推进工作&#xff0c;最近在好友的邀请下去其就职的公司分享如何开展自动化测试&#xff01; 希望能帮其解决如下几个痛点&#xff1a; 1.上线周期长&#xff1b; 2.测试时间紧张&#xff0c;上线信心不足&#xff0c;测试覆盖…

history of philosophy, i guess (history of all ideas)

URL Epistemology “What can I be 100% certain of if I doubt everything?” I think, therefore I am I am finite/limited this implies that the infinite exists that which is infinite in every way is God If God is infinitely good, he wouldn’t deceive me. II…

异常统一处理:BusinessException(自定义业务异常)

一、引言 本篇内容是“异常统一处理”系列文章的重要组成部分&#xff0c;主要聚焦于对 BusinessException 的原理解析与异常处理机制&#xff0c;并给出测试案例。 关于 全局异常统一处理 的原理和完整实现逻辑&#xff0c;请参考文章&#xff1a; 《SpringBoot 全局异常统一…

云性能测试方法:优化应用性能的关键步骤

随着云计算的普及和应用程序的不断发展&#xff0c;对于云平台上应用程序性能的测试变得愈发重要。云性能测试方法是评估应用程序在云环境中的性能表现并识别改进机会的关键步骤之一。在本文中&#xff0c;我们将探讨云性能测试的方法和步骤&#xff0c;以帮助开发人员和测试人…

挑战杯 基于人工智能的图像分类算法研究与实现 - 深度学习卷积神经网络图像分类

文章目录 0 简介1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径&#xff0c;图像尺寸&#xff0c;数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…

刷题第一天

代码随想录刷题第一天 | 704. 二分查找&#xff0c;27. 移除元素 704. 二分查找收获 27. 移除元素收获 704. 二分查找 题目链接&#xff1a;二分查找 这里使用二分法有前提就是得是有序数组&#xff0c;而且还得是无重复的数字&#xff0c;如果有重复的数字&#xff0c;二分…

使用Templ进行Go模板化

使用Templ在Go项目中高效生成动态内容的指南 动态内容生成是Web开发的一个基本方面。无论您是在构建网站、Web应用程序还是API&#xff0c;根据数据和模板生成动态内容的能力都至关重要。在Go编程世界中&#xff0c;一个名为“Templ”的强大工具简化了这一过程。在这份全面的指…

有多少因数

输入1正整数N的整数&#xff0c;求有多少正整数可以整除N&#xff08;即因数个数&#xff09;。 输入格式 一行1个正整数&#xff1a;N&#xff0c;范围在[1,10000]。 输出格式 一个正整数。 输入/输出例子1 输入&#xff1a; 12 输出&#xff1a; 6 解释&#xff1a;有1…

Query Rewrite —— 基于大模型的query扩展改写,PRF(论文)

本文介绍了一篇典型的 PRF &#xff08;Pseudo-relevance feedback &#xff09;思路的论文&#xff0c;用于利用LLM来做query改写&#xff0c;提升召回率&#xff0c;召回效果。 论文地址&#xff1a;Large Language Models are Strong Zero-Shot Retriever 一、PRF的流程 如…

DPDK应该如何入门学习?

01 写在前面 我的读者当中应该有一部分人是做 DPDK 相关的&#xff0c;我自己虽然现在已经不做 DPDK 了&#xff0c;但对这块仍然有兴趣&#xff0c;今天这篇文章就来总结下 DPDK 的技术栈。注意&#xff1a;这篇文章是小白文&#xff0c;不适合大神哦。 文章从 DPDK 的产生背…

Qt应用软件【协议篇】MQTT官方源码编译安装

文章目录 QT官方代码选择对应的版本Qt Creator编译代码代码下载与编译安装mqtt命令行方式编译与安装代码示例QT官方代码 https://github.com/qt/qtmqtt/tree/5.15.2 选择对应的版本 我们可以在github上切换分支,切换到我们需要的版本上 Qt Creator编译代码 代码下载与编译…

编程笔记 Golang基础 015 数据类型:布尔类型

编程笔记 Golang基础 015 数据类型&#xff1a;布尔类型 在Go语言中&#xff0c;布尔类型&#xff08;bool&#xff09;是一种基本数据类型&#xff0c;用于表示逻辑值&#xff0c;即真或假、是或否的情况。它主要用于条件判断和逻辑运算。 定义与取值&#xff1a; Go语言中的布…

CSS 常见的 函数属性以及使用注意事项

CSS函数是一种用于简化CSS样式开发的工具&#xff0c;它们允许开发者执行一些特定的操作&#xff0c;如计算、自定义属性等&#xff0c;从而提高代码的可读性和可维护性。以下是CSS函数的一些示例和用法&#xff1a; attr()函数&#xff1a;返回选中元素的属性值。calc()函数&…

【Godot4自学手册】第十五节碰撞层Layer和Mas的使用

上一节中我学习了敌人的攻击&#xff0c;这一节将学习一些碰撞的有关知识。开始今天的学习。 一、碰撞层基本使用知识 在Godot4中的Collsion属性中有Layer和Mask两个属性&#xff0c;用于定义碰撞过滤的重要参数&#xff0c;它们可以允许控制哪些物体可以与该节点进行碰撞检测…

在C++程序中给视频添加文字水印

有时候&#xff0c;我们需要给视频添加文字或水印&#xff0c;用已有的工具当然最简单&#xff0c;但想在自己的应用中&#xff0c;如C应用程序中来实现&#xff0c;如何实现呢&#xff1f; 假设采用FFmpeg库&#xff0c;可通过C二次开发调用实现。当然这个过程还是比较复杂的…

亚信安慧AntDB数据库为实时流数据构筑坚实防线

在数字化浪潮中&#xff0c;企业对实时流数据处理的依赖日益增强。在此背景下&#xff0c;AntDB数据库应运而生&#xff0c;提供一种创新性解决方案&#xff0c;专注于解决实时流数据处理中的数据容灾和一致性问题。AntDB的设计理念是确保在处理高吞吐量的流数据时&#xff0c;…