[LeetCode] 3740. Minimum Distance Between Three Equal Elements I

Chobby·약 19시간 전

LeetCode

목록 보기
956/962

😎풀이

  1. nums 3중 순회
    1-1. i, j, k번째 인덱스 수가 동일한 경우 탐색
    1-2. 조건에 맞는 점화식 (j - i) + (k - j) + (k - i)을 통해 현재 거리 계산
    1-3. 최단 거리 갱신
  2. 동일한 세 쌍이 존재하지 않을 경우 -1 반환
  3. 세 쌍이 존재할 경우 최단 거리 반환
function minimumDistance(nums: number[]): number {
    const n = nums.length
    let minDist = Infinity
    for(let i = 0; i < n; i++) {
        const iNum = nums[i]
        for(let j = i + 1; j < n; j++) {
            const jNum = nums[j]
            if(iNum !== jNum) continue
            for(let k = j + 1; k < n; k++) {
                const kNum = nums[k]
                if(jNum !== kNum) continue
                const curDist = (j - i) + (k - j) + (k - i)
                minDist = Math.min(minDist, curDist)
            }
        }
    }
    if(minDist === Infinity) return -1
    return minDist
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글