LeetCode-1566. 重復至少 K 次且長度為 M 的模式【數組 枚舉】

LeetCode-1566. 重復至少 K 次且長度為 M 的模式【數組 枚舉】

  • 題目描述:
  • 解題思路一:題意就是找出長度為m且連續重復k次的子數組。解題思路就是暴力枚舉加剪枝。
  • 解題思路二:思路差不多
  • 解題思路三:0

題目描述:

給你一個正整數數組 arr,請你找出一個長度為 m 且在數組中至少重復 k 次的模式。

模式 是由一個或多個值組成的子數組(連續的子序列),連續 重復多次但 不重疊 。 模式由其長度和重復次數定義。

如果數組中存在至少重復 k 次且長度為 m 的模式,則返回 true ,否則返回 false 。

示例 1:

輸入:arr = [1,2,4,4,4,4], m = 1, k = 3
輸出:true
解釋:模式 (4) 的長度為 1 ,且連續重復 4 次。注意,模式可以重復 k 次或更多次,但不能少于 k 次。
示例 2:

輸入:arr = [1,2,1,2,1,1,1,3], m = 2, k = 2
輸出:true
解釋:模式 (1,2) 長度為 2 ,且連續重復 2 次。另一個符合題意的模式是 (2,1) ,同樣重復 2 次。
示例 3:

輸入:arr = [1,2,1,2,1,3], m = 2, k = 3
輸出:false
解釋:模式 (1,2) 長度為 2 ,但是只連續重復 2 次。不存在長度為 2 且至少重復 3 次的模式。
示例 4:

輸入:arr = [1,2,3,1,2], m = 2, k = 2
輸出:false
解釋:模式 (1,2) 出現 2 次但并不連續,所以不能算作連續重復 2 次。
示例 5:

輸入:arr = [2,2,2,2], m = 2, k = 3
輸出:false
解釋:長度為 2 的模式只有 (2,2) ,但是只連續重復 2 次。注意,不能計算重疊的重復次數。

提示:

2 <= arr.length <= 100
1 <= arr[i] <= 100
1 <= m <= 100
2 <= k <= 100

解題思路一:題意就是找出長度為m且連續重復k次的子數組。解題思路就是暴力枚舉加剪枝。

class Solution:def containsPattern(self, arr: List[int], m: int, k: int) -> bool:def judge_same(i,j,m):for x,y in zip(range(i,i+m,1),range(j,j+m,1)):if arr[x] != arr[y]: return Falsereturn Truefor i in range(len(arr)-m):flag = 0for j in range(i+m,len(arr)-m+1,m):if j>(i+(k-1)*m): breakif judge_same(i,j,m): flag += 1continueif flag>=k-1: return True                    return False

時間復雜度:O(nmk)
空間復雜度:O(1)

解題思路二:思路差不多

class Solution:def containsPattern(self, arr: List[int], m: int, k: int) -> bool:n = len(arr)for l in range(n - m * k + 1):offset = 0while offset < m * k:if arr[l + offset] != arr[l + offset % m]:breakoffset += 1if offset == m * k:return Truereturn False

時間復雜度:O(nmk)
空間復雜度:O(1)

解題思路三:0


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212305.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212305.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212305.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Numpy數組的去重 np.unique()(第15講)

Numpy數組的去重 np.unique()(第15講) ??????? ??博主 侯小啾 感謝您的支持與信賴。?? ?????????????????????????????????????????????????????????????????????????????????…

Linux權限詳解

Linux權限 文章目錄 Linux權限一、root賬號與普通賬號二、Linux權限管理三、權限權值表示方法四、文件訪問權限的設置方法五、粘滯位六、權限總結 前言&#xff1a; 我們在學習Linux的時候&#xff0c;我們知道在Linux下一切皆文件&#xff0c;而不同的文件對于不同的用戶有不同…

第二十一章總結。。

計算機網絡實現了墮胎計算機間的互聯&#xff0c;使得它們彼此之間能夠進行數據交流。網絡應用程序就是再已連接的不同計算機上運行的程序&#xff0c;這些程序借助于網絡協議&#xff0c;相互之間可以交換數據&#xff0c;編寫網絡應用程序前&#xff0c;首先必須明確網絡協議…

掌握iText:輕松處理PDF文檔-基礎篇

關于iText iText是一個強大的PDF處理庫&#xff0c;可以用于創建、讀取和操作PDF文件。它支持PDF表單、加密和簽署等操作&#xff0c;同時支持多種字體和編碼。maven的中央倉庫中的最新版本是5.X&#xff0c;且iText5不是完全免費的&#xff0c;但是基礎能力是免費使用的&…

2023-12-10 LeetCode每日一題(爬樓梯)

2023-12-10每日一題 一、題目編號 70. 爬樓梯二、題目鏈接 點擊跳轉到題目位置 三、題目描述 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢&#xff1f; 示例 1&#xff1a; 示例 2&#xff1a; 提…

gin投票系統2

