【算法提升】牛牛沖鉆五 最長無重復子數組 重排字符串 one_day

算法提升

  • 1.牛牛沖鉆五
    • 1.2 解析
  • 2.最長無重復子數組
    • 2.1解析
  • 3.重排字符串
    • 3.1解析

1.牛牛沖鉆五

在這里插入圖片描述

1.2 解析

后面的數據要根據前面兩個的狀態來確定,我的做法是使用動態規劃的方式
在這里插入圖片描述

#include<iostream>
#include<string>
#include<vector>
using namespace std;int main()
{//1.輸入int T=0;cin>>T;while(T--){int n=0,k=0;cin>>n>>k;string s;cin>>s;//2.代碼vector<int> dp(n);//初始化if(s[0]=='W')dp[0]=1;elsedp[0]=-1;if(s[1]=='W')dp[1]=dp[0]+1;else    dp[1]=dp[0]-1;//填表for(int i=2;i<n;i++){if(s[i]=='L')dp[i]=dp[i-1]-1;else{if(s[i-1]=='W'&&s[i-2]=='W')dp[i]=dp[i-1]+k;elsedp[i]=dp[i-1]+1;}}printf("%d\n",dp[n-1]);}return 0;
}

2.最長無重復子數組

在這里插入圖片描述

2.1解析

非常經典的滑動窗口的題目
使用hash表存儲已經進入窗口內的值,如果出現重復元素,就出窗口然后再統計結果’

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

3.重排字符串

在這里插入圖片描述

3.1解析

今天最有難度的題目,整體思路使用貪心

//1.每次處理一批相同的字母
//2.優先處理出現次數最多的字母
//3.每次擺放中間隔一個位置
//判斷是否可以重拍,x<=(n+1)/2

