99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

華為面向全球懸賞300萬求解難題。網(wǎng)友:這兩道題給三個億都不過分。

0
分享至

專欄:50多種數(shù)據(jù)結(jié)構(gòu)徹底征服

專欄:50多種經(jīng)典圖論算法全部掌握

12月26日,華為宣布面向全球啟動2024奧林帕斯獎(OlympusMons Awards)懸紅難題征集。奧林帕斯獎由華為公司于2019年起設(shè)立,自設(shè)立以來,已吸引全球12個國家的超過240名學(xué)者參與,共評出5個奧林帕斯獎和13個奧林帕斯先鋒獎。

奧林帕斯難題百萬懸紅一般設(shè)立2個奧林帕斯獎,今年奧林帕斯獎獎金池還是保持了百萬級,設(shè)置2個奧林帕斯獎,獎金各100萬元;5個奧林帕斯先鋒獎,獎金各20萬元,總共300萬。大家有興趣的可以去嘗試一下,我就不參與了。






--------------下面是今天的算法題--------------

來看下今天的算法題,這題是LeetCode的第131題:分割回文串。

問題描述

來源:LeetCode第131題

難度:中等

給你一個字符串 s,請你將 s 分割成一些子串,使每個子串都是回文串。返回 s 所有可能的分割方案。

示例1:


輸入:s = "aab" 輸出:[["a","a","b"],["aa","b"]]

示例2:


輸入:s = "a" 輸出:[["a"]]

  • 1 <= s.length <= 16

  • s 僅由小寫英文字母組成

問題分析

這題讓把字符串分割成一些子串,并且要保證每個子串都是回文串,這是一道經(jīng)典的回溯算法問題,關(guān)于回溯算法,可以看下很早之前寫的一篇文章 《》 。

對原字符串不斷的截取子串,如果子串是回文串就繼續(xù)截取,如果不是回文串就跳過,最后如果都截取完了,說明截取的子串都是回文串,把截取的子串保存下來即可。可以看到子串的截取就像一個 n 叉樹一樣,如下圖所示。


判斷子串是否是回文串,我們可以預(yù)處理,先計算好哪些子串是回文串哪些不是。如果 子串s [i, j ]是回文串,需要兩邊的字符相等s[i]==s[j],并且中間的子串s[i+1,j-1]也必須是回文串。

JAVA:

