[LeetCode周赛复盘] 第 360 场周赛20230827

news/2023/12/9 16:39:00

[LeetCode周赛复盘] 第 360 场周赛20230827

    • 一、本周周赛总结
    • 2833. 距离原点最远的点
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 2834. 找出美丽数组的最小和
      • 2. 思路分析
      • 3. 代码实现
    • 2835. 使子序列的和等于目标的最少操作次数
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 2836. 在传球游戏中最大化函数值
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 参考链接

一、本周周赛总结

  • 跑路。
  • T1 贪心模拟。
  • T2 原题。
  • T3 贪心。
  • T4 树上倍增。
    在这里插入图片描述

2833. 距离原点最远的点

2833. 距离原点最远的点

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 由于l和r是固定要移动的,那么先把l和r移动完,然后把下划线按照当前方向继续移动就好了。

3. 代码实现

class Solution:def furthestDistanceFromOrigin(self, moves: str) -> int:cnt1 = moves.count('L')cnt2 = moves.count('R')return abs(cnt1 - cnt2) + moves.count('_')

2834. 找出美丽数组的最小和

2834. 找出美丽数组的最小和
在这里插入图片描述

2. 思路分析

  • 和上周k-avoiding数组是同一道题。

3. 代码实现

class Solution:def minimumPossibleSum(self, n: int, target: int) -> int:vis = set()pos = 1s = 0while len(vis) < n:if target - pos not in vis:s += posvis.add(pos)pos += 1return s

2835. 使子序列的和等于目标的最少操作次数

2835. 使子序列的和等于目标的最少操作次数

1. 题目描述

在这里插入图片描述

2. 思路分析

有个结论,对于x=2^k,那么nums中所有<=x的数加起来>=x,则一定能组合出x,否则不能。
  • 按照这个结论,从低位到高位模拟,如果不能组合,则去拆一个更大的数,拆到当前位即可。

3. 代码实现

class Solution:def minOperations(self, nums: List[int], target: int) -> int:if sum(nums)<target:return -1cnt = [0]*32ts = [0]*32for v in nums:cnt[v.bit_length()-1] += 1for i in range(32):if target>>i&1:ts[i] = 1 s = 0ans = 0 for i in range(32):s += cnt[i]<<i if ts[i]:if s >= (1<<i):s -= 1<<i else:j = i+1while not cnt[j]:j += 1while j !=i:cnt[j]-=1j-=1cnt[j]+=2ans += 1return ans

2836. 在传球游戏中最大化函数值

[2836. 在传球游戏中最大化函数值]https://leetcode.cn/problems/maximize-value-of-function-in-a-ball-passing-game/)

1. 题目描述

在这里插入图片描述

2. 思路分析

这题存在O(n)做法,要建立基环树森林,然后从环逆向处理,代码量大,不好写。
  • 由于看到k很大,且能转移,考虑倍增:预处理出从每个位置走k步能得到的分数,然后枚举每个位置即可。
  • 注意分数要加上两端的编号,因此定义f[i][j]为从i位置出发,走2^j步,排除i经过的编号和。
  • 那么f[i][j+1]=f[i][j]+f[p][j],其中p是i走2^j步的位置。

3. 代码实现

class Solution:def getMaxFunctionValue(self, receiver: List[int], k: int) -> int:n = len(receiver)m = k.bit_length()f = [receiver] + [[0]*n for _ in range(m+1)]pa = [receiver] + [[0]*n for _ in range(m+1)]for i in range(m-1):for j in range(n):p = pa[i][j]pa[i+1][j] = pa[i][p]f[i+1][j] = f[i][p] + f[i][j]ans = 0for i,v in enumerate(receiver):s = ifor j in range(k.bit_length()):if k >> j&1:s += f[j][i]i = pa[j][i]ans = max(ans,s)return ans      

参考链接


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

相关文章

Flink的checkpoint是怎么实现的?

分析&回答 Checkpoint介绍 Checkpoint容错机制是Flink可靠性的基石,可以保证Flink集群在某个算子因为某些原因(如 异常退出)出现故障时,能够将整个应用流图的状态恢复到故障之前的某一状态,保证应用流图状态的一致性。Flink的Checkpoint机制原理来自“Chandy-Lamport alg…

PMP项目管理主要学习内容是什么?

