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

LeetCode笔记:Biweekly Contest 98

  • LeetCode笔记:Biweekly Contest 98
    • 1. 题目一
      • 1. 解题思路
      • 2. 代码实现
    • 2. 题目二
      • 1. 解题思路
      • 2. 代码实现
    • 3. 题目三
      • 1. 解题思路
      • 2. 代码实现
    • 4. 题目四
  • 比赛链接:https://leetcode.com/contest/biweekly-contest-98

1. 题目一

给出题目一的试题链接如下:

  • 2566. Maximum Difference by Remapping a Digit

1. 解题思路

这一题思路上比较直接,就是分别找到最大和最小的变换数字,然后求差即可。

而要获得最大/最小的数,只需要把从头开始的第一个不是9/0的数字全部换为9/0即可。

2. 代码实现

给出python代码实现如下:

class Solution:def minMaxDifference(self, num: int) -> int:s = str(num)def replace(s, tgt):src = ""res = []for ch in s:if ch != tgt and src == "":src = chif ch == src:res.append(tgt)else:res.append(ch)return int("".join(res))return replace(s, "9") - replace(s, "0")

提交代码评测得到:耗时40ms,占用内存13.8MB。

2. 题目二

给出题目二的试题链接如下:

  • 2567. Minimum Score by Changing Two Elements

1. 解题思路

这一题要获得所有可能中的最小值,我们只要分别令low和high均能取到最小即可。

事实上,我们总可以令low为0,而要令high最小,其实就是让排序之后的首尾数据差值最小,因此,事实上我们就是比较以下三种情况中的最小值:

  1. 最大元素与第三小元素的差值;
  2. 第二大元素与第二小元素的差值;
  3. 第三大元素与最小元素的差值;

2. 代码实现

给出python代码实现如下:

class Solution:def minimizeSum(self, nums: List[int]) -> int:nums = sorted(nums)return min(nums[-1]-nums[2], nums[-3]-nums[0], nums[-2]-nums[1])

提交代码评测得到:耗时362ms,占用内存26.7MB。

3. 题目三

给出题目三的试题链接如下:

  • 2568. Minimum Impossible OR

1. 解题思路

这一题通过反证法不难证明,最小的无法被构成的数一定是2的幂次方,且其只能靠自己来实现。

因此,我们只需要依序不断的考察2的幂次是否存在于给定的数组当中即可。

2. 代码实现

给出python代码实现如下:

class Solution:def minImpossibleOR(self, nums: List[int]) -> int:nums = set(nums)res = 1for _ in range(32):if res not in nums:return resres *= 2return res

提交代码评测得到:耗时494ms,占用内存30.1MB。

4. 题目四

给出题目四的试题链接如下:

  • 2569. Handling Sum Queries After Update

这一题放弃了,实在是没啥思路,主要是关于第一个操作,对于第二、第三个操作,我们只需要不断地维护一下nums2的数组之和即可,而关于第二个操作,我们事实上就是在nums2原有的和的基础上加上p×∑(n1i)p \times \sum(n_{1i})p×(n1i)

但是问题就是如何在频繁地进行1操作之后能够快速地维护和获取nums1的数据求和,这个暂时没有想到一个很好的思路,就卡在这个里面了……

如果有大佬知道这个问题的解法的话请务必指导一下!

http://www.lryc.cn/news/12796.html

相关文章:

  • HNUCM-《算法分析与设计》期末考试考前复习题
  • 算法导论【分治思想】—大数乘法、矩阵相乘、残缺棋盘
  • Java【七大排序】算法详细图解,一篇文章吃透
  • Autosar OS IOC
  • 记录一次Binder内存相关的问题导致APP被杀的BUG排查过程
  • 设计模式(十)----结构型模式之适配器模式
  • 【数据结构】——队列
  • Android OTA升级常见问题的解决方法
  • 说说Hibernate
  • 目标检测论文阅读:DETR算法笔记
  • Golang sync.Once 源码浅析
  • C++面向对象(上)
  • 经常用但是不知道什么是BFC?
  • GO的临时对象池sync.Pool
  • 高精度算法一
  • 2023年全国最新食品安全管理员精选真题及答案1
  • C++入门:引用
  • SpringSecurity的权限校验详解说明(附完整代码)
  • Java-集合(5)
  • 研制过程评审活动(四)设计定型阶段
  • 【Linux】进程替换
  • LeetCode171-Excel表列序号(进制转换问题)
  • React SSR
  • 如何系统地优化页面性能
  • Vulnhub 渗透练习(八)—— THE ETHER: EVILSCIENCE
  • 华为OD机试题 - 水仙花数 2(JavaScript)| 代码+思路+重要知识点
  • 字符设备驱动基础(二)
  • 看见统计——第三章 概率分布
  • 【基于众包标注的语文教材句子难易度评估研究 论文精读】
  • 实例五:MATLAB APP design-APP登录界面的设计