public List
         
 > partition(String s) {     List > ans =  new ArrayList<>();      int length = s.length();      // 預(yù)處理,先計算子串中哪些是回文的,哪些不是,      // 數(shù)組dp[i][j]表示子串s[i,j]是否是回文的。      boolean[][] dp =  new  boolean[length][length];      for ( int j =  0; j < length; j++) {          for ( int i =  0; i <= j; i++) {              // 如果子串s[j,i]是回文串,則兩邊的字符s[i]和s[j]必須相同,并且              // 中間的子串s[i+1,j-1]如果存在,也必須是回文串。              if (s.charAt(i) == s.charAt(j) && (j - i <=  2 || dp[i +  1][j -  1]))                 dp[i][j] =  true;         }     }     backTrack(s, dp,  0, ans,  new ArrayList<>()); // 回溯算法      return ans; } private void backTrack(String s, boolean[][] dp, int index, List > ans, List  path)  {      // 邊界條件判斷,字符串s中的字符都訪問完了      if (index >= s.length()) {         ans.add( new ArrayList<>(path));          return;     }      for ( int i = index; i < s.length(); i++) {          // 如果當(dāng)前截取的子串不是回文的,就跳過          if (!dp[index][i])  continue;          // 這里截取的子串s[index][i]就是回文串。         path.add(s.substring(index, i +  1)); // 做出選擇         backTrack(s, dp, i +  1, ans, path);  // 遞歸         path.remove(path.size() -  1); // 撤銷選擇     } }

C++:

public:
    vector

 > partition(string s) {         vector

 > ans;         int length = s.length();         // 預(yù)處理,先計算子串中哪些是回文的,哪些不是,         // 數(shù)組dp[i][j]表示子串s[i,j]是否是回文的。         vector

 > dp(length, vector

 (length, false));         for (int j = 0; j < length; j++) {             for (int i = 0; i <= j; i++) {                 // 如果子串s[j,i]是回文串,則兩邊的字符s[i]和s[j]必須相同,并且                 // 中間的子串s[i+1,j-1]如果存在,也必須是回文串。                 if (s[i] == s[j] && (j - i <= 2 || dp[i + 1][j - 1]))                     dp[i][j] = true;             }         }         vector

  path{};         backTrack(s, dp, 0, ans, path);// 回溯算法         return ans;     }     void backTrack(string &s, vector

 > &dp, int index,                    vector

 > &ans, vector

  &path) {         // 邊界條件判斷,字符串s中的字符都訪問完了         if (index >= s.length()) {             ans.push_back(path);             return;         }         for (int i = index; i < s.length(); i++) {             // 如果當(dāng)前截取的子串不是回文的,就跳過             if (!dp[index][i])                 continue;             // 這里截取的子串s[index][i]就是回文串。             path.push_back(s.substr(index, i - index + 1));// 做出選擇             backTrack(s, dp, i + 1, ans, path); // 遞歸             path.pop_back();// 撤銷選擇         }     }







Python:

def partition(self, s: str) -> List[List[str]]:
    def backTrack(index):
        # 邊界條件判斷,字符串s中的字符都訪問完了
        if index >= length:
            ans.append(path[:])
            return
        for i in range(index, length):
            # 如果當(dāng)前截取的子串不是回文的,就跳過
            if not dp[index][i]:
                continue
            # 這里截取的子串s[index][i]就是回文串。
            path.append(s[index: i + 1])  # 做出選擇
            backTrack(i + 1)  # 遞歸
            path.pop()  # 撤銷選擇

    ans = []
    path = []
    length = len(s)
    # 預(yù)處理,先計算子串中哪些是回文的,哪些不是,
    # 數(shù)組dp[i][j]表示子串s[i,j]是否是回文的。
    dp = [[False] * length for _ in range(length)]
    for j in range(length):
        for i in range(j + 1):
            # 如果子串s[i,j]是回文串,則兩邊的字符s[i]和s[j]必須相同,并且
            # 中間的子串s[i+1,j-1]如果存在,也必須是回文串。
            if s[i] == s[j] and (j - i <= 2 or dp[i + 1][j - 1]):
                dp[i][j] = True
    backTrack(0)  # 回溯算法
    return ans

筆者簡介

博哥,真名:王一博,畢業(yè)十多年, 作者,專注于 數(shù)據(jù)結(jié)構(gòu)和算法 的講解,在全球30多個算法網(wǎng)站中累計做題2000多道,在公眾號中寫算法題解800多題,對算法題有自己獨特的解題思路和解題技巧,喜歡的可以給個關(guān)注,也可以 下載我整理的1000多頁的PDF算法文檔 。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點推薦
中國發(fā)展到了哪種程度?網(wǎng)友:西方媒體說中國連發(fā)展中國家都不如

中國發(fā)展到了哪種程度?網(wǎng)友:西方媒體說中國連發(fā)展中國家都不如

帶你感受人間冷暖
2025-07-25 00:05:16
TVB女星劉佩玥被男粉摸臀!全場嚇懵,現(xiàn)場畫面曝光

TVB女星劉佩玥被男粉摸臀!全場嚇懵,現(xiàn)場畫面曝光

橙星文娛
2025-07-25 15:23:22
將天空交給中國保護?7月25日,亞洲唯一的中立國,傳來新消息

將天空交給中國保護?7月25日,亞洲唯一的中立國,傳來新消息

智觀科技
2025-07-25 11:35:06
國醫(yī)大師張志遠(yuǎn):這些藥,大劑量使用有特效

國醫(yī)大師張志遠(yuǎn):這些藥,大劑量使用有特效

太極本草
2025-07-24 15:16:10
去了阿爾巴尼亞才知道,免簽只是開始,這里生活遠(yuǎn)比想象中復(fù)雜!

去了阿爾巴尼亞才知道,免簽只是開始,這里生活遠(yuǎn)比想象中復(fù)雜!

陳博世財經(jīng)
2025-07-23 14:19:35
怎么不喊牛市了?

怎么不喊牛市了?

金牛遠(yuǎn)望號
2025-07-23 22:49:09
舊衣不送人,舊鞋不亂扔,這3個處理方法,讓你守住自己的財氣

舊衣不送人,舊鞋不亂扔,這3個處理方法,讓你守住自己的財氣

第四思維
2025-07-23 13:09:45
張小寒曝國民女演員因戀愛腦閃婚!所嫁非人,被坑得傾家蕩產(chǎn)

張小寒曝國民女演員因戀愛腦閃婚!所嫁非人,被坑得傾家蕩產(chǎn)

吃瓜少女張小暖
2025-07-25 23:09:37
殯儀館回應(yīng)東北大學(xué)6名學(xué)生墜入浮選槽溺亡:遺體未受損,家屬暫未到達

殯儀館回應(yīng)東北大學(xué)6名學(xué)生墜入浮選槽溺亡:遺體未受損,家屬暫未到達

極目新聞
2025-07-24 13:22:39
難怪火不起來,被全網(wǎng)心疼僅半月,朱孝天又打破娛樂圈“規(guī)則”

難怪火不起來,被全網(wǎng)心疼僅半月,朱孝天又打破娛樂圈“規(guī)則”

普覽
2025-07-24 21:53:31
擁抱科技!西媒:皇馬、曼城、拜仁等俱樂部開始用AI來預(yù)防傷病

擁抱科技!西媒:皇馬、曼城、拜仁等俱樂部開始用AI來預(yù)防傷病

雷速體育
2025-07-25 22:21:21
國家體育總局:十五運厲行節(jié)約不搞重復(fù)建設(shè),不新建大型場館

國家體育總局:十五運厲行節(jié)約不搞重復(fù)建設(shè),不新建大型場館

南方都市報
2025-07-25 16:42:16
綠洲珠寶行血案,浙江6任廳長追兇22年,抓到嫌犯后大家都愣住了

綠洲珠寶行血案,浙江6任廳長追兇22年,抓到嫌犯后大家都愣住了

崖邊行
2025-06-27 21:11:22
事實證明,無妻無子、身價過億、做了51年老好人的何炅,才最涼薄

事實證明,無妻無子、身價過億、做了51年老好人的何炅,才最涼薄

坊聞本尊
2025-06-14 13:14:54
女籃和美國爭冠萬眾矚目!劉禹彤率隊出戰(zhàn)!26日凌晨2點央視直播

女籃和美國爭冠萬眾矚目!劉禹彤率隊出戰(zhàn)!26日凌晨2點央視直播

老吳說體育
2025-07-25 10:41:29
明道被朱孝天刪好友,2年未聯(lián)系直接被清理,網(wǎng)友質(zhì)疑表演型人格

明道被朱孝天刪好友,2年未聯(lián)系直接被清理,網(wǎng)友質(zhì)疑表演型人格

壹點半娛樂
2025-07-24 21:49:11
周靜華被引渡回國,她這個國企高管15年的荒唐外逃路

周靜華被引渡回國,她這個國企高管15年的荒唐外逃路

肖飛說
2025-07-25 14:33:57
余杭區(qū)被處分的領(lǐng)導(dǎo)們,值得擁有姓名

余杭區(qū)被處分的領(lǐng)導(dǎo)們,值得擁有姓名

基本常識
2025-07-24 23:32:11
她生完6個娃,又懷八胞胎,名聲臭了!如今14娃全長大,她風(fēng)評反轉(zhuǎn):養(yǎng)得挺好的!

她生完6個娃,又懷八胞胎,名聲臭了!如今14娃全長大,她風(fēng)評反轉(zhuǎn):養(yǎng)得挺好的!

英國那些事兒
2025-07-24 23:25:23
山西省太原市人大常委會原副主任王劍峰被“雙開”

山西省太原市人大常委會原副主任王劍峰被“雙開”

界面新聞
2025-07-25 18:06:06
2025-07-26 00:27:00
數(shù)據(jù)結(jié)構(gòu)和算法
數(shù)據(jù)結(jié)構(gòu)和算法
專門介紹和寫算法題解的號
238文章數(shù) 3關(guān)注度
往期回顧 全部

科技要聞

36款熱門車高危智駕場景測試,“團滅”!

頭條要聞

8旬翁下葬前墓地被人埋死狗沿路埋鐵釘暗器 官方介入

頭條要聞

8旬翁下葬前墓地被人埋死狗沿路埋鐵釘暗器 官方介入

體育要聞

3年過去了,她還是歐洲杯上最酷的姐

娛樂要聞

汪蘇瀧不忍了 !張碧晨痛失《年輪》演唱權(quán)

財經(jīng)要聞

劉煜輝:當(dāng)下重要不是找確定性而是轉(zhuǎn)折點

汽車要聞

李斌一口氣講了近3個小時樂道L90 原因是為啥?

態(tài)度原創(chuàng)

手機
游戲
房產(chǎn)
教育
數(shù)碼

手機要聞

三星新一代Galaxy Z系列 開啟折疊屏主動交互新時代

育碧下一款《幽靈行動》將改用虛幻5 重返系列本源

房產(chǎn)要聞

分?jǐn)?shù)線集體飆漲!海中867分!2025海南中招格局大變!

教育要聞

389分撿漏鄭大,367分讀華水,河南考生咋沒這個命

數(shù)碼要聞

谷歌Pixel Watch 4智能手表曝光:充電口更改,配色更多

無障礙瀏覽 進入關(guān)懷版 主站蜘蛛池模板: 平乐县| 汕头市| 凤山市| 句容市| 阜康市| 石门县| 五峰| 平遥县| 阿鲁科尔沁旗| 云安县| 于田县| 南康市| 从江县| 甘肃省| 加查县| 基隆市| 阿坝| 磴口县| 龙江县| 池州市| 许昌市| 泌阳县| 古田县| 屏南县| 广灵县| 裕民县| 思南县| 滕州市| 北安市| 保亭| 合阳县| 肃北| 泸州市| 吉安市| 含山县| 台南县| 蕉岭县| 罗源县| 嘉义县| 当阳市| 乳源|