色综合老司机第九色激情 _中文字幕日韩av资源站_国产+人+亚洲_久久久精品影院_久久久视频免费观看_欧美激情亚洲自拍_亚洲成av人片在线观看香蕉_热草久综合在线_欧美极品第一页_2020国产精品自拍

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 10個算法提升你的JavaScript技能

10個算法提升你的JavaScript技能

來源:千鋒教育
發布人:wjy
時間: 2022-06-01 12:00:00 1654056000

  # 10個算法提升你的JavaScript技能

10個算法提升你的JavaScript技能

  **1)在數組中查找缺失的數字**

  ```text

  Input: [1, 2, 3, 4, 6, 7, 8, 9, 10]

  Output: 5

  const find_missing = function(input) {

  let n = input.length + 1;

  let sum = 0;

  for (let i in input) {

  sum += input[i];

  }

  return Math.floor((n * (n + 1)) / 2) - sum;

  };

  ```

  提示:算術級數和公式:

  ![img](https://pic3.zhimg.com/80/v2-06445d8bc3e42de5a9bc9da81392d52e_720w.jpg)

  **2)反轉整數**

  ```text

  Input: num = 123

  Output: 321

  Input: num = -123

  Output: -321

  const reverse = function(num) {

  let result = 0;

  while (num !== 0) {

  result = result * 10 + num % 10;

  // Math.trunc() 方法會將數字的小數部分去掉,只保留整數部分

  num = Math.trunc(num / 10);

  }

  if (result > 2**31 || result < -(2**31)) return 0;

  return result;

  };

  ```

  **3) 數組排列**

  ```text

  Input: [1,2,3]

  Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

  const permute = function(nums) {

  let results = [];

  let go = (current) => {

  if (current.length === nums.length){

  results.push(current);

  return;

  }

  nums.forEach(n => {

  if (!current.includes(n)){

  go([...current, n]);

  }

  });

  }

  go([]);

  return results;

  };

  ```

  **4) 字符串中的排列**

  ```text

  Input: s1 = "ab", s2 = "eidbao"

  Output: true

  Input: s1 = "aa", s2 = "eidbao"

  Output: false

  const checkPermutation = function(s1, s2) {

  const len1 = s1.length, len2 = s2.length;

  if (len1 > len2) return false;

  const count = Array(26).fill(0);

  for (let i = 0; i < len1; i++) {

  count[s1.charCodeAt(i)-97]++;

  count[s2.charCodeAt(i)-97]--;

  }

  if (!count.some(e => e !== 0)) return true;

  for (let i = len1; i < len2; i++) {

  count[s2.charCodeAt(i)-97]--;

  count[s2.charCodeAt(i-len1)-97]++;

  if (!count.some(e => e !== 0)) return true;

  }

  return false;

  };

  ```

  **5) 最長有效括號**

  ```text

  Input: "(()"

  Output: 2

  Input: ")()())"

  Output: 4

  const longestValidParentheses = function(S) {

  let stack = [-1], ans = 0;

  for (let i = 0; i < S.length; i++)

  if (S[i] === '(') stack.push(i)

  else if (stack.length === 1) stack[0] = i

  else stack.pop(), ans = Math.max(ans, i - stack[stack.length-1])

  return ans

  };

  ```

  **6) 4Sum**

  ```text

  const fourSum = function(nums, target) {

  let result = [];

  let length = nums.length;

  if (length < 4) return result;

  nums = nums.sort((a, b) => a - b );

  for (let i = 0; i < length - 3; i++) {

  if (nums[i] === nums[i - 1]) continue;

  for (let j = i + 1; j < length - 2; j++) {

  if (j > i + 1 && nums[j] === nums[j - 1]) continue;

  let k = j + 1;

  let l = length - 1;

  while (k < l) {

  const sum = nums[i] + nums[j] + nums[k] + nums[l];

  if (sum === target) {

  result.push([nums[i], nums[j], nums[k], nums[l]])

  }

  if (sum <= target) {

  k += 1;

  while (nums[k] === nums[k - 1]) {

  k += 1;

  }

  }

  if (sum >= target) {

  l -= 1;

  while (nums[l] === nums[l + 1]) {

  l -= 1;

  }

  }

  }

  }

  }

  return result;

  };

  ```

  **7)字符串相乘**

  ```text

  Input: num1 = "2", num2 = "3"

  Output: "6"

  const multiply = function(num1, num2) {

  if (num1 == 0 || num2 == 0) return '0';

  const result = [];

  for (let a = num1.length - 1; a >= 0; a--) {

  for (let b = num2.length - 1; b >= 0; b--) {

  const p1 = a + b;

  const p2 = a + b + 1;

  const sum = (result[p2] ?? 0) + num1[a] * num2[b];

  result[p1] = (result[p1] ?? 0) + Math.floor(sum / 10);

  result[p2] = sum % 10;

  }

  }

  result[0] == 0 && result.shift();

  return result.join('');

  };

  ```

  **8) 最短回文**

  ```text

  Input: s = "aacecaaa"

  Output: "aaacecaaa"

  Input: s = "abcd"

  Output: "dcbabcd"

  const shortestPalindrome = function(s) {

  let index = 0;

  for (let i = s.length - 1; i >= 0; i--) {

  if (s[i] === s[index]) index++;

  }

  if (index === s.length) return s;

  let remainingRev = s.substring(index, s.length);

  console.log(remainingRev);

  remainingRev = reverse(remainingRev);

  return remainingRev + shortestPalindrome(s.substring(0, index)) + s.substring(index);

  };

  function reverse(string) {

  let myString = '';

  for (let i = string.length - 1; i >= 0; i--) {

  myString = myString + string[i];

  }

  return myString;

  };

  ```

  **9)整數到英文單詞**

  ```text

  Input: num = 123

  Output: "One Hundred Twenty Three"

  Input: num = 1234567

  Output: "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"

  const numberToWords = function(num) {

  let result = toHundreds(num % 1000);

  const bigNumbers = ["Thousand", "Million", "Billion"];

  for (let i = 0; i < 3; ++i) {

  num = Math.trunc(num / 1000);

  result = num % 1000 !== 0 ? [toHundreds(num % 1000), bigNumbers[i], result].filter(Boolean).join(" ") : result;

  }

  return result.length === 0 ? "Zero" : result;

  }

  function toHundreds(num) {

  const numbers = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten",

  "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"];

  const tens = ["", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"];

  const result = Array(3).fill("");

  let a = Math.trunc(num / 100), b = num % 100, c = num % 10;

  result[0] = a > 0 && `${numbers[a]} Hundred`;

  result[1] = b < 20 ? numbers[b] : tens[Math.trunc(b / 10)]

  result[2] = b >= 20 && `${numbers[c]}`;

  return result.filter(Boolean).join(" ");

  }

  ```

  **10) 贖金票據**

  ```text

  Input: ransomNote = "aa", magazine = "ab"

  Output: false

  Input: ransomNote = "aa", magazine = "aab"

  Output: true

  const canConstruct = function(ransomNote, magazine) {

  if (ransomNote.length > magazine.length) return false;

  let magMap = new Map();

  for(let char of magazine) {

  magMap.set(char, (magMap.get(char) || 0 ) + 1);

  }

  for(let note of ransomNote) {

  let counter = magMap.get(note);

  if (!counter) return false;

  magMap.set(note, --counter);

  }

  return true;

  };

  ```

  經過一番研究,我得出了這 10 個算法,每個算法都有特殊的技巧,不僅可以提高

  我們的 JavaScript 技能,還可以幫助我們提高批判性思維能力。

  **- End -**

  更多關于“html5培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經驗,課程大綱更科學更專業,有針對零基礎的就業班,有針對想提升技術的提升班,高品質課程助理你實現夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
