【算法手記11】NC41 最長無重復子數組 NC379 重排字符串

🦄個人主頁:修修修也

🎏所屬專欄:刷題

??操作環境:牛客網


目錄

一.NC41 最長無重復子數組

題目詳情:

題目思路:

解題代碼:

二.NC379 重排字符串

題目詳情:

題目思路:

解題代碼:

結語


一.NC41 最長無重復子數組

牛客網題目鏈接(點擊即可跳轉):NC41 最長無重復子數組

題目詳情:

本題詳情如下圖:


題目思路:

本題解題思路如下:

??????? 哈希雙指針滑動窗口, 圖解如下:


解題代碼:

本題解題代碼如下:

class Solution 
{
public:int hash[100010]={0};int maxLength(vector<int>& arr) {int left=0,right=0;int ret=0;while(right<arr.size()){hash[arr[right]]++;//進窗口while(hash[arr[right]]>1)//判斷出窗口{hash[arr[left++]]--;//出窗口}right++;ret=max(ret,right-left);//更新結果}return ret;}
};

二.NC379 重排字符串

牛客網題目鏈接(點擊即可跳轉):NC379 重排字符串

題目詳情:

本題詳情如下圖:


題目思路:

本題解題思路如下:

??????? 首先先統計所有字母出現的次數,如果有字母出現的次數大于(總數+1)/2,那么說明這個根本沒法重排,所以直接返回"".統計好字母后,先排數量多的,把它們在雙數下標間隔一個排列,然后雙數下標排滿了再把剩下的排在單數位置上,這樣就可以保證不會出現相同的字母相鄰的情況啦.解法算是一個小貪心,然后統計字母用到了數組存pair鍵值對的形式.(此處發現一個小tips:sort排pair數組的話會默認按first的值排升序,如果懶得現場手搓排序函數的可以把待排序的數據類型作為pair的first,這樣可以省一點事).


解題代碼:

本題解題代碼如下:

class Solution 
{
public:string rearrangestring(string str) {vector<pair<int,char>> vp;string ret;ret.resize(str.size());for(int i=0;i<26;i++)vp.push_back(pair<int,char>{0,'a'+i});for(auto e:str)if(++vp[e-'a'].first > (str.size()/2))return ""; sort(vp.begin(),vp.end());int i=vp.size()-1, sin=0, even=1;while(sin<ret.size()){while(vp[i].first==0)i--;ret[sin]=vp[i].second;vp[i].first--;sin+=2;}while(even<ret.size()){while(vp[i].first==0)i--;ret[even]=vp[i].second;vp[i].first--;even+=2;}return ret;}
};

結語

??????? 說點啥好呢..."有志者事竟成!沉淀復盤!" -> "人生哪有一帆風順!這次聊的很好~" -> "沒事噠沒事噠~先去學點東西也好" -> "OUT"

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

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

相關文章

C語言:字符串處理函數strstr分析

在 C 語言中&#xff0c;strstr 函數用于查找一個字符串中是否存在另一個字符串。它的主要功能是搜索指定的子字符串&#xff0c;并返回該子字符串在目標字符串中第一次出現的位置的指針。如果沒有找到子字符串&#xff0c;則返回 NULL。 詳細說明&#xff1a; 頭文件&#xf…

在windows下安裝spark

在windows下安裝spark完成 安裝過程&#xff1a;

MongoDB常見面試題總結(上)

MongoDB 基礎 MongoDB 是什么&#xff1f; MongoDB 是一個基于 分布式文件存儲 的開源 NoSQL 數據庫系統&#xff0c;由 C 編寫的。MongoDB 提供了 面向文檔 的存儲方式&#xff0c;操作起來比較簡單和容易&#xff0c;支持“無模式”的數據建模&#xff0c;可以存儲比較復雜…

【Java設計模式】第2章 UML急速入門

2-1 本章導航 UML類圖與時序圖入門 UML定義 統一建模語言(Unified Modeling Language):第三代非專利建模語言。特點:開放方法,支持可視化構建面向對象系統,涵蓋模型、流程、代碼等。UML分類(2.2版本) 結構式圖形:系統靜態建模(類圖、對象圖、包圖)。行為式圖形:事…

【4】搭建k8s集群系列(二進制部署)之安裝master節點組件(kube-apiserver)

一、下載k8s二進制文件 下載地址&#xff1a; https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG -1.20.md 注&#xff1a;打開鏈接你會發現里面有很多包&#xff0c;下載一個 server 包就夠了&#xff0c;包含了 Master 和 Worker Node 二進制文件。…

電子電氣架構 --- AUTOSAR 的信息安全架構

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 周末洗了一個澡,換了一身衣服,出了門卻不知道去哪兒,不知道去找誰,漫無目的走著,大概這就是成年人最深的孤獨吧! 舊人不知我近況,新人不知我過…

ROS2與OpenAI Gym集成指南:從安裝到自定義環境與強化學習訓練

1.理解 ROS2 和 OpenAI Gym 的基本概念 ROS2&#xff08;Robot Operating System 2&#xff09;&#xff1a;是一個用于機器人軟件開發的框架。它提供了一系列的工具、庫和通信機制&#xff0c;方便開發者構建復雜的機器人應用程序。例如&#xff0c;ROS2 可以處理機器人不同組…

【設計模式】創建型 -- 單例模式 (c++實現)

文章目錄 單例模式使用場景c實現靜態局部變量餓漢式&#xff08;線程安全&#xff09;懶漢式&#xff08;線程安全&#xff09;懶漢式&#xff08;線程安全&#xff09; 智能指針懶漢式(線程安全)智能指針call_once懶漢式(線程安全)智能指針call_onceCRTP 單例模式 單例模式是…

C語言之九九乘法表

一、代碼展示 二、運行結果 三、代碼分析 首先->是外層循環是小于等于9的 然后->是內層循環是小于等于外層循環的 最后->就是\n讓九九乘法表的格式更加美觀(當然 電腦不同 有可能%2d 也有可能%3d) 四、與以下素數題目邏輯相似 五、運行結果

自動化備份全網服務器數據平臺

自動化備份全網服務器數據平臺 項目背景知識 總體需求 某企業里有一臺Web服務器&#xff0c;里面的數據很重要&#xff0c;但是如果硬盤壞了數據就會丟失&#xff0c;現在領導要求把數據做備份&#xff0c;這樣Web服務器數據丟失在可以進行恢復。要求如下&#xff1a;1.每天0…

stm32+esp8266+機智云手機app

現在很多大學嵌入式畢設都要求云端控制&#xff0c;本文章就教一下大家如何使用esp8266去連接機智云的app去進行顯示stm32的外設傳感器數據啊&#xff0c;控制一些外設啊等。 因為本文章主要教大家如何移植機智云的代碼到自己的工程&#xff0c;所以前面的一些準備工作&#x…

時序數據庫 TDengine Cloud 私有連接實戰指南:4步實現數據安全傳輸與成本優化

小T導讀&#xff1a;在物聯網和工業互聯網場景下&#xff0c;企業對高并發、低延遲的數據處理需求愈發迫切。本文將帶你深入了解 TDengineCloud 如何通過全托管服務與私有連接&#xff0c;幫助企業實現更安全、更高效、更低成本的數據采集與傳輸&#xff0c;從架構解析到實際配…

【Java面試系列】Spring Boot中自動配置原理與自定義Starter開發實踐詳解 - 3-5年Java開發必備知識

【Java面試系列】Spring Boot中自動配置原理與自定義Starter開發實踐詳解 - 3-5年Java開發必備知識 引言 Spring Boot作為Java生態中最流行的框架之一&#xff0c;其自動配置機制和Starter開發是面試中的高頻考點。對于3-5年經驗的Java開發者來說&#xff0c;深入理解這些原理…

解決Spring Boot Test中的ByteBuddy類缺失問題

目錄 解決Spring Boot Test中的ByteBuddy類缺失問題前奏問題描述問題解決第一步&#xff1a;移除ByteBuddy的特定版本號第二步&#xff1a;更新maven-surefire-plugin配置第三步&#xff1a;清理并重新構建項目 結語 解決Spring Boot Test中的ByteBuddy類缺失問題 前奏 今天&…

IntelliJ IDEA使用技巧(json字符串格式化)

文章目錄 一、IDEA自動格式化json字符串二、配置/查找格式化快捷鍵 本文主要講述idea中怎么將json字符串轉換為JSON格式的內容并且有層級結構。 效果&#xff1a; 轉換前&#xff1a; 轉換后&#xff1a; 一、IDEA自動格式化json字符串 步驟一&#xff1a;首先創建一個臨…

眨眼睛查看密碼工具類

“眨眼睛查看密碼”工具類實現思路&#xff1a; 一、核心功能 實現點擊眼睛圖標切換密碼明文/星號顯示&#xff0c;提升表單輸入體驗。包含以下關鍵功能&#xff1a; ? 初始狀態&#xff1a;密碼框顯示為星號&#xff0c;閉眼圖標可見。 ? 點擊閉眼圖標&#xff1a;切換為明…

【GPT入門】第33課 從應用場景出發,區分 TavilyAnswer 和 TavilySearchResults,代碼實戰

【GPT入門】第33課 從應用場景出發&#xff0c;區分 TavilyAnswer 和 TavilySearchResults&#xff0c;代碼實戰 1. 區別應用場景 2. 代碼使用3.代碼執行效果 在langchain_community.tools.tavily_search中&#xff0c;TavilyAnswer和TavilySearchResults有以下區別和應用場景&…

【Java設計模式】第10章 外觀模式講解

10. 外觀模式 10.1 外觀模式講解 定義:為子系統提供統一接口,簡化調用。類型:結構型模式適用場景: 子系統復雜需簡化調用分層系統需統一入口優點: 降低耦合符合迪米特法則(最少知道原則)缺點: 擴展子系統需修改外觀類,違反開閉原則10.2 外觀模式 Coding // 子系統:…

Dubbo的簡單介紹

Dubbo的簡單介紹 Dubbo 是一個高性能的 Java RPC 框架&#xff0c;最初由阿里巴巴開發&#xff0c;用于構建分布式服務。它主要用于提供服務間的通信&#xff0c;支持高效的遠程調用和服務治理&#xff0c;常用于大規模分布式系統中。Dubbo 提供了以下幾個核心功能&#xff1a…

每日一題(小白)數組娛樂篇17

對一個數組進行接收進行操作后輸出。輸入三個操作數abc&#xff0c;將數組下標a到b的數字加上c&#xff1b;輸入四個操作數abcd&#xff0c;將下標c到d的數字復制到a到b&#xff0c;可以借用一個中間量數組實現&#xff1b;兩個操作數ab&#xff0c;將數組下標a到b的數字加和輸…