<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 獲取最長公共前綴 ~~~ ?/** ? * Notes: 最長公共前綴 ? * @Interface longestCommonPrefix ? * @param $strs ? * @return false|mixed|string ? * @author: Administrator - virus ? * @Time: 2021/4/20 17:05 ? */ ?function longestCommonPrefix($strs) ?{ ? ? ?if (count($strs) == 0) { ? ? ? ? ?return ""; ? ? } ? ? ?if (count($strs) == 1) { ? ? ? ? ?return $strs[0]; ? ? } ? ? ?$ans = $strs[0]; ? ? ?for ($i = 1; $i < count($strs); $i++) { ? ? ? ? ?for ($j = 0; $j < strlen($ans), $j < strlen($strs[$i]); $j++) { ? ? ? ? ? ? ?if ($ans[$j] != $strs[$i][$j]) { ? ? ? ? ? ? ? ? ?break; ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? ?$ans = substr($ans, 0, $j); ? ? ? ? ?if ($ans == "") ? ? ? ? ? ? ?return $ans; ? ? } ? ? ?return $ans; ?} ~~~ ### 輸出一個數的所有加法的排列組合 1. 輸出所有組合 ~~~ ?/* ? * 4 ? * 1+1+1+1 ? * 2+2 ? * 1+3 ? * 3+1 ? * */ ?function climbStairs($n, $i = 1) ?{ ? ? ?if ($i > $n / 2) { ? ? } else { ? ? ? ? ?$b = $n - $i; ? ? ? ? ?echo "{$n} = {$i} + {$b} \n"; ? ? ? ? ?climbStairs($n, $i + 1); ? ? } ?} ~~~ 2. 獲取所有組合 ~~~ ?function change($n, $i = 1) ?{ ? ? ?$arr = []; ? ? ?while ($i <= $n / 2) { ? ? ? ? ?$b = $n - $i; ? ? ? ? ?$a = [$i, $b]; ? ? ? ? ?array_push($arr, $a); ? ? ? ? ?$i++; ? ? } ? ? ?return $arr; ?} ~~~ ### 統計數組中只出現一次的數字 ~~~ ?/** ? * Notes: 只出現一次的數字 ? * Function: singleNumber ? * @param $nums ? * @return int|string ? * @author: Administrator - virus ? * Time: 2021/4/30 14:10 ? */ ?function singleNumber($nums) ?{ ? ? ?$nums = array_count_values($nums); ? ? ?foreach ($nums as $k => $v) { ? ? ? ? ?if ($v == 1) { ? ? ? ? ? ? ?return $k; ? ? ? ? } ? ? } ?} ~~~ ### 整數反轉 ~~~ ?/** ? * Notes: 整數反轉 ? * Function: reverse ? * @param $x ? * @return float|int ? * @author: Administrator - virus ? * Time: 2021/5/7 10:09 ? */ ?function reverse($x) ?{ ? ? ?if ($x < 0) { ? ? ? ? ?return -$this->reverse(-$x); ? ? } elseif ($x === 0) { ? ? ? ? ?return 0; ? ? } else { ? ? ? ? ?$reversed = 0; ? ? ? ? ?while ($x !== 0) { ? ? ? ? ? ? ?$reversed = $reversed * 10 + $x % 10; ? ? ? ? ? ? ?$x = (int)($x / 10); ? ? ? ? } ? ? ? ? ?return $reversed < 0 || $reversed >= 2 ** 31 ? 0 : $reversed; ? ? } ?} ~~~ ### 計算兩個數組的交集,且不重復 ~~~ ?/** ? * Notes: 計算兩個數組的交集,且不重復 ? * Function: intersection ? * @param $nums1 ? * @param $nums2 ? * @return array ? * @author: Administrator - virus ? * Time: 2021/5/10 13:41 ? */ ?function intersection($nums1, $nums2) ?{ ? ? ?$tmp = []; ? ? ?foreach ($nums1 as $k1 => $v1) { ? ? ? ? ?if (in_array($v1, $nums2)) { ? ? ? ? ? ? ?if (!in_array($v1, $tmp)) { ? ? ? ? ? ? ? ? ?array_push($tmp, $v1); ? ? ? ? ? ? } ? ? ? ? } ? ? } ? ? ?return $tmp; ?} ~~~ 升級版 ~~~ ?/** ? * Notes: 計算兩個數組的交接,升級內容 ? * Function: intersection_ii ? * @param $nums1 ? * @param $nums2 ? * @return array ? * @author: Administrator - virus ? * Time: 2021/5/10 15:37 ? */ ?function intersection_ii($nums1, $nums2) ?{ ? ? ?$arr = []; ? ? ?for ($i = 0; $i < count($nums1); $i++) { ? ? ? ? ?$index = array_search($nums1[$i], $nums2); ? ? ? ? ?//當元素在nums2中存在是,將該元素插入arr并在nums2中將該元素刪除 ? ? ? ? ?if ($index > -1) { ? ? ? ? ? ? ?array_push($arr, $nums1[$i]); ? ? ? ? ? ? ?// 在nums2中將該元素刪除 ? ? ? ? ? ? ?array_splice($nums2, $index, 1); ? ? ? ? } ? ? } ? ? ?return $arr; ?} ~~~ ### 返回數組元素的第三大的數,相同的值算一個 ~~~ ?/** ? * Notes: 返回數組元素的第三大的數,相同的值算一個 ? * Function: thirdMax ? * @param $nums ? * @return mixed ? * @author: Administrator - virus ? * Time: 2021/5/11 9:19 ? */ ?function thirdMax($nums) ?{ ? ? ?$len = count($nums); ? ? ?if ($len < 3) { ? ? ? ? ?return max($nums); ? ? } ? ? ?asort($nums); ? ? ?$nums = array_values(array_unique($nums)); ? ? ?if (count($nums) < 3) { ? ? ? ? ?return max($nums); ? ? } ? ? ?$result_index = count($nums) - 3; ? ? ?return $nums[$result_index]; ?} ~~~ ### 二分查找元素 ~~~ ?/** ? * Notes: 二分查找元素 ? * Function: twoSearch ? * @param $nums ? * @param $target ? * @return int ? * @author: Administrator - virus ? * Time: 2021/6/1 8:38 ? */ ?function twoSearch($nums, $target) ?{ ? ? ?$len = count($nums); ? ? ?$low = 0; ? ? ?$high = $len - 1; ? ? ?while ($low <= $high) { ? ? ? ? ?$mid = intval(($low + $high) / 2); ? ? ? ? ?if ($nums[$mid] > $target) { ? ? ? ? ? ? ?// 查找的目標比參照點小,舍去右邊的 ? ? ? ? ? ? ?$high = $mid - 1; ? ? ? ? } elseif ($nums[$mid] < $target) { ? ? ? ? ? ? ?// 查找的目標比參照點大,舍去左邊的 ? ? ? ? ? ? ?$low = $mid + 1; ? ? ? ? } else { ? ? ? ? ? ? ?// 查找目標與參照點相等 ? ? ? ? ? ? ?return $mid; ? ? ? ? } ? ? } ? ? ?// 未找到,返回-1 ? ? ?return -1; ?} ~~~ 案例:在目標數組里找出和為目標的2個數的索引下標 + 1顯示 ~~~ ?/** ? * Notes: 在目標數組里找出和為目標的2個數的索引下標 + 1顯示 ? * 利用二分查找 ? * Function: twoSum ? * @param $numbers ? * @param $target ? * @return array|int[] ? * @author: Administrator - virus ? * Time: 2021/6/1 9:08 ? */ ?function twoSum($numbers, $target) ?{ ? ? ?if (!is_array($numbers)) { ? ? ? ? ?return [-1, -1]; ? ? } ? ? ?if (empty($target)) { ? ? ? ? ?return [-1, -1]; ? ? } ? ? ?$len = count($numbers); ? ? ?for ($i = 0; $i < $len; $i++) { ? ? ? ? ?$low = $i + 1; ? ? ? ? ?$high = $len - 1; ? ? ? ? ?while ($low <= $high) { ? ? ? ? ? ? ?$mid = intval(($low + $high) / 2); ? ? ? ? ? ? ?if ($numbers[$mid] > $target - $numbers[$i]) { ? ? ? ? ? ? ? ? ?$high = $mid - 1; ? ? ? ? ? ? } elseif ($numbers[$mid] < $target - $numbers[$i]) { ? ? ? ? ? ? ? ? ?$low = $mid + 1; ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? ?return [$i + 1, $mid + 1]; ? ? ? ? ? ? } ? ? ? ? } ? ? } ? ? ?return [-1, -1]; ?} ?? ~~~ ~~~ ?/** ? * Notes: 二分查找,折半查找 遞歸 ? * Function: guess ? * @param $randNum ? * @param $minNum ? * @param $maxNum ? * @param int $guessNum ? * @return mixed ? * @author: Administrator - 仙工 ? * Time: 2021/6/8 11:31 ? */ ?function guess($randNum, $minNum, $maxNum, $guessNum = 1) ?{ ? ? ?//二分查找,除以2 ? ? ?$num = intval(($maxNum - $minNum) / 2); ? ? ?//中間值不能直接比較,需要再加上最小值,例如50-100,(100-50)/2等于25,中間值是50+25等于75 ? ? ?$guessValue = $num + $minNum; ? ? ?echo "猜測第{$guessNum}次:{$guessValue}\n"; ? ? ?if ($guessValue == $randNum) { ? ? ? ? ?return $randNum; ? ? } elseif ($guessValue > $randNum) { ? ? ? ? ?// 猜測值大于實際值 ? ? ? ? ?return guess($randNum, $minNum, $guessValue, $guessNum + 1); ? ? } elseif ($guessValue < $randNum) { ? ? ? ? ?// 猜測值小于實際值 ? ? ? ? ?return guess($randNum, $guessValue, $maxNum, $guessNum + 1); ? ? } ?} ~~~ ### 判斷一個字符串里的所有字符是否唯一 ~~~ ?/** ? * Note: 判斷一個字符串里的的所有字符是否唯一 ? * @param String $astr ? * @return bool ? */ ?function isUnique($astr) ?{ ? ? ?$temp = []; ? ? ?$len = strlen($astr); ? ? ?for ($i = 0; $i < $len; $i++) { ? ? ? ? ?if (isset($temp[$astr[$i]])) { ? ? ? ? ? ? ?return false; ? ? ? ? } else { ? ? ? ? ? ? ?$temp[$astr[$i]] = true; ? ? ? ? } ? ? } ? ? ?return true; ?} ~~~ ### 判斷兩個字符串的字符是否一致 ~~~ ?/** ? * 字符串 s1 和 s2 的字母是否一致 ? * @param String $s1 ? * @param String $s2 ? * @return Boolean ? */ ?function CheckPermutation($s1, $s2) ?{ ? ? ?// 長度都不一致,肯定是返回false ? ? ?if (strlen($s1) != strlen($s2)) { ? ? ? ? ?return false; ? ? } ? ? ?// 從2和字符串里提取出元素組合成數組,然后進行排序,排完序在形成字符串判斷兩者是否相等 ? ? ?$temp1 = []; ? ? ?$temp2 = []; ? ? ?for ($i = 0; $i < strlen($s1); $i++) { ? ? ? ? ?$temp1[] = $s1[$i]; ? ? } ? ? ?for ($i = 0; $i < strlen($s2); $i++) { ? ? ? ? ?$temp2[] = $s2[$i]; ? ? } ? ? ?sort($temp1); ? ? ?sort($temp2); ?? ? ? ?$s1 = implode("", $temp1); ? ? ?$s2 = implode("", $temp2); ?? ? ? ?return $s1 == $s2; ?} ~~~ ### 找出數組中數字出現次數超過數組長度一般的數字 ~~~ ?/** ? * Note:數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。沒有返回null ? * @param Integer[] $nums ? * @return Integer ? */ ?function majorityElement($nums) ?{ ? ? ?// 數組的長度的一半 ? ? ?$half_len = count($nums) / 2; ? ? ?$new_arr = array_count_values($nums); ? ? ?foreach ($new_arr as $k => $v) { ? ? ? ? ?if ($v > $half_len) { ? ? ? ? ? ? ?return $k; ? ? ? ? } ? ? } ?} ~~~ ### 將字符串元素分割成一個字符串數組 ~~~ ?/** ? * Notes: 將字符串元素分割成一個字符串數組 ? * Function: mb_str_split ? * @param $str ? * @return array|false|string[] ? * @author: Administrator - virus ? * Time: 2021/6/8 10:45 ? */ ?function mb_str_split($str) ?{ ? ? ?return preg_split('/(?<!^)(?!$)/u', $str); ?} ~~~ ### 找出0~n里不是順序的數 ~~~ ?/** ? * 從0~n里面順序的數里沒有的那一個 ? * @param Integer[] $nums ? * @return Integer ? */ ?function missingNumber($nums) ?{ ? ? ?$n = count($nums); ? ? ?return (0 + $n) * ($n + 1) / 2 - array_sum($nums); ?} ~~~ ### 不使用+號和其他算術運算符完成加法功能 ~~~ ?/** ? * 不使用+號和其他算術運算符 ? * @param Integer $a ? * @param Integer $b ? * @return Integer ? */ ?function add($a, $b) ?{ ? ? ?while ($b != 0) { ? ? ? ? ?// 二進制異或 ? ? ? ? ?$temp = $a ^ $b; // $temp = 1011 ? ? ? ? ?var_dump($temp); ? ? ? ? ?$b = ($a & $b) << 1; // 1010 001 0000 << 1 0 ? ? ? ? ?var_dump($b);// $b = 0 ? ? ? ? ?$a = $temp; // 1011 => 11 ? ? } ? ? ?return $a; ?} ~~~ ### 計算一個數的階乘有多少個0 ~~~ ?/** ? * 計算一個數的階乘尾數有多少個0 ? * @param Integer $n ? * @return Integer ? */ ?function trailingZeroes($n) ?{ ? ? ?$count = 0; ? ? ?while ($n > 0) { ? ? ? ? ?// 計算這個數能除以幾個5 ? ? ? ? ?$count += intval($n / 5); // 5 + 1 + 0 ? ? ? ? ?$n = intval($n / 5); // 5 => 1 => 0 ? ? } ? ? ?return $count; ?} ~~~ ### 斐波那契數列 ~~~ ?// 優化 ?function fab($n) ?{ ? ? ?$first = 0; ? ? ?$second = 1; ? ? ?$next_value = 0; ? ? ?for ($i = 2; $i <= $n; $i++) { ? ? ? ? ?$next_value = $first + $second; ? ? ? ? ?$first = $second; ? ? ? ? ?$second = $next_value; ? ? } ? ? ?return $next_value; ?} ?? ?function fab1($n) ?{ ? ? ?if ($n <= 0) { ? ? ? ? ?return 0; ? ? } ? ? ?if ($n == 0 || $n == 1) { ? ? ? ? ?return $n; ? ? } ? ? ?return fab1($n - 1) + fab1($n - 2); ?} ~~~ ### 替換手機號碼為\* ~~~ ?/** ? * Notes: 替換手機號碼某幾位為**** ? * Function: phoneEllipsis ? * @param $phone ? * @param int $start ? * @param int $end ? * @return string|string[] ? * @author: Administrator - virus ? * Time: 2021/7/12 11:55 ? */ ?function phoneEllipsis($phone, $start = 3, $end = 4) ?{ ? ? ?if ((strlen($phone) - $start) < 4) { ? ? ? ? ?return substr_replace($phone, '****', 3, 4); ? ? } ? ? ?return substr_replace($phone, '****', $start, $end); ?} ?? ~~~ ### 驗證手機號碼 ~~~ ?/** ? ? ? * Notes: 正則表達式驗證手機號碼 ? ? ? * Author: Administrator - virus ? ? ? * DateTime: 2021/1/25 13:12 ? ? ? * @param $phone ? ? ? * @return bool ? ? ? */ ?function check_phone($phone) ?{ ? ? ?if (!preg_match("/^1[345789]\d{9}$/", $phone)) { ? ? ? ? ?return false; ? ? } else { ? ? ? ? ?return true; ? ? } ?} ~~~ ### 文本過長,截取部分顯示省略號 ~~~ ?function cutSubstr($str, $len = 10) ?{ ? ? ?if (strlen($str) > $len) { ? ? ? ? ?$str = mb_substr($str, 0, $len, 'utf-8') . '...'; ? ? } ? ? ?return $str; ?} ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看