แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ Google-แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒ˜แƒฃแƒ“แƒแƒœ JavaScript-แƒจแƒ˜: 4 แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ–แƒ

แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ Google-แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒ˜แƒฃแƒ“แƒแƒœ JavaScript-แƒจแƒ˜: 4 แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ–แƒ

แƒ แƒแƒชแƒ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก แƒ•แƒกแƒฌแƒแƒ•แƒšแƒแƒ‘แƒ“แƒ˜, แƒแƒ›แƒแƒก แƒฌแƒแƒ•แƒแƒฌแƒงแƒ“แƒ˜ แƒ”แƒก แƒแƒ แƒ˜แƒก Google-แƒ˜แƒก แƒ˜แƒ›แƒ˜แƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒ˜แƒฃแƒก แƒ•แƒ˜แƒ“แƒ”แƒ.. แƒ˜แƒก แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒแƒก แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒขแƒแƒ แƒ“แƒ”แƒ‘แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒ˜แƒฃแƒ”แƒ‘แƒ˜ แƒ“แƒ˜แƒ“ แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒฃแƒ  แƒ™แƒแƒ แƒžแƒแƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒ˜แƒ’แƒแƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฌแƒงแƒ“แƒ”แƒ‘แƒ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ“.

แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒแƒ แƒ˜แƒก แƒ•แƒ˜แƒ“แƒ”แƒแƒก แƒ”แƒ แƒ—แƒ’แƒ•แƒแƒ แƒ˜ แƒ—แƒแƒœแƒฎแƒšแƒ”แƒ‘แƒ. แƒ›แƒแƒกแƒจแƒ˜ แƒ›แƒ” แƒ•แƒแƒซแƒšแƒ”แƒ• แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒก แƒงแƒ•แƒ”แƒšแƒ แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒžแƒšแƒฃแƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒฉแƒ”แƒ›แƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ JavaScript-แƒจแƒ˜. แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜แƒก แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ˜.

แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ—: "Habr"-แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก - แƒคแƒแƒกแƒ“แƒแƒ™แƒšแƒ”แƒ‘แƒ 10 แƒ แƒฃแƒ‘แƒšแƒ˜แƒ“แƒแƒœ Skillbox-แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ™แƒฃแƒ แƒกแƒ–แƒ” แƒฉแƒแƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒกแƒแƒก "Habr" แƒกแƒแƒ แƒ”แƒ™แƒšแƒแƒ›แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

Skillbox แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ—: แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ™แƒฃแƒ แƒกแƒ˜ "Mobile Developer PRO".

แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ”แƒซแƒšแƒ”แƒ•แƒ แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒก แƒกแƒ—แƒฎแƒแƒ•แƒ”แƒœ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก true แƒแƒœ false แƒ˜แƒ›แƒ˜แƒกแƒ“แƒ แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ—แƒฃ แƒแƒ แƒ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒแƒ แƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒฏแƒแƒ›แƒ˜ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒขแƒแƒšแƒ˜.

แƒกแƒฎแƒ•แƒ แƒกแƒ˜แƒขแƒงแƒ•แƒ”แƒ‘แƒ˜แƒ— แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒแƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ›แƒแƒกแƒ˜แƒ•แƒจแƒ˜ แƒแƒ แƒ˜ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜, x แƒ“แƒ y, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ”แƒ แƒ—แƒแƒ“ แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒฃแƒ“แƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒš แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก?

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ

แƒ—แƒฃ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ”แƒซแƒšแƒ”แƒ•แƒ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜ [1, 2, 4, 9] แƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒ แƒ˜แƒก 8, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก false-แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒกแƒ˜แƒ•แƒจแƒ˜ แƒแƒ แƒชแƒ”แƒ แƒ— แƒแƒ  แƒ แƒ˜แƒชแƒฎแƒ•แƒก แƒแƒ  แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ 8-แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ B

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒ˜ [1, 2, 4, 4] แƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒ แƒ˜แƒก 8, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒก true, แƒ แƒแƒ“แƒ’แƒแƒœ 4 + 4 = 8.

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ 1: แƒฃแƒฎแƒ”แƒจแƒ˜ แƒซแƒแƒšแƒ

แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”: O(Nยฒ).
แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”: O(1).

แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒจแƒ™แƒแƒ แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒ แƒ˜แƒก แƒฌแƒงแƒ•แƒ˜แƒšแƒ˜ แƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒ˜ แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ.

const findSum = (arr, val) => {
  for (let i = 0; i < arr.length; i++) {
    for (let j = 0; j < arr.length; j++) {
      if (i !== j && arr[i] + arr[j] === val) {
        return true;
      };
    };
  };
  return false;
};

