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

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

現在背調手段越來越高明了。

0
分享至

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

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

最近一網友在入職之前遇到公司背調,問的還那么詳細,關鍵被問的人還那么配合。我覺得招一個產品經理不至于,又不是啥高管。之前我找工作的時候也遇到過背調,不過查的是社保記錄,主要是判斷工作履歷是否真實,是否真的在那家公司干過,個人能力是查不到的。

背調現在也是屢見不鮮,之前有一個同事離職之后空閑了半年多,背調的時候填我的手機號,臨時給我打電話告訴我該怎么說,結果不到10分鐘hr真打過來了,其實這種背調就是往好的夸,最后也成功入職,所以大家在工作中最好要有一個玩的特別好的同事,以后找工作遇到背調可以幫你說兩句。但有的人離職是因為和領導關系搞的不好,有的背調公司要填領導的聯系方式,這種背調就很坑了。

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

來看下今天的算法題,這題是LeetCode的第5題:最長回文子串。

問題描述

來源:LeetCode第5題

難度:中等

給你一個字符串 s,找到 s 中最長的回文子串。如果字符串的反序與原始字符串相同,則該字符串稱為回文字符串。

示例1:


輸入:s = "babad" 輸出:"bab" 解釋:"aba" 同樣是符合題意的答案。

示例2:


輸入:s = "cbbd" 輸出:"bb"

  • 1 <= s.length <= 1000

  • s 僅由數字和英文字母組成

問題分析

這題是讓找出字符串 s 的最長回文子串, 最簡單的一種解決方式就是截取字符串 s 的所有子串 ,然后判斷它的所有子串哪些是回文串,保存最長的回文串即可,這種解法雖然簡單,但時間復雜度比較高。

還一種解決方式就是中心擴散法 ,我們需要以每一個字符為中心往兩邊擴散,查找并記錄最長的回文子串。查找完之后下一步我們還要以下一個字符為中心往兩邊擴散進行查找,這樣效率也不是很高。這個時候我們可以對他進行優化,使用馬拉車算法。

所以這題的最經典解法還是 馬拉車算法 ,關于馬拉車算法大家可以看下 中第 13 章的13.2 馬拉車算法,這里就不在介紹。我們這里主要講另外一種解決方式,動態規劃。

我們定義二維數組dp[][],如果dp[left][right]為true,則表示子串s[left,right]是回文子串,如果dp[left][right]為false,則表示子串s[left,right]不是回文子串。

如果dp[left][right]是回文子串,首先dp[left+1][right-1]必須是回文子串,并且s[left]和s[right]也必須相等,如下圖所示。

1,如果s[left]!=s[right],子串s[left,right]不可能是回文子串。

2,如果s[left]==s[right],子串s[left,right]能不能構成回文子串還需要進一步判斷:

2.1,如果left==right,也就是說只有一個字符,我們認為它是回文子串。即dp[left][right]=true(left==right)

2.2,如果right-left<=2,類似于"aa",或者"aba",中間最多只有一個字符,我們也認為它是回文子串,即dp[left][right]=true(right-left<=2)

2.3,如果right-left>2,需要判斷dp[left+1][right-1]是否是回文子串,才能確定dp[left][right]是否為true還是false。即dp[left][right]=dp[left+1][right-1]

所以我們可以找出遞推公式如下:

dp[left][right]=s[left]==s.[right]&&dp[left+1][right-1]

這里要注意,因為dp[left][right]的值要依賴dp[left+1][right-1]的值,所以不能從上到下一行一行的遍歷。因為在二維網格中dp[left+1][right-1]是在dp[left][right]的下一行,所以必須先計算dp[left+1][right-1]的值,才能計算dp[left][right]。

遍歷方式有多種,可以從左到右一列一列的遍歷,也可以從下到上一行一行的遍歷,還可以從對角線往右上角一行一行的遍歷, 無論哪種方式,都要保證在計算dp[left][right]的時候,dp[left+1][right-1]的值一定是計算過的 。

JAVA:

