LeetCode题解-2259.移除指定数字得到的最大结果

news/2024/11/29 4:51:19/

这道题是基于一种贪心的思想去做的。
题目里说去掉一位所给的数,使得去掉之后的数值最大,那只要最高的一位数等于题目要求的数且比下一位数小,那么这个数就是我们要去掉的数,此时去掉这个数肯定能保证所得到的数最大,这个也是小编第一遍for循环遍历的作用,如果找到,直接返回即可。
但是如果后面的数都要比要去掉的数小时,那第一层for循环将不起作用,此时就要从后往前找第一个与要去掉的数相等的数,此时就有第二层for循环,找到第一个要删除的数删除即可。
代码中,-'0'这一步是将字符型转成整形,其实不转也可以比较,这一步有点多余,erase这个类方法是删除指定字符,不清楚的友友可以上网自学一下,希望大家从我这篇题解中有所收获

class Solution {
public:string removeDigit(string number, char digit) {int n=number.size();int i;for(i=0;i<n-1;i++){if(number[i]-'0'== digit-'0' && number[i+1]-'0'>digit-'0'){number.erase(i,1);return number;}}for(i=n-1;i>=0;i--){if(number[i]-'0'== digit-'0'){number.erase(i,1);break;}}return number;}
};

 

 

 


http://www.ppmy.cn/news/535553.html

相关文章

leetcode-2259 移除指定数字得到的最大结果

给一个表示某个正整数的字符串 number 和一个字符 digit 。 从 number 中 恰好 移除 一个 等于 digit 的字符后&#xff0c;找出并返回按 十进制 表示 最大 的结果字符串。生成的测试用例满足 digit 在 number 中出现至少一次。 示例 1&#xff1a;输入&#xff1a;number &q…

Leetcode 2259. Remove Digit From Number to Maximize Result

题目 解法1&#xff1a;暴力搜索 note&#xff1a;c中数字组成的字符串可以直接比较大小 class Solution { public:string removeDigit(string number, char digit) {string max_res "";for(int i0;i<number.size();i){char d number[i];if(d ! digit) contin…

c++编译错误:error C2259 能实例化抽象类

错误&#xff1a;error C2259 不能实例化抽象类 原因&#xff1a; 抽象类不能实例化&#xff0c;需要在派生类中实现基类所有定义的虚函数&#xff0c;只要有一个纯虚函数没有定义&#xff0c;那么在派生类还是抽象类。仍然不能实例化。 解决方法&#xff1a; 把父类的虚函…

JDK17 Spring-Security jxb 报错

jdk17 无法解决&#xff1a; java.security.PrivilegedActionException: null at java.base/java.security.AccessController.doPrivileged(AccessController.java:573) ~[na:na] Caused by: java.lang.NoSuchMethodException: sun.misc.Unsafe.defineClass(java.lang.Stri…

【leetcode】2259. 移除指定数字得到的最大结果(js实现)

1. 题目 2259. 移除指定数字得到的最大结果 2. 思路 根据题意进行模拟&#xff0c;每次找到与digit相同的元素就将其移除&#xff0c;将剩余的字符串与存储最大值的字符串进行比较&#xff0c;一直保持max中保存的是最大值&#xff0c;最终将max返回。 3. 代码 /*** para…

❤️2020年CSDN第一名何许人也❤️

❤️强烈推荐人工智能学习网站❤️ CSDN成就了一亿技术人&#xff0c;CSDN圈里都是技术人&#xff0c;故CSDN第一名格外受人关注们今天来看一下。 CSDN有个叫stpeace的&#xff0c;发现他几年霸榜CSDN第一名。 博客详细信息 原创2259篇&#xff0c;访问2224万&#xff0c;实力…

LeetCode 2259. 移除指定数字得到的最大结果

文章目录 1. 题目2. 解题 1. 题目 给你一个表示某个正整数的字符串 number 和一个字符 digit 。 从 number 中 恰好 移除 一个 等于 digit 的字符后&#xff0c;找出并返回按 十进制 表示 最大 的结果字符串。 生成的测试用例满足 digit 在 number 中出现至少一次。 示例 1&…

LeetCode笔记:Weekly Contest 291

LeetCode笔记&#xff1a;Weekly Contest 291 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 1. 解题思路2. 代码实现3. 算法优化 比赛链接&#xff1a;https://leetcode.com/contest/weekly-contest-291/…