1. 程式人生 > 資訊 >小米鐵蛋喜迎 OTA 升級,支援遛狗、拎狗

小米鐵蛋喜迎 OTA 升級,支援遛狗、拎狗

資料量太大,顯然不能用n方的演算法

又只是子串,遍歷一遍即可

遇到一個重複的字母,只有兩個操作

1、以此字母為間隔,將下一個字母作為起點

2、從上一個此字母(就是重複字母)的下一個字母開始,到此字母連起來

顯然,第2個操作帶來的價值最大

因此需要記錄起點

注意一點,如果一個字母重複了,但重複字母在起點之前,那是不用管的

class Solution {
public:
    map<char, int> vis;
    int lengthOfLongestSubstring(string s) {
        int length = s.length();
        
int ret = 0, temp = 0, ss = 1; for(int i = 0; i < length; i++) { if(vis[s[i]] >= ss) { ret = max(ret, temp); temp = i + 1 - vis[s[i]]; ss = vis[s[i]] + 1; vis[s[i]] = i + 1; }
else temp++, vis[s[i]] = i + 1; } ret = max(ret, temp); return ret; } };
自己選擇的路,跪著也要走完。朋友們,雖然這個世界日益浮躁起來,只要能夠為了當時純粹的夢想和感動堅持努力下去,不管其它人怎麼樣,我們也能夠保持自己的本色走下去。