แƒ”แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒแƒ แƒ˜ แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒฏแƒแƒ›แƒก แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒฏแƒ”แƒ  แƒแƒ“แƒแƒ แƒ”แƒ‘แƒก แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒฌแƒงแƒ•แƒ˜แƒšแƒก. (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ แƒแƒ“แƒ”แƒกแƒแƒช i = 1 แƒ“แƒ j = 2 แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ, แƒ แƒแƒช i = 2 แƒ“แƒ j = 1-แƒ—แƒแƒœ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ› แƒแƒ›แƒแƒœแƒแƒฎแƒกแƒœแƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒแƒ แƒ˜แƒ•แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒก).

แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒฌแƒงแƒ•แƒ˜แƒšแƒก แƒฌแƒงแƒแƒ‘แƒ˜แƒš แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒก, แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒ™แƒ•แƒแƒ“แƒ แƒแƒขแƒฃแƒšแƒ˜ O(Nยฒ) แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒ—.


แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ 2: แƒแƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒซแƒ”แƒ‘แƒœแƒ

แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”: O(Nlog(N)).
แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”: O(1)
.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ›แƒแƒกแƒ˜แƒ•แƒ”แƒ‘แƒ˜ แƒ“แƒแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒแƒ— แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒ‘แƒ˜แƒœแƒแƒ แƒฃแƒšแƒ˜ แƒซแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒซแƒ”แƒ‘แƒœแƒ แƒ—แƒแƒ•แƒ˜แƒกแƒ—แƒแƒ•แƒแƒ“ แƒแƒฅแƒ•แƒก O(log(N)). แƒ—แƒฃแƒ›แƒชแƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ™แƒ•แƒšแƒแƒ• แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— for loop, แƒ แƒแƒ—แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒฎแƒ•แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’.

แƒแƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜. แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“ แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒ‘แƒ˜แƒœแƒแƒ แƒฃแƒšแƒ˜ แƒซแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒšแƒแƒ“. แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” removeIndex() แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ™แƒšแƒ”แƒ‘แƒ˜แƒ—.

const findSum = (arr, val) => {
  for (let i = 0; i < arr.length; i++){
    if (binarySearch(removeIndex(arr, i), val - arr[i])) {
      return true;
    }
  };
  return false;
};
 
const removeIndex = (arr, i) => {
  return arr.slice(0, i).concat(arr.slice(i + 1, arr.length));
};
 
const binarySearch = (arr, val) => {
  let start = 0;
  let end = arr.length - 1;
  let pivot = Math.floor(arr.length / 2); 
  while (start < end) {
    if (val < arr[pivot]) {
      end = pivot - 1;
    } else if (val > arr[pivot]) {
      start = pivot + 1;
    };
    pivot = Math.floor((start + end) / 2);
    if (arr[pivot] === val) {
      return true;
    }
  };
  return false;
};

แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ“แƒแƒœ [0]. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒก แƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ™แƒšแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒแƒ แƒแƒ‘แƒ˜แƒ— แƒซแƒ˜แƒ”แƒ‘แƒแƒก, แƒ แƒแƒ—แƒ แƒ“แƒแƒ˜แƒœแƒแƒฎแƒแƒก, แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒฃ แƒแƒ แƒ แƒ›แƒแƒกแƒ˜แƒ•แƒก แƒ“แƒแƒ แƒฉแƒ”แƒœแƒ˜แƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒฏแƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“. แƒ”แƒก แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ แƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒ แƒ—แƒฎแƒ”แƒš.

แƒ—แƒแƒ•แƒแƒ“ for แƒ›แƒแƒ แƒงแƒฃแƒŸแƒก แƒ”แƒฅแƒœแƒ”แƒ‘แƒ O(N) แƒฌแƒ แƒคแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› for แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ— แƒแƒ แƒแƒ‘แƒ˜แƒ— แƒซแƒ˜แƒ”แƒ‘แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒซแƒšแƒ”แƒ•แƒ O(Nlog(N)-แƒ˜แƒก แƒกแƒแƒ”แƒ แƒ—แƒ แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”แƒก). แƒ”แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒฌแƒ˜แƒœแƒแƒ–แƒ” แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก.


แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ 3: แƒฌแƒ แƒคแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ

แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”: O(N).
แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”: O(1).

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ•แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก, แƒ’แƒแƒ•แƒ˜แƒฎแƒกแƒ”แƒœแƒแƒ—, แƒ แƒแƒ› แƒ›แƒแƒกแƒ˜แƒ•แƒ˜ แƒ“แƒแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ. แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒแƒ แƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ: แƒ”แƒ แƒ—แƒ˜ แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜ แƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒ‘แƒแƒšแƒแƒก. แƒ—แƒฃ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒกแƒแƒญแƒ˜แƒ แƒแƒกแƒ’แƒแƒœ, แƒ›แƒแƒจแƒ˜แƒœ แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒ“แƒ แƒ“แƒแƒกแƒแƒกแƒ แƒฃแƒšแƒ˜ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ”แƒ‘แƒ˜.

แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒฉแƒ•แƒ”แƒœ แƒแƒœ แƒจแƒ”แƒ•แƒฎแƒ•แƒ“แƒ”แƒ‘แƒ˜แƒ— แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒš แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก แƒ“แƒ แƒ“แƒแƒ•แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ— true, แƒแƒœ แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒ“แƒ แƒ“แƒแƒกแƒแƒกแƒ แƒฃแƒšแƒ˜ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ“แƒแƒ˜แƒงแƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก false.

const findSum = (arr, val) => {
  let start = 0;
  let end = arr.length - 1;
  while (start < end) {
    let sum = arr[start] + arr[end];
    if (sum > val) {
      end -= 1;
    } else if (sum < val) {
      start += 1;
    } else {
      return true;
    };
  };
  return false;
};


แƒแƒฎแƒšแƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“แƒแƒ, แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ•แƒ˜แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ’แƒแƒ แƒแƒœแƒขแƒ˜แƒแƒก, แƒ แƒแƒ› แƒ›แƒแƒกแƒ˜แƒ•แƒ˜ แƒ˜แƒงแƒ แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜?

แฒ แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’?

แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒจแƒ”แƒ’แƒ•แƒ”แƒซแƒšแƒ แƒฏแƒ”แƒ  แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ–แƒ”แƒ›แƒแƒแƒฆแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ แƒฎแƒกแƒœแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ’แƒแƒ  แƒ˜แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก แƒ”แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒ–แƒ”?

แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ“แƒแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒ— O (Nlog (N)). แƒ—แƒฃ แƒ›แƒแƒก แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ  แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒแƒจแƒ˜, แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก O(N)-แƒ“แƒแƒœ O(Nlog(N)-แƒ›แƒ“แƒ”). แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒฃ แƒแƒ แƒ แƒฌแƒ แƒคแƒ˜แƒ•แƒ˜ แƒแƒ›แƒแƒœแƒแƒฎแƒกแƒœแƒ˜แƒก แƒžแƒแƒ•แƒœแƒ แƒฃแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒ—?

Solution 4

แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”: O(N).
แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”: O(N).

แƒ“แƒ˜แƒแƒฎ, แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒฌแƒ แƒคแƒ˜แƒ•แƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ; แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ˜แƒ› แƒกแƒ˜แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒซแƒ”แƒ‘แƒ—. แƒ™แƒแƒ›แƒžแƒ แƒแƒ›แƒ˜แƒกแƒ˜ แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ›แƒ”แƒขแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ: แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒฅแƒแƒฆแƒแƒšแƒ“แƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ” แƒแƒฆแƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ O(1-แƒก).

แƒ—แƒฃ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒ แƒ˜แƒก 1, แƒฎแƒแƒšแƒ แƒกแƒแƒซแƒ˜แƒ”แƒ‘แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒ แƒ˜แƒก 8, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ 7 โ€žแƒซแƒ”แƒ‘แƒœแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒกโ€œ แƒ›แƒแƒกแƒ˜แƒ•แƒจแƒ˜.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒก แƒ•แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ—, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒแƒ— โ€žแƒกแƒแƒซแƒ˜แƒ”แƒ‘แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒกโ€œ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ•แƒœแƒแƒฎแƒแƒ—, แƒฃแƒ“แƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒ›แƒ” แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜ แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก. แƒ—แƒฃ แƒ™แƒ˜, แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ” แƒกแƒ˜แƒ›แƒแƒ แƒ—แƒšแƒ”.

const findSum = (arr, val) => {
  let searchValues = [val - arr[0]];
  for (let i = 1; i < arr.length; i++) {
    let searchVal = val - arr[i];
    if (searchValues.includes(arr[i])) {
      return true;
    } else {
      searchValues.push(searchVal);
    }
  };
  return false;
};

แƒแƒ›แƒแƒฎแƒกแƒœแƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ˜แƒ for loop, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช, แƒ แƒแƒ’แƒแƒ แƒช แƒ–แƒ”แƒ›แƒแƒ— แƒ•แƒœแƒแƒฎแƒ”แƒ—, แƒแƒฅแƒ•แƒก O(N) แƒฌแƒ แƒคแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”.

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒแƒ แƒ” แƒ’แƒแƒœแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒ Array.prototype.include(), JavaScript แƒ›แƒ”แƒ—แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก true แƒแƒœ false แƒ˜แƒ›แƒ˜แƒกแƒ“แƒ แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก.