投票系統 數據庫的建立 先分析需求&#xff0c;在sql中建立數據庫&#xff0c;關于項目數據庫如何建立可以在“goweb項目創建流程分析中看如何去建表” 成功后目前有四個表&#xff1a; vote&#xff0c;user&#xff0c;vote_opt,vote_opt_user 建立數據庫&#xff0c;可以…

Flink基本轉換算子map/filter/flatmap

map map是大家非常熟悉的大數據操作算子&#xff0c;主要用于將數據流中的數據進行轉換&#xff0c;形成新的數據流。簡單來說&#xff0c;就是一個“一一映射”&#xff0c;消費一個元素就產出一個元素。 我們只需要基于DataStream調用map()方法就可以進行轉換處理。方法需要…

案例026:基于微信小程序的原創音樂系統的設計與實現

文末獲取源碼 開發語言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 數據庫&#xff1a;mysql 5.7 開發軟件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序開發軟件&#xff1a;HBuilder X 小程序…

什么是Restful?

Rest簡介 REST是英文representational state transfer(表象性狀態轉變)或者表述性狀態轉移。Rest是web服務的一種架構風格。使用HTTP,URI,XML,JSON,HTML等廣泛流行的標準和協議。輕量級,跨平臺,跨語言的架構設計。它是一種設計風格,不是一種標準,是一種思想。 Rest架構的主要…

java程序定時器

目錄 1.java定時器原生方法 1.java定時器原生方法 實現每天早上8點執行任務的示例代碼 import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit;public class TimeTest{pub…

汽車網絡安全--關于UN R155認證的思考

1.UN R155概述 2020年6月25日,聯合國頒布了全球首個汽車網絡安全強制性法規 -- UN 155,詳細規定了關于評估網絡安全措施的審核條款、制造商和供應商降低網絡安全風險的方法以及實施風險評估的義務等。 法規適用于與信息安全相關的M類(4輪及以上載客汽車)、N類(四輪載貨汽車)…

SpringBoot項目連接Graylog

直接用logback將控制臺輸出的日志發送到graylog上 1.導入logback依賴 <dependency> <groupId>de.siegmar</groupId> <artifactId>logback-gelf</artifactId> <version>1.1.0</version> </dependency> 2.創建logback-spring.x…

淺談低代碼

低代碼開發是近年來迅速崛起的軟件開發方法&#xff0c;讓編寫應用程序變得更快、更簡單。有人說它是美味的膳食&#xff0c;讓開發過程高效而滿足&#xff0c;但也有人質疑它是垃圾食品&#xff0c;缺乏定制性與深度。你認為低代碼到底是美以下方向僅供參考。味的膳食還是垃圾…

SpringBoot - 四種常見定時器

常見實現方案 Scheduled注解&#xff1a;基于注解Timer().schedule創建任務&#xff1a;基于封裝類Timer線程&#xff1a;使用線程直接執行任務即可&#xff0c;可以與thread、線程池、ScheduleTask等配合使用quartz配置定時器&#xff1a;基于spring的quartz框架 Scheduled注…

golang學習筆記——編寫最簡單的命令行工具

編寫最簡單的命令行工具 用戶輸入bufio 使用go語言編寫最簡單的命令行工具 mkdir hello-cli-demo cd hello-cli-demo # 查看環境變量 go envgo mod初始化 go mod init gitcode.com/m打開vscode&#xff0c;創建main.go package mainimport ("fmt""bufio&qu…

RK3568 CIF和ISP的關聯

1. 引言 在本文檔中&#xff0c;我們將介紹RK3568芯片的CIF&#xff08;Camera Interface&#xff09;和ISP&#xff08;Image Signal Processor&#xff09;模塊。這兩個模塊是RK3568芯片的關鍵組成部分&#xff0c;用于圖像采集和處理。 CIF是一個標準接口&#xff0c;用于…

快速測試 3節點的redis sentinel集群宕機2個節點以后是否仍能正常使用

有同事問我&#xff0c;三個redis sentinel節點&#xff0c;宕機兩個節點以后&#xff0c;是否還能夠正常的通過redis sentinel正常訪問redis的數據。我想了想&#xff0c;理論上是可以的&#xff0c;但是我沒試過&#xff0c;今天有時間就測試了一下。搭建環境和測試代碼的過程…

Java并發(十七)----變量的線程安全分析

1、成員變量和靜態變量是否線程安全 如果它們沒有共享&#xff0c;則線程安全 如果它們被共享了&#xff0c;根據它們的狀態是否能夠改變&#xff0c;又分兩種情況 如果只有讀操作&#xff0c;則線程安全 如果有讀寫操作&#xff0c;則這段代碼是臨界區&#xff0c;需要考慮線…

深入了解Python pydash庫

更多資料獲取 &#x1f4da; 個人網站&#xff1a;ipengtao.com 在數據處理和分析領域&#xff0c;Python一直是一種強大的編程語言。然而&#xff0c;在處理大規模數據集和執行復雜操作時&#xff0c;有時候需要更高效的工具。在本文中&#xff0c;我們將深入探討pydash庫&am…

語義分割 簡介及數據集簡介

參考文章 MS COCO數據集介紹以及pycocotools簡單使用-CSDN博客