開班信息
北京校區
  • 北京校區
  • 大連校區
  • 廣州校區
  • 成都校區
  • 杭州校區
  • 長沙校區
  • 合肥校區
  • 南京校區
  • 上海校區
  • 深圳校區
  • 武漢校區
  • 鄭州校區
  • 西安校區
  • 青島校區
  • 重慶校區
  • 太原校區
  • 沈陽校區
  • 南昌校區
  • 哈爾濱校區
色综合老司机第九色激情 _中文字幕日韩av资源站_国产+人+亚洲_久久久精品影院_久久久视频免费观看_欧美激情亚洲自拍_亚洲成av人片在线观看香蕉_热草久综合在线_欧美极品第一页_2020国产精品自拍
亚洲欧美日韩一区二区 | 亚洲精品国产无套在线观| 成人蜜臀av电影| 亚洲资源中文字幕| 免费一级欧美片在线观看| 精品成人佐山爱一区二区| a美女胸又www黄视频久久| 视频在线观看国产精品| 国产三级欧美三级日产三级99 | 成人av高清在线| 亚洲国产视频一区| 中文字幕欧美日韩一区| 欧美一区二区三区视频在线观看| 成人精品鲁一区一区二区| 国产人久久人人人人爽| 91麻豆精品国产自产在线观看一区| 99久久综合精品| 国产精品123区| 韩国三级在线一区| 蜜臀久久99精品久久久画质超高清 | 欧美日韩色综合| 天堂久久一区二区三区| 中文字幕中文字幕一区| 色综合天天天天做夜夜夜夜做| 国产精品资源站在线| 久久国产精品第一页| 日韩不卡手机在线v区| 天天影视色香欲综合网老头| 亚洲va天堂va国产va久| 日韩精品一卡二卡三卡四卡无卡| 蜜桃视频一区二区| 国产成人日日夜夜| 欧美综合一区二区三区| 欧美精品粉嫩高潮一区二区| 日韩一级大片在线观看| 国产女主播一区| 亚洲精品视频在线看| 免费在线看一区| 国产宾馆实践打屁股91| 97久久超碰精品国产| 777精品伊人久久久久大香线蕉| 这里只有精品视频在线观看| 久久精品亚洲精品国产欧美kt∨| 亚洲视频 欧洲视频| 国产精品网曝门| 一区二区久久久久久| 青青国产91久久久久久| 国产精品综合av一区二区国产馆| caoporm超碰国产精品| 欧美日韩另类国产亚洲欧美一级| 精品久久久久99| 夜色激情一区二区| 国产成人一区在线| 制服丝袜激情欧洲亚洲| 亚洲欧美日韩国产一区二区三区| 精品午夜久久福利影院| 91免费视频网址| 久久尤物电影视频在线观看| 亚洲免费观看高清完整版在线观看| 青青草国产成人99久久| 色一情一乱一乱一91av| 国产三级三级三级精品8ⅰ区| 亚洲bdsm女犯bdsm网站| 北条麻妃国产九九精品视频| 精品日韩一区二区三区免费视频| 一区二区高清视频在线观看| 成人网页在线观看| 国产亚洲欧美日韩俺去了| 亚洲午夜免费电影| 成人高清伦理免费影院在线观看| 日韩欧美激情一区| 日本在线不卡视频| 在线播放中文一区| 美女视频黄久久| 日韩欧美自拍偷拍| 乱一区二区av| 欧美另类z0zxhd电影| 午夜视黄欧洲亚洲| 日韩精品在线一区| 国产一区二区三区四区五区美女| 欧美一卡二卡三卡四卡| 日韩精品电影一区亚洲| 欧美日韩国产高清一区| 亚洲成av人片观看| 日韩精品一区二区三区老鸭窝| 喷水一区二区三区| 国产亚洲精品7777| 日本精品一级二级| 日韩和欧美一区二区三区| 日韩欧美一区在线观看| 韩日欧美一区二区三区| 国产欧美精品日韩区二区麻豆天美| 国产精品综合久久| 亚洲欧洲美洲综合色网| 欧美天堂亚洲电影院在线播放| 亚洲chinese男男1069| 日韩精品一区二| 99久免费精品视频在线观看| 一二三区精品视频| 日韩欧美电影一区| av在线这里只有精品| 亚洲一区二区三区四区五区黄| 欧美一区二区三区视频| 国产一区二区三区免费看 | 欧美午夜精品理论片a级按摩| 亚洲成人手机在线| 久久久国产精华| 在线观看日韩电影| 国产精品自在在线| 首页国产欧美日韩丝袜| 国产欧美日韩在线| 91精品欧美一区二区三区综合在 | 亚洲综合999| 丁香五精品蜜臀久久久久99网站| 婷婷成人综合网| 天天综合天天综合色| 久久精品免费观看| 日本道精品一区二区三区| 成人福利视频网站| 五月天国产精品| 国产在线播精品第三| 欧美亚洲综合久久| 成人av资源在线观看| 成人免费毛片片v| 日韩欧美精品在线视频| 欧美三级韩国三级日本一级| 日韩一区在线免费观看| 日韩理论在线观看| 欧美三级一区二区| 国产成人av资源| 91国偷自产一区二区三区观看| 久久久99精品免费观看不卡| 视频一区二区欧美| 国产精品嫩草久久久久| 国产精品888| 一区二区三区日本| 欧美日韩成人高清| 极品少妇xxxx精品少妇| 中文字幕av一区二区三区免费看| 亚洲国产美国国产综合一区二区 | 91成人在线精品| 国产一区二区三区免费在线观看 | 欧美日韩精品一区二区在线播放| 亚洲国产精品久久久男人的天堂| 精品捆绑美女sm三区| 中文字幕日韩一区二区| 国产亚洲一区二区三区在线观看| 美国精品在线观看| 免费高清成人在线| 激情久久久久久久久久久久久久久久| 日韩成人午夜电影| 国产精品久久福利| 久久九九全国免费| 国产亚洲精品aa| 国产在线一区二区综合免费视频| 亚洲欧美日本韩国| 99riav久久精品riav| 国产一区二区三区精品视频| 九九九久久久精品| 久久久国产综合精品女国产盗摄| 国产精品88888| 国产精品一二三| 极品少妇xxxx精品少妇偷拍| 男男视频亚洲欧美| 国产精品系列在线播放| 国内成人自拍视频| 国产v综合v亚洲欧| av福利精品导航| 91国偷自产一区二区开放时间| 色美美综合视频| 69精品人人人人| 2022国产精品视频| 一区二区在线观看av| 青青青爽久久午夜综合久久午夜| 国产一区 二区 三区一级| av一本久道久久综合久久鬼色| 色综合天天视频在线观看 | 狠狠色丁香婷婷综合久久片| 国产麻豆精品一区二区| 一本色道a无线码一区v| 精品国产乱码久久| 亚洲国产sm捆绑调教视频| 国产精品一品二品| 欧美日韩精品福利| 国产亚洲一本大道中文在线| 亚洲精品国产第一综合99久久 | 在线视频国产一区| 久久一区二区三区国产精品| 亚洲黄色录像片| 成人免费va视频| 久久久高清一区二区三区| 中文字幕亚洲电影| 97久久超碰国产精品电影| 激情综合亚洲精品| 欧美日韩精品欧美日韩精品一 | 亚洲视频免费在线| 成人国产精品免费观看| 久久久久九九视频| 亚洲一区二区三区四区五区黄 | 成人av网址在线观看|