public String longestPalindrome(String s) {
// start表示最長回文子串開始的位置,為了后面截取。
// maxLen表示最長回文子串的長度
int start = 0, maxLen = 1;
int length = s.length();
boolean[][] dp = new boolean[length][length];
for (int right = 1; right < length; right++) {
for (int left = 0; left < right; left++) {
// 如果兩種字符不相同,肯定不能構成回文子串。
if (s.charAt(left) != s.charAt(right))
continue;
// 下面是s[left]和s[right]兩個字符相同情況下的判斷。
if (right - left <= 2) {
// 類似于"a","aa"和"aba",也是回文子串。
dp[left][right] = true;
} else {
// 類似于"a******a",要判斷他是否是回文子串,只需要
// 判斷"******"是否是回文子串即可。
dp[left][right] = dp[left + 1][right - 1];
}
// 如果字符串從left到right是回文子串,保存最長的回文子串。
if (dp[left][right] && right - left + 1 > maxLen) {
maxLen = right - left + 1;
start = left;
}
}
}
// 截取最長的回文子串
return s.substring(start, start + maxLen);
}

C++:

public:
string longestPalindrome(string s) {
// start表示最長回文子串開始的位置,為了后面截取。
// maxLen表示最長回文子串的長度
int start = 0, maxLen = 1;
int length = s.size();
vector int>> dp(length, vector< int>(length));
for ( int right = 1; right < length; right++) {
for ( int left = 0; left < right; left++) {
// 如果兩種字符不相同,肯定不能構成回文子串。
if (s[left] != s[right])
continue;
// 下面是s[left]和s[right]兩個字符相同情況下的判斷。
if (right - left <= 2) {
// 類似于"a","aa"和"aba",也是回文子串。
dp[left][right] = true;
} else {
// 類似于"a******a",要判斷他是否是回文子串,只需要
// 判斷"******"是否是回文子串即可。
dp[left][right] = dp[left + 1][right - 1];
}
// 如果字符串從left到right是回文子串,保存最長的回文子串。
if (dp[left][right] && right - left + 1 > maxLen) {
maxLen = right - left + 1;
start = left;
}
}
}
// 截取最長的回文子串
return s.substr(start, maxLen);
}

筆者簡介

博哥,真名:王一博,畢業十多年, 作者,專注于 數據結構和算法 的講解,在全球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.

相關推薦
熱點推薦
舊衣服別亂捐!民政部新規:捐贈帶這標識衣物=違法,快查衣柜

舊衣服別亂捐!民政部新規:捐贈帶這標識衣物=違法,快查衣柜

小白鴿財經
2025-05-11 10:06:27
恭喜皇馬,名帥加盟將讓球隊巨變,2大天才離隊,2將有望翻身

恭喜皇馬,名帥加盟將讓球隊巨變,2大天才離隊,2將有望翻身

體育全天候
2025-05-10 19:26:14
印媒:印度海軍對巴多目標發動打擊

印媒:印度海軍對巴多目標發動打擊

參考消息
2025-05-09 18:55:07
中美貿易戰再起波瀾?5月11日,今日凌晨的三大重要消息持續發酵

中美貿易戰再起波瀾?5月11日,今日凌晨的三大重要消息持續發酵

風口招財豬
2025-05-11 02:13:37
董潔和潘粵明的兒子頂頂長大了巨帥,這顏值不得在娛樂圈橫著走?

董潔和潘粵明的兒子頂頂長大了巨帥,這顏值不得在娛樂圈橫著走?

觀察鑒娛
2025-05-11 12:25:20
同樣都是兄弟國家,中國可以賣殲10C給巴基斯坦,為何不賣給朝鮮

同樣都是兄弟國家,中國可以賣殲10C給巴基斯坦,為何不賣給朝鮮

生活魔術專家
2025-05-11 10:19:19
勇士1-2森林狼!無解的不是輸球,而是無庫里后勇士發生兩大變化

勇士1-2森林狼!無解的不是輸球,而是無庫里后勇士發生兩大變化

魚崖大話籃球
2025-05-11 16:56:45
鬧心!女孩凌晨3點被閨蜜趕出家 嚎啕大哭!原因曝光,評論炸鍋