//貪心
//1.每次處理一批相同的字母
//2.優先處理出現次數最多的字母
//3.每次擺放中間隔一個位置
//判斷是否可以重拍,x<=(n+1)/2
class Solution 
{
public:string rearrangestring(string s) {int n = s.size();vector<int> cnt(26, 0); // 初始化計數數組為0char max_char = 'a';    // 出現次數最多的字符int max_count = 0;      // 最多字符的次數// 統計字符頻率并找最大值for (char c : s) {int idx = c - 'a';  // 修正:字符轉0-25索引if (++cnt[idx] > max_count) {max_count = cnt[idx];max_char = c;}}// 無法重排的情況:最多字符超過 (n+1)/2if (max_count > (n + 1) / 2) return "";string ret(n, ' ');  // 初始化結果字符串為n長度int i = 0;// 優先放置最多字符(間隔放置)while (max_count--) {ret[i] = max_char;i += 2;  // 偶數位置:0,2,4...}// 處理剩余字符for (int j = 0; j < 26; ++j) {char c = 'a' + j;if (c == max_char || cnt[j] == 0) continue;while (cnt[j]--) {if (i >= n) i = 1;  // 偶數位置填滿后用奇數位置:1,3,5...ret[i] = c;i += 2;}}return ret;}
};

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

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

相關文章

數學建模MathAI智能體-2025電工杯A題實戰

題目&#xff1a; 光伏電站發電功率日前預測問題 光伏發電是通過半導體材料的光電效應&#xff0c;將太陽能直接轉化為電能的技術。光伏電站是由眾多光伏發電單元組成的規模化發電設施。 光伏電站的發電功率主要由光伏板表面接收到的太陽輻射總量決定&#xff0c;不同季節太陽…

VR 展廳開啟一場穿越時空的邂逅?

在文化藝術領域&#xff0c;VR 展廳宛如一扇通往奇妙世界的大門&#xff0c;讓觀眾得以突破時間與空間的枷鎖&#xff0c;以一種前所未有的沉浸式體驗&#xff0c;與歷史文化和藝術作品展開親密無間的互動。博物館&#xff0c;作為承載著厚重歷史文化的璀璨寶庫&#xff0c;長久…

linux中使用make clean重新編譯

是的&#xff0c;在編譯完成后&#xff0c;你可以通過以下方式清除之前的編譯結果并重新編譯&#xff1a; 方法 1&#xff1a;直接刪除 build 目錄&#xff08;推薦&#xff09; 這是最徹底的清理方式&#xff0c;適用于需要完全重新配置或解決構建問題的情況。 # 進入項目根…

【Linux】的火墻管理及優化

目錄 iptables與firewalld服務 iptables的三表五鏈 iptables的安裝和啟用 iptables命令的格式及常用參數 命令格式 常用參數 編寫規則示例 firewalld的域 firewalld的啟用 firewalld-cmd命令的常用參數 firewalld的高級規則 firewalld的地址偽裝與端口轉發 iptable…

古文時空重構:當AI把課本詩詞做成4D電影

當青銅編鐘聲由遠及近&#xff0c;AI生成的水墨粒子逐漸凝聚成標題 當苔痕在石階上悄然蔓延時&#xff0c;你聽見劉禹錫筆下的呼吸了嗎&#xff1f; 當鏡頭突然穿透墨跡&#xff0c;3D古卷如星河鋪展&#xff01; 當AI把課本詩詞做成4D電影&#xff0c;這樣的視頻流量會不會高…

自動生成圖標小程序(iOS)

續上篇《iOS應用程序開發(圖片處理器&#xff09;》 這是一個圖片瀏覽器和處理器&#xff0c;增加一些功能&#xff0c;可以自動生成小圖標。 (This is a picture viewer and editor.You can add some functions,generate the icon automatically.You can select the object …

Netty應用:從零搭建Java游戲服務器網絡框架

在游戲開發領域,服務器網絡框架是連接玩家與游戲世界的橋梁,其穩定性和高效性直接影響玩家的游戲體驗。本文將詳細介紹如何使用Java語言和Netty框架,搭建一個兼具TCP和UDP協議支持的游戲服務器網絡框架,并配套開發客戶端,助你快速掌握游戲網絡開發的核心技術。 1.項目概覽…

SpringBoot-13-多表查詢之一對一查詢association

文章目錄 1 mysql數據庫1.1 account賬戶表1.2 user用戶表2 實體類2.1 model/Account.java2.2 model/User.java3 mapper3.1 AccountToUserMapper.java3.2 AccountToUserMapper.xml3.2.1 mapper3.2.2 resultMap3.2.3 association3.2.4 select4 AccountController.java5 測試5.1 有…

Python如何賦能自動駕駛地圖構建?從點云處理到實時導航

Python如何賦能自動駕駛地圖構建?從點云處理到實時導航 自動駕駛的核心是什么?毫無疑問,精準的地圖 是整個系統的靈魂。沒有高精度地圖,自動駕駛汽車就如同在迷霧中航行。而 Python,憑借其強大的數據處理能力和豐富的開源生態,正在成為自動駕駛地圖構建的關鍵工具。 今…

QT之巧用對象充當信號接收者

備注&#xff1a;以下僅為演示不代表合理性&#xff0c;適合簡單任務&#xff0c;邏輯簡單、臨時使用&#xff0c;可保持代碼簡潔&#xff0c;對于復雜的任務應創建一個專門的類來管理信號和線程池任務. FileScanner類繼承QObject和QRunnable&#xff0c;掃描指定目錄下的文件獲…

Transformer,多頭注意力機制 隱式學習子空間劃分

Transformer,多頭注意力機制 隱式學習子空間劃分 在Transformer中,多頭注意力機制天然支持隱式學習子空間劃分——每個注意力頭可以專注于輸入的不同方面(如語義、句法、位置關系等),從而隱式形成多個子空間。 一、核心思路:將多頭注意力視為隱式子空間 原理 Transfo…

java基礎(繼承)

什么是繼承 繼承好處 提高代碼的復用性 繼承注意事項 權限修飾符 單繼承、Object類 沖突&#xff1a; 方法重寫 擴展&#xff1a; 其實我們不想看地址&#xff0c;地址看來沒用&#xff0c;我們是用來看對象有沒有問題 重寫toString: 比如這個如果返回的是地址值&#xff0c;…

【每日渲美學】3ds Max櫥柜材質教程:廚房高光烤漆、木紋、亞克力、亞光板材渲染優化指南

在室內可視化項目中&#xff0c;廚房往往是一個集中展現材質表現力與光影質感的關鍵區域。櫥柜作為廚房空間的視覺主體&#xff0c;其材質選擇與渲染設置不僅影響整體空間的風格呈現&#xff0c;也對渲染效率提出更高要求。 本期「每日渲美學」&#xff0c;我們聚焦3ds Max環境…

Python Day34

Task&#xff1a; GPU訓練及類的call方法 1.CPU性能的查看&#xff1a;看架構代際、核心數、線程數 2.GPU性能的查看&#xff1a;看顯存、看級別、看架構代際 3.GPU訓練的方法&#xff1a;數據和模型移動到GPU device上 4.類的call方法&#xff1a;為什么定義前向傳播時可以直接…

HTTP協議版本的發展(HTTP/0.9、1.0、1.1、2、3)

目錄 HTTP協議層次圖 HTTP/0.9 例子 HTTP/1.0 Content-Type 字段 Content-Encoding 字段 例子 1.0版本存在的問題&#xff1a;短鏈接、隊頭阻塞 HTTP/1.1 Host字段 Content-Length 字段 分塊傳輸編碼 1.1版本存在的問題 HTTP/2 HTTP/2數據傳輸 2版本存在的問題…

開源 OIDC(OpenID Connect)身份提供方(IdP)、iam選型

文章目錄 開源 OIDC(OpenID Connect)身份提供方(IdP)、iam選型主流開源 OIDC(OpenID Connect)身份提供方(IdP)zitadeldexory開源 OIDC(OpenID Connect)身份提供方(IdP)、iam選型 主流開源 OIDC(OpenID Connect)身份提供方(IdP) 當前主流的**開源 OIDC(OpenI…

第三十二天打卡

作業&#xff1a;參考pdpbox官方文檔中的其他類&#xff0c;繪制相應的圖&#xff0c;任選即可 1. 安裝并導入庫 確保安裝與文檔版本一致的 pdpbox&#xff08;此處以 0.3.0 為例&#xff09;&#xff1a; bash 復制 下載 pip install pdpbox0.3.0 導入所需庫&#xff1a…

【Spring】Spring AI 核心知識(一)

1. 自定義 Advisor 實際上&#xff0c;Advisor 可以看做是 Servlet 當中的“攔截器”&#xff0c;在大模型接收到 prompt 之前進行前置攔截增強&#xff08;比如敏感詞校驗、記錄日志、鑒權&#xff09;&#xff0c;并在大模型返回響應之后進行后置攔截增強&#xff08;比如記…

中國免稅品人工智能商城:引領免稅品市場新潮流

在全球經濟一體化的時代背景下&#xff0c;免稅品市場日益繁榮。中國免稅品人工智能商城以對標洋碼頭為目標&#xff0c;積極利用人工智能的優勢&#xff0c;結合自身特點&#xff0c;全力打造成為免稅品類的示范性商業平臺&#xff0c;為消費者帶來全新的購物體驗。 一、免稅品…

LambdaQueryWrapper、MybatisPlus提供的基本接口方法、增刪改查常用的接口方法、自定義 SQL

DAY26.2 Java核心基礎 MybatisPlus提供的基本接口方法 分頁查詢 導入依賴springboot整合Mybatis-plus <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version&g…