leetcode 3201. 找出有效子序列的最大長度 I 中等

給你一個整數數組?nums

nums?的子序列?sub?的長度為?x?,如果其滿足以下條件,則稱其為?有效子序列

  • (sub[0] + sub[1]) % 2 == (sub[1] + sub[2]) % 2 == ... == (sub[x - 2] + sub[x - 1]) % 2

返回?nums?的?最長的有效子序列?的長度。

一個?子序列?指的是從原數組中刪除一些元素(也可以不刪除任何元素),剩余元素保持原來順序組成的新數組。

示例 1:

輸入:?nums = [1,2,3,4]

輸出:?4

解釋:

最長的有效子序列是?[1, 2, 3, 4]

示例 2:

輸入:?nums = [1,2,1,1,2,1,2]

輸出:?6

解釋:

最長的有效子序列是?[1, 2, 1, 2, 1, 2]

示例 3:

輸入:?nums = [1,3]

輸出:?2

解釋:

最長的有效子序列是?[1, 3]

提示:

  • 2 <= nums.length <= 2 * 10^5
  • 1 <= nums[i] <= 10^7

分析:根據題意,最長子序列的組成可能有 3 種情況。1、全是奇數;2、全是偶數;3、奇偶相間。按照這三種情況分別遍歷數組。

情況 1、2 比較簡單。情況 3 可以先從數組開頭開始,檢查每個數與前一個數的奇偶性是否相同,如果不同,則將長度增加 1,否則不加。這樣的得到的三個長度取最大值。

int maximumLength(int* nums, int numsSize) {int cnt[numsSize+5];int t=1,flag=0,even=0,odd=0;if(nums[0]&1)flag=1,cnt[0]=1;else flag=0,cnt[0]=2;for(int i=1;i<numsSize;++i){if((nums[i]&1)==flag)continue;else{if(nums[i]&1)flag=1,cnt[t++]=1;else flag=0,cnt[t++]=2;}}for(int i=0;i<numsSize;++i){if(nums[i]&1)odd++;else even++;}return fmax(t,fmax(even,odd));
}

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

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

相關文章

Java并發編程第三篇(深入解析Synchronized)

1. Synchronized簡介&#xff1a;一個常見的并發“陷阱” 在正式開始學習新知識前&#xff0c;我們不妨先來看一個現象&#xff0c;這是一個很多并發編程新手都會遇到的“陷阱”&#xff1a; public class SynchronizedDemo implements Runnable {// 共享變量private static in…

Chatbox AI|多模型多模態交互+MCP,一個工具打造你的全能私人助手

ChatBoxAI集成GPT-4、Claude等頂尖模型&#xff0c;支持Windows/macOS/Linux多平臺&#xff0c;具備隱私加密、文件智能解析&#xff08;PDF/代碼/圖片&#xff09;及開發者友好特性。其應用覆蓋自媒體創作、代碼實時預覽、AI繪圖&#xff08;封面/表情包&#xff09;及聯網搜索…

在Autodl服務器中使用VNC建立圖形界面

在Autodl服務器中使用VNC建立圖形界面**AutoDL 3D 圖形桌面搭建教程****第一步&#xff1a;安裝桌面和 VNC****第二步&#xff1a;進行一次性配置****第三步&#xff1a;日常啟動與使用**AutoDL 3D 圖形桌面搭建教程 目標: 在你的 AutoDL 環境上&#xff0c;以最少的步驟搭建一…

CD54.【C++ Dev】vector和list的反向迭代器的實現

目錄 1.反向迭代器的功能 2.算法 方法1:新寫一個類用于反向迭代器 方法2:封裝正向迭代器實現反向迭代器 解析operator* 正向迭代器和反向迭代器的關系 返回 *--tmp的原因 3.為自制的vector和list編寫反向迭代器 編寫統一的反向迭代器 修改vector頭文件 修改list頭文…

如何解決pip安裝報錯ModuleNotFoundError: No module named ‘django’問題

【Python系列Bug修復PyCharm控制臺pip install報錯】如何解決pip安裝報錯ModuleNotFoundError: No module named ‘django’問題 摘要 在日常 Django 項目開發中&#xff0c;最常見的“攔路虎”之一就是 ModuleNotFoundError: No module named django。該異常通常在以下場景出…

單頁面和多頁面的區別和優缺點

單頁面應用&#xff08;SPA&#xff09;與多頁面應用&#xff08;MPA&#xff09;的區別單頁面應用&#xff08;SPA&#xff09;整個應用只有一個HTML文件&#xff0c;內容通過JavaScript動態加載和渲染。頁面切換時無需重新加載整個頁面&#xff0c;僅更新部分DOM。依賴前端框…

暑期自學嵌入式——Day05(C語言階段)

接續上文&#xff1a;暑期自學嵌入式——Day04&#xff08;C語言階段&#xff09;-CSDN博客 點關注不迷路喲。你的點贊、收藏&#xff0c;一鍵三連&#xff0c;是我持續更新的動力喲&#xff01;&#xff01;&#xff01; 主頁&#xff1a; 一位搞嵌入式的 genius-CSDN博客 …

通用人工智能AGI遙遙無期,面臨幻滅

