LeetCode笔记:Weekly Contest 342

news/2024/11/30 2:33:19/
  • LeetCode笔记:Weekly Contest 342
    • 1. 题目一
      • 1. 解题思路
      • 2. 代码实现
    • 2. 题目二
      • 1. 解题思路
      • 2. 代码实现
    • 3. 题目三
      • 1. 解题思路
      • 2. 代码实现
    • 4. 题目四
      • 1. 解题思路
      • 2. 代码实现
  • 比赛链接:https://leetcode.com/contest/weekly-contest-342

1. 题目一

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

  • 2651. Calculate Delayed Arrival Time

1. 解题思路

这一题没啥好说的,就是相加之后对24进行一下求余即可。

2. 代码实现

给出python代码实现如下:

class Solution:def findDelayedArrivalTime(self, arrivalTime: int, delayedTime: int) -> int:return (arrivalTime + delayedTime) % 24

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

2. 题目二

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

  • 2652. Sum Multiples

1. 解题思路

这一题其实可以用容斥原理加等差数列求和公式求得更快速一些,不过这里我就偷了个懒,直接做了个循环拉倒了……

2. 代码实现

给出python代码实现如下:

class Solution:def sumOfMultiples(self, n: int) -> int:res = 0for i in range(1, n+1):if i % 3 == 0 or i % 5 == 0 or i % 7 == 0:res += ireturn res

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

3. 题目三

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

  • 2653. Sliding Subarray Beauty

1. 解题思路

这题我们就是用一个滑动窗口进行扫描即可,在滑动窗口当中,我们仅按大小排序保留负数即可。

2. 代码实现

给出python代码实现如下:

class Solution:def getSubarrayBeauty(self, nums: List[int], k: int, x: int) -> List[int]:s = []res = []n = len(nums)for i in range(k):if nums[i] < 0:bisect.insort(s, nums[i])if len(s) >= x:res.append(s[x-1])else:res.append(0)for j in range(k, n):# print(nums, n, j)if nums[j] < 0:bisect.insort(s, nums[j])if nums[j-k] < 0:s.pop(bisect.bisect_left(s, nums[j-k]))if len(s) >= x:res.append(s[x-1])else:res.append(0)return res

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

4. 题目四

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

  • 2654. Minimum Number of Operations to Make All Array Elements Equal to 1

1. 解题思路

这题挺伤心的,因为一开始没想出来,后来看了答案简直吐血……

这道题很显然的要想全变为1,那么必然要经过一系列变换之后使得相邻两数没有公因子,或者说互质,此时就可以将其中一个变为1,此时其他的数必然也能变为1。

当然,如果原数组当中本就有1的话就更方便了。

不过,我当时没想到的是,要想最快速的是一个数变为1,必然是一系列针对连续数的操作,这个可以用反证法快速说明的。

因此,我们用一个二重循环事实上就能够快速地得到我们的答案了。

2. 代码实现

给出python代码实现如下:

class Solution:def minOperations(self, nums: List[int]) -> int:if 1 in nums:return len(nums) - nums.count(1)n = len(nums)res = n + 1for i in range(n-1):d, cnt = nums[i], 0for j in range(i+1, n):d = gcd(d, nums[j])cnt += 1if d == 1:breakif d == 1:res = min(res, cnt)return -1 if res == n+1 else n + res - 1

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


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

相关文章

Pony ORM使用完整教程【附截图】

Pony ORM是一个Python的ORM框架&#xff0c;使用简单&#xff0c;支持多种数据库&#xff0c;如SQLite&#xff0c;MySQL和PostgreSQL等&#xff0c;可以通过Python代码与数据库交互。 下面是使用Pony ORM的完整教程&#xff1a; 安装 使用以下命令安装Pony ORM&#xff1a;…

【设计模式】七大设计原则--------单一职责原则

文章目录 1.案例1.1 原始案例1.2 改进一&#xff1a;类上遵循单一职责原则1.3 改进二&#xff1a;方法上遵循单一职责原则 2.小结 1.案例 1.1 原始案例 package com.sdnu.principle.singleresponsibility; //客户端 public class singleResponsibility {public static void m…

LeetCode——链表简单题题解

83. 删除排序链表中的重复元素 题目描述 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 输入&#xff1a;head [1,1,2] 输出&#xff1a;[1,2] 解题思路&#xff1a;用一个指向节点类型的指针保…

带你搞懂人工智能、机器学习和深度学习!

不少高校的小伙伴找我聊入门人工智能该怎么起步&#xff0c;如何快速入门&#xff0c;多长时间能成长为中高级工程师&#xff08;聊下来感觉大多数学生党就是焦虑&#xff0c;毕业即失业&#xff0c;尤其现在就业环境这么差&#xff09;&#xff0c;但聊到最后&#xff0c;很多…

学系统集成项目管理工程师(中项)系列13a_人力资源管理(上)

1. 基本情况 1.1. 项目团队成员的特征 1.1.1. 高学历、高素质、流动性强、年轻、个性独立 1.2. IT行业的显著特征 1.2.1. 工作强度大 1.3. 绩效评定、招聘、留用、劳工关系、健康与安全规定及其他与管理人力资源有关的技能 1.4. 项目团队成员是项目的人力资源 1.5. 项目…

误操作清空了回收站文件如何找到文件

我们在删除文件的时候&#xff0c;文件都是先跑到回收站里的&#xff0c;这样的防止我们出现误删的情况&#xff0c;但往往也会出现我们要恢复删除的文件却误操作清空了回收站的情况&#xff0c;那么误操作清空了回收站如何找到呢&#xff0c;下面小编给大家分享误操作清空了回…

开放式基金净值估算数据 API 数据接口

开放式基金净值估算数据 API 数据接口 全量基金数据&#xff0c;实时数据&#xff0c;所有基金数据。 1. 产品功能 返回实时开放式基金净值估值可定义所有基金估值数据&#xff1b;多个基金属性值返回&#xff1b;多维指标&#xff0c;一次查询毫秒级返回&#xff1b;数据持续…

如何使用Swift快速集成环信IM iOS SDK并实现单聊

本文介绍如何使用swift快速集成环信即时通讯 IM iOS SDK 实现单聊。 前提条件 • Xcode (推荐最新版本)。 • 安装 iOS 10.0 或更高版本的 iOS 模拟器或 Apple 设备。 • CocoaPods 1.10.1 或更高版本。 • 有效的环信即时通讯 IM 开发者账号&#xff08;注册环信账号&#x…