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

網易首頁 > 網易號 > 正文 申請入駐

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

0
分享至

專欄:50多種數據結構徹底征服

專欄:50多種經典圖論算法全部掌握

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

奧林帕斯難題百萬懸紅一般設立2個奧林帕斯獎,今年奧林帕斯獎獎金池還是保持了百萬級,設置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 僅由小寫英文字母組成

問題分析

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

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


判斷子串是否是回文串,我們可以預處理,先計算好哪些子串是回文串哪些不是。如果 子串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();      // 預處理,先計算子串中哪些是回文的,哪些不是,      // 數組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++) {          // 如果當前截取的子串不是回文的,就跳過          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();         // 預處理,先計算子串中哪些是回文的,哪些不是,         // 數組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++) {             // 如果當前截取的子串不是回文的,就跳過             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):
            # 如果當前截取的子串不是回文的,就跳過
            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)
    # 預處理,先計算子串中哪些是回文的,哪些不是,
    # 數組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

筆者簡介

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

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

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.

相關推薦
熱點推薦
徐卓一13秒23奪冠,距離PB僅差0.01秒&成功達標東京世錦賽

徐卓一13秒23奪冠,距離PB僅差0.01秒&成功達標東京世錦賽

懂球帝
2025-05-11 15:05:33
蔡崇信:加入阿里時工號是19,有個創始人退出才補位成18個創始人之一

蔡崇信:加入阿里時工號是19,有個創始人退出才補位成18個創始人之一

三言科技
2025-05-11 08:20:04
中美談判開啟,美愿降稅至80%,換中國重大讓步?華春瑩給出2句話

中美談判開啟,美愿降稅至80%,換中國重大讓步?華春瑩給出2句話

戶外釣魚哥阿旱
2025-05-11 15:34:47
穿成這樣去拜佛,是對佛的不敬吧!

穿成這樣去拜佛,是對佛的不敬吧!

阿廢冷眼觀察所
2025-05-10 12:03:41
中美談滿8小時!就是有了實質性交流,總不可能坐在一起互罵8小時

中美談滿8小時!就是有了實質性交流,總不可能坐在一起互罵8小時

大風文字
2025-05-11 08:29:37
共商中俄合作大計 維護國際公平正義

共商中俄合作大計 維護國際公平正義

人民網
2025-05-11 05:34:23
11國談判失敗,中方逮到了“內鬼”

11國談判失敗,中方逮到了“內鬼”

驚覺慣例
2025-05-10 16:44:24
全網“圍剿”小米汽車

全網“圍剿”小米汽車

互聯網思維
2025-05-10 23:35:25
確認!李姓女星被抓

確認!李姓女星被抓

中吳網
2025-05-10 19:17:08
王毅:今年秋天,中國將隆重紀念中國人民抗日戰爭勝利80周年

王毅:今年秋天,中國將隆重紀念中國人民抗日戰爭勝利80周年

中國網
2025-05-11 09:26:18
智能鎖正退出中國家庭?聽開鎖師傅說完,我連夜換回了鐵將軍!

智能鎖正退出中國家庭?聽開鎖師傅說完,我連夜換回了鐵將軍!

巢客HOME
2025-05-05 11:20:03
痛心!知名制片人趙薇去世,65歲仍孤身一人,死因曝光令人惋惜

痛心!知名制片人趙薇去世,65歲仍孤身一人,死因曝光令人惋惜

老吳教育課堂
2025-05-11 02:56:02
98年深圳一對夫婦花8萬投資華為,21年后,回報讓他們瞠目

98年深圳一對夫婦花8萬投資華為,21年后,回報讓他們瞠目

七分瘦三分肥
2025-05-10 19:07:54
殲-10C試刀:西方空戰神話破防,中國打法實現降維打擊

殲-10C試刀:西方空戰神話破防,中國打法實現降維打擊

觀察者網
2025-05-11 09:24:04
真是打錯了嗎?279元路由器中標價85萬,重慶三峽學院回應引熱議

真是打錯了嗎?279元路由器中標價85萬,重慶三峽學院回應引熱議

東東趣談
2025-05-11 14:38:51
歷史性的一幕,巴軍發射中國民企生產的巡航導彈,命中印軍事目標

歷史性的一幕,巴軍發射中國民企生產的巡航導彈,命中印軍事目標

凱撒談兵
2025-05-11 13:29:44
淚流滿面的發帖!爺爺每多活一天,就能為家里帶來566元的收入…

淚流滿面的發帖!爺爺每多活一天,就能為家里帶來566元的收入…

火山詩話
2025-05-09 14:23:17
粉絲涌入頭等艙追星,海航回應:已緊急阻止

粉絲涌入頭等艙追星,海航回應:已緊急阻止

魯中晨報
2025-05-10 22:12:05
59歲葉子楣在香港,參加曾志偉壽宴,打扮不倫不類,瘦成了皮包骨

59歲葉子楣在香港,參加曾志偉壽宴,打扮不倫不類,瘦成了皮包骨

軒逸阿II
2025-04-16 14:54:16
高校第一股,竟然財務造假10年,如今卻沒被ST。

高校第一股,竟然財務造假10年,如今卻沒被ST。

八百者也
2025-05-11 13:04:43
2025-05-11 18:11:00
數據結構和算法
數據結構和算法
專門介紹和寫算法題解的號
227文章數 2關注度
往期回顧 全部

科技要聞

首款折疊屏iPhone,有新消息!

頭條要聞

媒體:印度被巴方打回原形 被迫接受"地區大國"的現實

頭條要聞

媒體:印度被巴方打回原形 被迫接受"地區大國"的現實

體育要聞

分手7年之后,漢堡終于原諒了德甲

娛樂要聞

陳曉東吐槽權志龍演唱會 說實話遭圍攻

財經要聞

重慶一家人把755億巨債留給了股民

汽車要聞

空間表現是優勢 極狐T1將于5月底正式亮相發布

態度原創

手機
游戲
本地
健康
軍事航空

手機要聞

OPPO Reno14 系列手機支持 4K 視頻轉實況照片,5 月 15 日發布

等待《GTA6》太煎熬?這款開放世界游戲能滿足你!

本地新聞

非遺里的河南|汴梁鳶舞千年韻!宋室風箏藏多少絕活

唇皰疹和口腔潰瘍是"同伙"嗎?

軍事要聞

印巴停火后互稱擊落對方無人機

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 嫩江县| 唐海县| 县级市| 册亨县| 石景山区| 金塔县| 平武县| 奇台县| 治多县| 峨山| 东台市| 广丰县| 德兴市| 瑞安市| 乐东| 沙田区| 永安市| 赣州市| 固镇县| 卢湾区| 出国| 安多县| 永州市| 芦溪县| 河间市| 江源县| 黔南| 无棣县| 萝北县| 墨江| 临邑县| 女性| 津市市| 瑞昌市| 镇安县| 湖南省| 大名县| 新泰市| 威宁| 上饶市| 昭通市|