LeetCode题目笔记——6359. 替换一个数字后的最大差值
创始人
2024-05-26 07:39:50
0

文章目录

    • 题目描述
    • 题目链接
    • 题目难度——简单
    • 方法一:替换
      • 代码/Python
      • 代码优化
    • 总结

题目描述

给你一个整数 num 。你知道 Danny Mittal 会偷偷将 0 到 9 中的一个数字 替换 成另一个数字。

请你返回将 num 中 恰好一个 数字进行替换后,得到的最大值和最小值的差位多少。

注意:

  • 当 Danny 将一个数字 d1 替换成另一个数字 d2 时,Danny 需要将 nums 中所有 d1 都替换成 d2 。
  • Danny 可以将一个数字替换成它自己,也就是说 num 可以不变。
  • Danny 可以将数字分别替换成两个不同的数字分别得到最大值和最小值。
  • 替换后得到的数字可以包含前导 0 。
  • Danny Mittal 获得周赛 326 前 10 名,让我们恭喜他。

 

示例 1:

输入:num = 11891
输出:99009
解释:
为了得到最大值,我们将数字 1 替换成数字 9 ,得到 99899 。
为了得到最小值,我们将数字 1 替换成数字 0 ,得到 890 。
两个数字的差值为 99009 。

示例 2:

输入:num = 90
输出:99
解释:
可以得到的最大值是 99(将 0 替换成 9),最小值是 0(将 9 替换成 0)。
所以我们得到 99 。

 

提示:

  • 1 <= num <= 108

题目链接

题目难度——简单

方法一:替换

  直觉来看,为了得到最大值,我们可以从左往右依次从高位看向地位,把第一个非9数字以及后面的相同数字替换为9就能得到最大值。同样,为了得到最小值,我们可以直接把最高位以及后面和最高位相同的数字都替换为0,就能得到最小值。这样做的前提是本题可以有前导0的存在。

代码/Python

class Solution:def minMaxDifference(self, num: int) -> int:nums = [int(x) for x in str(num)]tmp = nums.copy()tag = 0for n in nums:if n < 9:tag = nbreaknums = [9 if x == tag else x for x in nums]tag = 0for n in tmp:if n > 0:tag = nbreaktmp = [0 if x == tag else x for x in tmp]max_num = int(''.join([str(x) for x in nums]))min_num = int(''.join([str(x) for x in tmp]))return max_num - min_num

在这里插入图片描述
  再多看一眼代码,就会爆炸 ,可以发现有很多可以优化的地方,比如没必要一开始把原数转换成数字列表,完全可以直接用字符串,第二次的循环也没必要。优化一下,就变成:

代码优化

class Solution:def minMaxDifference(self, num: int) -> int:nums = str(num)tag = '0'for n in nums:if n < '9':tag = nbreakmaxx = nums.replace(tag, '9')minn = nums.replace(nums[0], '0')return int(maxx) - int(minn)

总结

  方法一时间复杂度O(N),空间复杂度O(N)。

相关内容

热门资讯

高数和大物是什么梗 高数和大物是什么梗“高数和姿羡大物”是一种网络用语,常用于形容某些学科难度较大,需要花费较多时间和精...
中英科技跌0.76%,成交额8... 2月25日,中英科技跌0.76%,成交额8356.35万元,换手率4.21%,总市值31.46亿元。...
开普检测涨2.87%,成交额1... 2月25日,开普检测涨2.87%,成交额1.69亿元,换手率10.44%,总市值20.88亿元。根据...
威奥股份跌0.89%,成交额5... 2月25日,威奥股份跌0.89%,成交额5259.17万元,换手率1.99%,总市值26.28亿元。...
国机重装涨0.00%,成交额1... 2月25日,国机重装涨0.00%,成交额1.51亿元,换手率0.71%,总市值212.80亿元。根据...
福然德涨1.02%,短期趋势看... 2月25日,福然德涨1.02%,成交额6260.89万元,换手率1.16%,总市值53.87亿元。根...
壶化股份涨5.67%,目前股价... 2月25日,壶化股份涨5.67%,成交额1.87亿元,换手率4.20%,总市值49.16亿元。根据A...
华阳集团涨2.07%,成交额6... 2月25日,华阳集团涨2.07%,成交额6.04亿元,换手率3.19%,总市值191.17亿元。根据...
景津装备跌0.83%,中期趋势... 2月25日,景津装备跌0.83%,成交额5802.81万元,换手率0.61%,总市值95.92亿元。...
沪光股份涨2.35%,成交额2... 2月25日,沪光股份涨2.35%,成交额2.62亿元,换手率1.77%,总市值148.59亿元。根据...
神马电力跌2.76%,成交额1... 2月25日,神马电力跌2.76%,成交额1.52亿元,换手率1.28%,总市值120.21亿元。根据...
国联股份跌1.39%,成交额3... 2月25日,国联股份(维权)跌1.39%,成交额3.38亿元,换手率1.65%,总市值204.06亿...
当过香奈儿模特,坐过牢,76岁... 当过香奈儿模特,坐过牢,76岁的她凭什么靠做家庭主妇狂赚13亿 她从小就出色,一直都是班里的学霸。...
健麾信息跌2.20%,成交额8... 2月25日,健麾信息跌2.20%,成交额8348.63万元,换手率2.64%,总市值31.42亿元。...
柯力传感跌3.53%,短期趋势... 2月25日,柯力传感跌3.53%,成交额38.26亿元,换手率15.85%,总市值234.62亿元。...
朗玛信息:2025年2月20日... 投资者提问:截止2025年2月25日股东人数董秘回答(朗玛信息SZ300288):您好!截至2025...
红塔证券跌1.72%,该股筹码... 2月25日,红塔证券跌1.72%,成交额1.43亿元,换手率0.38%,总市值377.34亿元。根据...
长江有色:25日镍价下跌 ... ccmn沪镍走势:今日午盘后沪期镍下跌,沪期镍主力月2505合约开盘报125590元/吨,盘中最高报...
富森美跌0.44%,中期趋势方... 2月25日,富森美跌0.44%,成交额3427.33万元,换手率0.85%,总市值101.64亿元。...
英飞特跌1.92%,目前股价在... 2月25日,英飞特跌1.92%,成交额2.18亿元,换手率6.19%,总市值47.26亿元。根据AI...