Array.prototype.includes()-แƒ˜แƒก แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒก แƒ’แƒแƒกแƒแƒ แƒ™แƒ•แƒ”แƒ•แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ— MDN-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒš แƒžแƒแƒšแƒ˜แƒคแƒ˜แƒšแƒก (แƒ“แƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ JavaScript-แƒจแƒ˜) แƒแƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ JavaScript แƒซแƒ แƒแƒ•แƒ˜แƒก แƒกแƒแƒฌแƒงแƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ Google V8 (C++).

// https://tc39.github.io/ecma262/#sec-array.prototype.includes
if (!Array.prototype.includes) {
  Object.defineProperty(Array.prototype, 'includes', {
    value: function(valueToFind, fromIndex) {
 
      if (this == null) {
        throw new TypeError('"this" is null or not defined');
      }
 
      // 1. Let O be ? ToObject(this value).
      var o = Object(this);
 
      // 2. Let len be ? ToLength(? Get(O, "length")).
      var len = o.length >>> 0;
 
      // 3. If len is 0, return false.
      if (len === 0) {
        return false;
      }
 
      // 4. Let n be ? ToInteger(fromIndex).
      //    (If fromIndex is undefined, this step produces the value 0.)
      var n = fromIndex | 0;
 
      // 5. If n โ‰ฅ 0, then
      //  a. Let k be n.
      // 6. Else n < 0,
      //  a. Let k be len + n.
      //  b. If k < 0, let k be 0.
      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
 
      function sameValueZero(x, y) {
        return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));
      }
 
      // 7. Repeat, while k < len
      while (k < len) {
        // a. Let elementK be the result of ? Get(O, ! ToString(k)).
        // b. If SameValueZero(valueToFind, elementK) is true, return true.
        if (sameValueZero(o[k], valueToFind)) {
          return true;
        }
        // c. Increase k by 1.
        k++;
      }
 
      // 8. Return false
      return false;
    }
  });
}

แƒแƒฅ Array.prototype.include()-แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒแƒ แƒ˜แƒก while แƒชแƒ˜แƒ™แƒšแƒ˜ แƒ›แƒ”-7 แƒกแƒแƒคแƒ”แƒฎแƒฃแƒ แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช (แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก) แƒ™แƒ•แƒ”แƒ—แƒก แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒ›แƒ—แƒ”แƒš แƒกแƒ˜แƒ’แƒ แƒซแƒ”แƒก. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”แƒช แƒฌแƒ แƒคแƒ˜แƒ•แƒ˜แƒ. แƒ˜แƒกแƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜แƒ— แƒฉแƒแƒ›แƒแƒ แƒฉแƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒ›แƒแƒกแƒ˜แƒ•แƒก, แƒ“แƒ แƒแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ” แƒแƒ แƒ˜แƒก O (N + (N - 1)). Big O แƒœแƒแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒ— แƒ›แƒแƒก O(N) - แƒ แƒแƒ“แƒ’แƒแƒœ N แƒแƒ แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ“แƒ˜แƒ“แƒ˜ แƒ’แƒแƒ•แƒšแƒ”แƒœแƒ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒกแƒแƒก.

แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒฃแƒš แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”แƒก, แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒกแƒ˜แƒ’แƒ แƒซแƒ” แƒแƒกแƒแƒฎแƒแƒ•แƒก แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ›แƒแƒกแƒ˜แƒ•แƒก (แƒ›แƒ˜แƒœแƒฃแƒก แƒ”แƒ แƒ—แƒ˜, แƒ“แƒ˜แƒแƒฎ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒ’แƒœแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒก), แƒ แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“แƒแƒช O(N) แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒ—แƒ˜ แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”. แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ  แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ‘แƒแƒก.


แƒ˜แƒ›แƒ”แƒ“แƒ˜ แƒ›แƒแƒฅแƒ•แƒก, แƒ แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ•แƒ˜แƒ“แƒ”แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒ˜แƒฃแƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ. แƒ”แƒก แƒ’แƒ•แƒ˜แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ’แƒ–แƒ˜แƒ—, แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒ— (แƒ“แƒ แƒ, แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ).

Skillbox แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ—:

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒจแƒ”แƒ˜แƒซแƒ˜แƒœแƒ”แƒ— แƒกแƒแƒ˜แƒ›แƒ”แƒ“แƒ แƒฐแƒแƒกแƒขแƒ˜แƒœแƒ’แƒ˜ DDoS แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒ›แƒฅแƒแƒœแƒ” แƒกแƒแƒ˜แƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, VPS VDS แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก ๐Ÿ”ฅ แƒจแƒ”แƒ˜แƒซแƒ˜แƒœแƒ”แƒ— แƒกแƒแƒ˜แƒ›แƒ”แƒ“แƒ แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒฐแƒแƒกแƒขแƒ˜แƒœแƒ’แƒ˜ DDoS แƒ“แƒแƒชแƒ•แƒ˜แƒ—, VPS VDS แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜ | ProHoster