鬧心!女孩凌晨3點被閨蜜趕出家 嚎啕大哭!原因曝光,評論炸鍋

行者聊官
2025-05-10 11:30:41
為啥每個人的菊花周圍都有毛毛?

為啥每個人的菊花周圍都有毛毛?

奔波兒灞與灞波兒奔
2025-05-06 21:06:27
嚇死了!寧波女子車里鉆進2米長大蛇,連夜開車沖進消防隊

嚇死了!寧波女子車里鉆進2米長大蛇,連夜開車沖進消防隊

環球網資訊
2025-05-11 07:14:16
媒體人:周琦把自己的傷情&短板和盤托出,容易被廣廈針對性利用

媒體人:周琦把自己的傷情&短板和盤托出,容易被廣廈針對性利用

雷速體育
2025-05-11 09:44:21
最慘天王嫂!方媛自曝結婚7年在港沒房,郭富城把17億交給小美打理

最慘天王嫂!方媛自曝結婚7年在港沒房,郭富城把17億交給小美打理

扒星人
2025-05-10 11:22:46
“偽裝”國貨40年,一年狂賺1046億,日本巨頭竟成了中國茶代表?

“偽裝”國貨40年,一年狂賺1046億,日本巨頭竟成了中國茶代表?

谷盟
2025-05-11 16:04:17
讓張靚穎戴眼鏡的人真是個天才,誰懂推眼鏡那一下

讓張靚穎戴眼鏡的人真是個天才,誰懂推眼鏡那一下

東方不敗然多多
2025-05-10 12:15:59
梅西1098場轟生涯第860球創歷史最快紀錄,C羅1189場時達成

梅西1098場轟生涯第860球創歷史最快紀錄,C羅1189場時達成

懂球帝
2025-05-11 10:58:09
尹中卿同志逝世

尹中卿同志逝世

新京報政事兒
2025-05-10 17:33:14
一晚豪賭輸掉7億美金,挪用公司50億資金消失,現生死不明

一晚豪賭輸掉7億美金,挪用公司50億資金消失,現生死不明

天行艦
2025-05-11 12:46:03
“裸官”麥廣欽,被查

“裸官”麥廣欽,被查

觀察者網
2025-05-11 14:09:07
明明都是兄弟國家,中國可以賣戰機給巴基斯坦,為何不賣給朝鮮?

明明都是兄弟國家,中國可以賣戰機給巴基斯坦,為何不賣給朝鮮?

健身狂人
2025-05-09 21:53:49
2025-2026賽季世界斯諾克巡回賽賽程新鮮出爐,中國有六站賽事

2025-2026賽季世界斯諾克巡回賽賽程新鮮出爐,中國有六站賽事

臨知
2025-05-11 13:06:25
2025-05-11 18:19:00
數據結構和算法
數據結構和算法
專門介紹和寫算法題解的號
227文章數 2關注度
往期回顧 全部

頭條要聞

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

頭條要聞

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

體育要聞

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

娛樂要聞

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

財經要聞

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

科技要聞

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

汽車要聞

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

態度原創

時尚
手機
家居
游戲
房產

女人過了40歲就該像她們一樣打扮!簡約又得體,美得優雅自然

手機要聞

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

家居要聞

整潔寬敞 黑白木色拼接

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

房產要聞

海口頂級名校官宣增擴!南海大道、金盤的業主們要沸騰了!

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 永善县| 电白县| 临夏市| 安国市| 绍兴市| 沈丘县| 嘉峪关市| 化隆| 邢台县| 河北区| 铁岭市| 来宾市| 苍溪县| 潼南县| 儋州市| 华安县| 葫芦岛市| 盖州市| 河北省| 耿马| 江孜县| 广元市| 泰安市| 襄城县| 响水县| 晋中市| 日照市| 香港 | 彰武县| 隆林| 临潭县| 内黄县| 左云县| 华亭县| 孟州市| 西宁市| 汪清县| 克什克腾旗| 云南省| 太和县| 聂拉木县|