Leetcode 2963. Count the Number of Good Partitions

  • Leetcode 2963. Count the Number of Good Partitions
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:2963. Count the Number of Good Partitions

1. 解题思路

这一题根据题意,显然我们可以将其先分为 n n n个原子partition,确保任意两个partition之间都不存在相同的元素,且每一个partition都不可再进一步切分。

此时,我们的答案总数就是 2 n − 1 2^{n-1} 2n1

因此,我们剩下的问题就是如何切分最小的原子partition了,而这个用一个滑动窗可即可快速得到,也没啥好多说的了。

2. 代码实现

给出python代码实现如下:

class Solution:def numberOfGoodPartitions(self, nums: List[int]) -> int:MOD = 10**9+7locs = defaultdict(list)for i, x in enumerate(nums):locs[x].append(i)cnt = 0max_loc = 0for i, x in enumerate(nums):if i > max_loc:cnt += 1max_loc = locs[x][-1]else:max_loc = max(max_loc, locs[x][-1])cnt += 1ans = pow(2, cnt-1, mod=MOD)return ans

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/212000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git 常用的使用方法

1.查看分支 $ git branch #查看本地分支 $ git branch -r #查看远程分支 $ git branch -a #查看所有分支 $ git branch -vv #查看本地分支及追踪的分支 2.创建分支 方法1 $ git branch 分支名 #创建本地分支 #将本地分支push,就创建了远程分支方法2 #创建本地分…

载入了名字空间‘htmltools’ 0.5.6,但需要的是>= 0.5.7解决方案

解决方案:删除之前的旧版本安装包,安装新的包 1.卸载之前的安装包 2.关闭R,重新打开 3. # install.packages("htmltools") library(htmltools)

Java 并发编程(一)

1、在 java 中守护线程和本地线程区别? java 中的线程分为两种:守护线程(Daemon)和用户线程(User) 任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);tru…

HarmonyOS学习--了解基本工程目录

1.工程级目录 工程的目录结构如下: 其中详细如下: AppScope中存放应用全局所需要的资源文件。entry是应用的主模块,存放HarmonyOS应用的代码、资源等。oh_modules是工程的依赖包,存放工程依赖的源文件。build-profile.json5是工…

如何找到MACOS系统更新的安装包

首先在应用商店中下载新系统的安装包,然后在设置中不要点安装,会自动跳出安装的界面,不要关闭界面,打开命令行用root权限输入命令cat /var/log/install.log | grep *.dmg, 就会显示 sh-3.2# cat /var/log/install.log …

算法基础十

加一 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 示例 1: 输入:digits [1,2,3] 输出:[1,2,4] 解释:输入数组表…

YOLO_embedded: YOLO算法快速嵌入式部署

YOLO_embedded: YOLO算法快速嵌入式部署 for UbuntuBased on YOLOXOpenVINO & TensorRT 本项目提供c和python两种语言,详情请见各个文件夹下的README.md 安装OpenVINO 点此进入官网选择版本进行下载,然后打开install_openvino.sh将相…

ORACLE 19c 统一恢复处于ASM中的CDB含PDB数据文件到某一个文件目录下面

NOCDB情况下,要把ASM中的文件恢复到文件系统,大家都知道分别设置每个文件的路径即可,但如果是租户环境,每个PDB都有不同路径,而且每个PDB都有SYSTEM,SYSAUX等一些表空降,不可能放在同一个目录中…

Linux_CentOS_7.9 VNC安装卸载以及相关配置开机自启动服务简易记录