PMP项目管理是指根据美国项目管理学会(Project Management Institute&#xff0c;简称PMI)制定的项目管理知识体系和方法论进行项目管理的一种认证。PMP主要关注项目的规划、执行和控制等方面的知识和技能。 下面是PMP项目管理《PMBOK指南》第六版的主要学习内容&#xff1a; …

搭配购买——并查集+01背包

Joe觉得云朵很美&#xff0c;决定去山上的商店买一些云朵。 商店里有 n 朵云&#xff0c;云朵被编号为 1,2,…,n&#xff0c;并且每朵云都有一个价值。但是商店老板跟他说&#xff0c;一些云朵要搭配来买才好&#xff0c;所以买一朵云则与这朵云有搭配的云都要买。但是Joe的钱有…

【LeetCode】剑指 Offer <二刷>(3)

目录 题目&#xff1a;剑指 Offer 06. 从尾到头打印链表 - 力扣&#xff08;LeetCode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 07. 重建二叉树 - 力扣&#xf…

除自身以外数组的乘积

题目链接 除自身以外数组的乘积 题目描述 注意点 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内数组中元素可能为0 解答思路 第一次遍历计算所有元素的乘积&#xff0c;第二次遍历根…

数据库访问性能优化

目录 IO性能分析数据库性能优化漏斗法则1、减少数据访问&#xff08;减少磁盘访问&#xff09;(1) 正确的创建并使用索引索引生效场景索引失效场景判断索引是否生效--执行计划 2、返回更少数据&#xff08;减少网络传输或磁盘访问&#xff09;(1) 数据分页处理(减少行数)客户端…

使用Matplotlib生成gif动图

通过Matplotlib中的animation可以方便的生成动态的画图&#xff0c;示例代码如下 import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as anim# 生成figure和绘画对象 fig plt.figure()plt.xlim([0,2*np.pi]) plt.ylim([-1,1])plt.grid(on)lin…

JavaScript Web APIs - 05 Window对象 、本地存储

Web APIs - 05 文章目录 Web APIs - 05js组成window对象定时器-延迟函数location对象navigator对象histroy对象本地存储&#xff08;今日重点&#xff09;localStorage&#xff08;重点&#xff09;sessionStorage&#xff08;了解&#xff09;localStorage 存储复杂数据类型 综…

JavaScript设计模式(二)——简单工厂模式、抽象工厂模式、建造者模式

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

无涯教程-机器学习 - 箱形图函数

Box和Whisker图(也简称为boxplots)是另一种有用的技术&#xff0c;可用于检查每个属性的分布情况。以下是此技术的特点- 它本质上是单变量的&#xff0c;总结了每个属性的分布。它为中间值(即中位数)画一条线。它将在25&#xff05;和75&#xff05;周围绘制一个框。它还会绘制…

使用dpkg命令离线安装软件包

使用dpkg命令离线安装软件包 有时目标机器处于脱机状态或无法接入公网&#xff0c;无法使用apt命令直接在线安装软件包&#xff0c;这时我们可以借助另一台能联网的机器首先下载软件包以及需要的依赖包&#xff0c;然后将软件包和依赖包全部复制到目标机器上&#xff0c;最后使…

UE5 C++ UGameInstance 功能、作用及应用

# UE5 C UGameInstance 功能及作用 网上有很多文章介绍&#xff0c;例如在游戏中只有一个实例&#xff0c;换关卡不会丢失等。暂时省略。 # UE5 C UGameInstance 应用 ## 应用一&#xff0c;UE5 C UGameInstance 里监听player创建事件 UWebSocketGameInstance.h里的定义 …

OA项目之会议通知(查询是否参会反馈详情)

目录 会议查询 是否参会 反馈详情 讲解思路 会议通知SQL语句分析 反馈详情SQL语句分析 后台代码编写 前端代码编写 效果预览 会议查询 MeetingFeedBack.java package com.zking.oa.model;import org.lisen.mvc.util.AutoIncrement; import org.lisen.mvc.util.…

RSA加密算法

RSA原理 RSA基于一个十分简单的数论事实&#xff1a;将两个大素数相乘十分容易&#xff0c;但想要对其乘积进行因式分解却极其困难&#xff0c;因此可以将乘积公开作为加密密钥&#xff0c;即公钥&#xff0c;而两个大素数组合成私钥。公钥是可发布的供任何人使用&#xff0c;…

python 笔记(2)——文件、异常、面向对象、装饰器、json

目录 1、文件操作 1-1&#xff09;打开文件的两种方式&#xff1a; 1-2&#xff09;文件操作的简单示例&#xff1a; write方法: read方法&#xff1a; readline方法&#xff1a; readlines方法&#xff1a; 2、异常处理 2-1&#xff09;不会中断程序的异常捕获和处理…

【ES6】—类与继承

一、 定义类 class People {constructor (name, age) {this.name namethis.age age}showName () {console.log(this.name)} } let p1 new People(xiaoxiao, 30) console.log(p1) // People {name: xiaoxiao, age: 30}小节&#xff1a; 使用class关键字声明类使用construc…

Linux中的scp指令

在Linux和Unix系统中&#xff0c;scp&#xff08;Secure Copy Protocol&#xff09;是一个用于通过SSH协议进行安全文件传输的命令行实用程序。与传统的cp&#xff08;copy&#xff09;命令不同&#xff0c;scp允许用户在不同的机器之间、或同一台机器的不同位置之间传输文件或…

前端将UTC时间格式转化为本地时间格式~~uniapp写法

UTC时间格式是什么 首先我们先简单的了解一下&#xff1a;UTC时间&#xff08;协调世界时&#xff0c;Coordinated Universal Time&#xff09;使用24小时制&#xff0c;以小时、分钟、秒和毫秒来表示时间 HH:mm:ss.SSSHH 表示小时&#xff0c;取值范围为00到23。mm 表示分钟…

Spark与Flink的区别

分析&回答 &#xff08;1&#xff09;设计理念 1、Spark的技术理念是使用微批来模拟流的计算,基于Micro-batch,数据流以时间为单位被切分为一个个批次,通过分布式数据集RDD进行批量处理,是一种伪实时。 2、Flink是基于事件驱动的&#xff0c;是面向流的处理框架, Flink基于…

word中标题及公式自动编号

word中公式自动编号 1. 实现目标2. 详细步骤2.1 添加自动编号功能2.2 输入标题并编号2.3 新建公式2.3.1 编辑公式2.3.4 公式编号的交叉引用2.3.5 公式位置变动以及更新正文中的编号 在word中自动编号公式一直是一个老大难问题&#xff0c;现在通过总结网友们提供的方法&#xf…
最新文章