通用人工智能AGI有可能2080年前也實現不了 首先說一下&#xff0c;目前的人工智能方向是錯的&#xff0c;通用人工智能不值得追捧。 真的特別無奈&#xff0c;現在還有很多人在吹AI&#xff0c;說什么2027年就能實現AGI&#xff0c;如果你指的是真正的強人工智能AGI&#xff0c…

智能體開發工具鏈全景圖:IDE、調試器與監控平臺

智能體開發工具鏈全景圖&#xff1a;IDE、調試器與監控平臺 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 總有一行代碼&#xff0c;能點亮萬千星辰。 &#x1f50d; 在技術的宇宙中&#xff0c;我愿做永不停歇的探索者。 ? 用代碼丈量世界&…

三十四、【擴展工具篇】JSON 格式化與解析:集成 Monaco Editor 打造在線 JSON 工具

三十四、【擴展工具篇】JSON 格式化與解析:集成 Monaco Editor 打造在線 JSON 工具 前言 功能概覽 技術選型 實現步驟 第一步:添加路由和側邊欄菜單入口 第二步:創建 JSON 工具頁面 第三部分:全面測試與驗證 總結 前言 在日常的接口開發和測試中,我們經常需要處理 JSON 數…

MySQL高可用集群架構:主從復制、MGR與讀寫分離實戰

1. MySQL高可用架構概述 MySQL高可用性(High Availability)解決方案旨在確保數據庫服務在硬件故障、網絡問題等異常情況下仍能持續提供服務。以下是主流的高可用方案對比: 方案 原理 優點 缺點 適用場景 主從復制 基于binlog的異步復制 簡單易用,對性能影響小 數據一致性弱,…

JxBrowser 7.43.5 版本發布啦!

在此版本中&#xff0c;我們進行了錯誤修復和穩定性改進。 &#x1f517; 點擊此處了解更多詳情。 &#x1f193; 獲取 30 天免費試用。

借助AI學習開源代碼git0.7之編譯和使用

如何學習優秀的開源代碼&#xff1f;目前大部分的優秀開源代碼&#xff0c;代碼量都已經非常龐大&#xff0c;比如git。以git為例&#xff0c;git最新版本代碼有279814行&#xff0c; 而git0.7版本已經大部分實現了現在git版本的基本功能&#xff0c;而代碼量卻只有4950行&…

ObservableCollection全面解析

本文僅作為參考大佬們文章的總結。 ObservableCollection是C#中一個功能強大的動態數據集合類&#xff0c;特別適用于需要數據綁定和UI自動更新的場景。本文將系統性地總結ObservableCollection的核心概念、使用方法、性能優化策略以及在實際項目中的應用實踐。 一、Observab…

佰力博檢測與您探討超高溫介電測試的應用領域

超高溫介電測試是指在極端高溫條件下&#xff08;通常高于1000℃&#xff09;對材料的介電性能進行測量和分析的過程。以評估材料在高溫環境下的電學性能穩定性&#xff0c;如介電常數、介電損耗、阻抗譜等參數。超高溫介電測試需要用到的超高溫介電阻抗測試設備&#xff1a;UT…

OneCode自治UI核心組件Layout布局介紹:構建靈活高效的界面布局系統

在現代前端開發中&#xff0c;布局系統扮演著至關重要的角色&#xff0c;它不僅決定了界面的結構美感&#xff0c;更直接影響用戶體驗和開發效率。OneCode作為一款企業級低代碼開發平臺&#xff0c;其布局引擎通過精巧的設計實現了簡潔API與強大功能的完美平衡。本文將深入剖析…

為何“白名單媒體”是性價比之選?

在信息媒體空前發展的今天&#xff0c;軟文營銷已成為企業品牌推廣的重要手段之一。然而&#xff0c;面對眾多媒體&#xff0c;如何選擇高性價比的發稿媒體成為許多營銷人員的一個課題。其中&#xff0c;“白名單媒體”憑借其高收錄率、權威背書等優勢&#xff0c;逐漸成為軟文…

Python 異步編程之 async 和 await

基礎知識 在 Python 中&#xff0c;async 和 await 是用于異步編程的關鍵字&#xff0c;引入了異步/協程&#xff08;coroutine&#xff09;的概念。核心思想是通過 協程&#xff08;Coroutine&#xff09; 和 事件循環&#xff08;Event Loop&#xff09; 實現非阻塞并發&…

關于接口測試的HTTP基礎【接口測試】

HTTP 協議基礎知識總結&#xff08;用于 Web API 接口測試&#xff09;接口測試中最常用的通訊協議就是 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;&#xff0c;本節旨在幫助理解 HTTP 協議的結構、工作流程以及如何用于接口測試。一、HTTP 協議簡介HTTP 是一種…

STM32 DMA通信詳解

STM32 DMA通信詳解DMA(Direct Memory Access&#xff0c;直接內存訪問)是STM32微控制器中一種重要的數據傳輸機制&#xff0c;它允許外設與內存之間或內存與內存之間直接傳輸數據&#xff0c;而無需CPU的干預。這種機制可以顯著提高系統性能&#xff0c;特別是在需要高速數據傳…