91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用PHP和Golang來刷leetCode

發布時間:2021-10-11 11:12:32 來源:億速云 閱讀:126 作者:柒染 欄目:大數據

如何用PHP和Golang來刷leetCode ,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

方法一

class Solution {    /**     * @param String $s     * @return Integer     */    function lengthOfLongestSubstring($s) {        if (strlen($s)==0) return 0;        $map = [];        $max = 0;        $left = 0;        for($i = 0; $i < strlen($s); $i++){            if(array_key_exists($s[$i],$map)){                $left = max($left, $map[$s[$i]] + 1);            }            $map[$s[$i]] = $i;            $max = max($max,$i-$left+1);        }        return $max;    }}

方法二:

思路:逐個檢查所有的子字符串,看它是否包含有重復的字符。

$str = "";function lengthOfLongestSubstring($s) {    $strlen = strlen($s);    if($strlen<=1){        return $strlen;    }    $subStrlen = [];
   for($i=0;$i<$strlen;$i++){        $subStrArr = [];        $subStrArr[] = $s[$i];        for($j=$i+1;$j<$strlen;$j++){            $subStrArr[] = $s[$j];            if(count(array_unique($subStrArr))!=count($subStrArr)){                array_pop($subStrArr);                break;            }
       }        $subStrlen = count($subStrArr)>count($subStrlen)?$subStrArr:$subStrlen;    }    return count($subStrlen);}$a = lengthOfLongestSubstring($str);print_r($a)

方法三

如果從索引 i 到 j - 1 之間的子字符串s[i,j)已經被檢查為沒有重復字符。我們只需要檢查 s[j] 對應的字符是否已經存在于子字符串 s[i,j) 中。


   
   
  
function lengthOfLongestSubstring($s) {        $len = strlen($s);        if ($len < 2){            return $len;        }        $win = [];        $res_len = 0;        $i = 0;        $j = 0;        while ($i<$len && $j<$len){            if(!in_array($s[$i],$win)){                $win[]= $s[$i++];                $res_len = max($res_len,$i-$j);
           }else{                $j++;                array_shift($win);            }        }        return $res_len;    }
     


嗯 簡單試了一下 差不多是上面方法的20倍 并且隨著字符串的長度增長會更大  因為他是O(n)  

方法四:優化版滑動窗口

  function lengthOfLongestSubstring($s){        $len = strlen($s);        $j = 0;        $i = 0;        $maxStrLen = 0;        $set = [];        while ($j<$len){            if(array_key_exists($s[$j],$set)){                $i = max($i,$set[$s[$j]]);
           }            $maxStrLen = max($maxStrLen,$j-$i+1);            $set[$s[$j]]=$j+1;            $j++;        }        return $maxStrLen;    }

使用Golang方法

package main
import "fmt"//最長不含有重復字符的子串func lenthOfNonRepeatingSubstr(s string) int {  lastOccurred := make(map[byte]int)  start := 0  maxLength := 0  for i, ch := range []byte(s) {    if lastI, ok := lastOccurred[ch]; ok && lastI >= start {      start = lastI + 1    }    if i-start+1 > maxLength {      maxLength = i - start + 1    }    lastOccurred[ch] = i  }  return maxLength}
func main() {  fmt.Println(lenthOfNonRepeatingSubstr("abcabcbb")) //3  fmt.Println(lenthOfNonRepeatingSubstr("bbbbb"))    //1  fmt.Println(lenthOfNonRepeatingSubstr("pwwkew"))   //3}

關于如何用PHP和Golang來刷leetCode 問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汪清县| 于都县| 蒙阴县| 宁明县| 南溪县| 高唐县| 汽车| 封丘县| 克什克腾旗| 含山县| 永宁县| 山东省| 万宁市| 吉隆县| 营口市| 休宁县| 麻城市| 龙门县| 沾益县| 开远市| 沙田区| 富蕴县| 衡水市| 平罗县| 普格县| 咸阳市| 衡东县| 娱乐| 新营市| 皮山县| 江安县| 兖州市| 莱芜市| 阿拉善左旗| 宣化县| 安多县| 湖北省| 西乌| 磐安县| 新丰县| 祁连县|