VNC安装卸载以及相关配置开机自启动服务: 查看环境:(yum镜像源配置可以参考我之前文章里面有详细参考http://t.csdnimg.cn/mzGoI) [rootorcl238 ~]# rpm -qa | grep vnc ##查看系统现有VNC软件版本 gtk-vnc2-0.7.0-3.el7.x86…

道可云元宇宙每日资讯|青岛市元宇宙领域新产品推介暨产学研对接会举行

道可云元宇宙每日简报(2023年12月7日)讯,今日元宇宙新鲜事有: 青岛市元宇宙领域新产品推介暨产学研对接会举行 为加快推动青岛市元宇宙技术和产业创新,引领下一代互联网发展,青岛市元宇宙领域新产品推介暨…

算法基础九

螺旋矩阵2 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。 示例 1: 输入:n 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 示例 2: 输入:n …

第12节: Vue3 修饰符

如何在UniApp中使用Vue3框架使用修饰符&#xff1a; <template> <view> <button click"toggleVisibility ^ :disabledisDisabled">点击切换显示状态</button> <text>{{ isVisible ? 显示 : 隐藏 }}</text> </view> …

简易加减运算器的制作----数字电路设计(含proteus仿真)

简易加减运算器的制作 一、功能要求—基本功能 1、自制0-9按键&#xff0c;在一个LED数码管上稳定地显示当前按下的值。&#xff08;基本功能&#xff09; 2、增加、两个按键&#xff0c;实现0-9两个一位数的加法运算&#xff0c;同时在两位LED上稳定地显示运算结果。&#…

React中每次渲染都会传入一个新的props.children到子组件?

传入props.children后, 为什么会导致组件的重新渲染&#xff1f; 问题描述 在 react 中, 我想要对组件的渲染进行优化, 遇到了一个非常意思的问题, 当我向一个组件中传入了 props.children 之后, 每次父组件重新渲染都会导致这个组件的重新渲染; 它看起来的表现就像是被memo包…

MTU与MSS

MTU&#xff1a;一个网络包的最大长度&#xff0c;以太网中一般为1500各字节。 MSS&#xff1a;除去头部之后&#xff0c;一个网络包所能容纳的TCP数据的最大长度。 应用程序调用write后&#xff0c;将要发送的数据被交给TCP/IP协议栈进行。 协议栈不关心应用的数据内容&…

四:爬虫-Cookie与Session实战

四&#xff1a;Cookie与Session实战 ​ 在浏览网站的过程中&#xff0c;我们经常会遇到需要登录的情况&#xff0c;有些页面只有登录之后才可以访问。在登录之后可以连续访问很多次网站&#xff0c;但是有时候过一段时间就需要重新登录。还有一些网站&#xff0c;在打开浏览器…

c语言归并排序(详解)

归并排序是一种分治算法&#xff0c;它将列表分割成较小的子列表&#xff0c;然后递归地对子列表进行排序&#xff0c;最后将这些子列表合并以产生已排序的列表。基本概念包括&#xff1a; 分割&#xff1a;将列表分割成较小的子列表&#xff0c;直到子列表的长度为1或0。排序…

Leetcode—219.存在重复元素II【简单】

2023每日刷题&#xff08;五十三&#xff09; Leetcode—219.存在重复元素II 实现代码 class Solution { public:bool containsNearbyDuplicate(vector<int>& nums, int k) {unordered_map<int, int> m;int n nums.size();for(int i 0; i < n; i) {if(m…

vs的生成事件error MSB3073

生成事件设置位于&#xff1a;项目-》属性-》生成事件&#xff1b; 生成事件有&#xff1a;生成前事件、链接前事件、生成后事件 以生成前事件为例&#xff1a;可以用于一些库文件的配置 COPY ..\dll\*.* .\bin\ MKDIR .\bin\libx COPY ..\dll\libx\*.* .\bin\libx这里是在开…

[Decipher@mailfence.com].faust勒索病毒数据怎么处理|数据解密恢复

导言&#xff1a; 在数字世界的边缘&#xff0c;[support2022cock.li].faust、[tsai.shenmailfence.com].faust、[Encrypteddmailfence.com].faust、[backupsairmail.cc].faust、[Deciphermailfence.com].faust勒索病毒如同黑暗的幽灵&#xff0c;威胁着我们珍贵的数字财产。本…