본문 바로가기

알고리즘5

JavaScript로 고유 값 통합 [0, 1, 3, 2, 8, 1], [5, 2, 9, 1, 4, 7, 4], [2, 1, 6, 10, 6] [0, 1, 3, 2, 8, 5, 9, 4, 7, 6, 10] 솔루션 1: 루프에 중첩됨 for (let i = 0; i < arguments.length; i++) { let arrayArguments = arguments[i]; for (let j = 0; j < arrayArguments.length; j++) { let indexValue = arrayArguments[j] ``` ```js if (result.indexOf(indexValue) < 0) { result.push(indexValue); ``` ```js console.log(uniteUnique1([0, 1, 3, 2, 8,.. 2022. 2. 15.
用javascript學習演算法和資料結構(5) 首先,歡迎你來到演算法和資料結構系列文章的倒數第二篇,應該吧???凡事都不好說,哈哈。 此篇要介紹複雜許多的dijkstra algorithm(最短路徑演算法),本來這篇會是這個系列的最後一篇(又是太天真),但礙於內容長度的關係,就被拆成兩篇來寫,除了閱讀時間和篇幅不至於長到讓你棄讀或是直接放棄寫code(脫離 此篇幅大至分成 데이크스트라시 文字流程解說 데이크스트라 부호 圖解流程 데이크스트라 데이크스트라시 dijkstra這個演算法是用來在graph資料結構中找到任意起點到任意點的最短路徑。 在這個演算法中,我們會有三個class,分別是 node(value: 節點值、visited: 節點是否拜訪、edges: 存放該節點鄰近節點的陣列、distancefromstartnode: 該節點離起點的距離、previous: 該節點的上一個節點,以及一個用來增加該節點鄰近節.. 2022. 1. 11.
Javascript 알고리즘: 역추적 가능한 모든 조합 또는 일부 제약 조건이 있는 조합을 찾는 작업이라면 역추적 문제일 가능성이 높습니다. 이런 유형의 질문들이 제가 고민하던 것들이기 때문에 여기서 그것들을 세분화하려고 합니다. 46. 순열. 고유한 정수의 배열 번호가 지정되면 가능한 모든 순열을 반환합니다. 답변은 어떤 순서로든 반환할 수 있습니다. Input: nums = [1,2,3] Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 이것의 역추적 솔루션은 매우 유사하며, 단지 우리가 다음 반복으로 전달할 배열의 조건과 방법을 달리 할 뿐이다. 이 경우 현재를 제외한 모든 요소를 통과시켜야 합니다. 이 솔루션의 시간 복잡도는 O(n!)입니다. 가능한 모든 솔루션을 검토하고 있으며 .. 2021. 12. 29.
재귀함수를 이용해 분할 및 정복 알고리즘 구현하기 재귀 프로그래밍을 배우는 첫 번째 단계는 재귀 프로그래밍을 배우는 것이다. 내가 거기서 뭘 했는지 봤지? 대답할 경우 === "예" "읽다"를 반환하다. 그렇지 않으면 ReturnToStart() 종지부를 찍다 재귀란 무엇인가? 재귀의 정의는 꽤 간단하다: 자신을 부르는 함수. 암호로 처음 접하는 건 마법처럼 보일지도 몰라 만약 그날 우리의 마술 능력이 떨어진다면, 그것은 실수처럼 보일 수도 있다. 반복적인 문제 해결을 이해하는 유용한 방법 중 하나는 반복적인 문제 해결(루프 사용)과 비교하는 것이다. 재귀로 해결할 수 있는 많은 문제는 루프를 사용하여 해결할 수 있다. 우리가 루프를 사용할 수 있다면 왜 그 안에 있는 함수를 불러야 할까요? 예를 들어 성능에 있어서는 반복 솔루션이 재귀 솔루션보다 더 .. 2021. 12. 28.
JavaScript에서 문자열에 있는 모든 단어의 모든 첫 글자를 대문자로 변경하는 방법 이 기사에서는 문자열 배열에서 모든 첫 글자를 대문자로 사용하는 방법에 대해 알아보겠습니다. 단답 let str = “every word in this sentence should start with uppercase”; function upperCaseStr(str) { let arr = str.split(“ “); let result = arr.map(word=> word.charAt(0).toUpperCase() + word.slice(1)); return result; } 당신이 원한다면 이것을 복사해서 붙여넣을 수 있습니다. 어쨌든, 이것에 대한 튜토리얼을 원한다면, 아래의 텍스트를 읽으세요. 문자열을 배열로 변환합니다. 우리 끈이 이렇게 있잖아요. let str = “capitalize eve.. 2021. 12. 28.