資料結構與演算法作業21

2021-10-04 22:51:28 字數 524 閱讀 6072

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。

這道題啊原本一看到,我腦中就是直接想好了暴力法**如何了。但是老師所不能用暴力法。所以我只能另尋他路。通過讀題,我們可以知道他尋找得是不包含重複字元得子串,不是子串行,所以為了由此可以想到在字串中每次第一次發現兩個相同字元時兩字元中間夾著得就是個無重複字元的子串。所以由此可以通過不停在每個串中找兩個重複字元然後看兩者中間夾得子串得長度。尋找最大值。

通過上面得分析求得對應的**,

**:

public

class

solution

top = a[s[i]];

}

a[s[i]

]= i +1;

}if(s.length<=1)

if(s.length - top > max)

return max;

}}

注意:當字串長度小於等於1時不可能存在重複字元,應設立if判別語句單獨討論。

效果:

資料結構作業21複習

解析來自某大佬 其中位置0到第乙個為空的位置4的比較次數為5,其餘的位置以此類推。平均不成功查詢次數 5 4 3 2 1 1 1 1 1 1 1 11 21 11 故選d 設數字 在大小為10的雜湊表中根據雜湊函式 h x x 10得到的下標對應為 那麼繼續用雜湊函式 h x x 表長 實施再雜湊並...

資料結構與演算法 作業2

給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。class solution def removeduplicates self,nums list int in...

資料結構與演算法作業3

給定乙個陣列nums和乙個值val,你需要原地移除所有數值等於val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用o 1 額外空間的條件下完成。首先,通過讀題可以知道 已知 乙個陣列nums,乙個值val。目標 將數值等於val的元素移除並返回新陣列的長度...