Shortest Distance to Target String in a Circular Array

Easy
Watch on YouTube ↗

Solution

class Solution {
    public int closestTarget(String[] words, String target, int start) {
        int n = words.length;
        int ans = n+1;
        // O(n), O(1)
        for(int i=0; i<n; i++) {
            if(words[i].equals(target))
            {
                int dist1 = Math.abs(start-i);
                int dist2 = n - dist1;
                ans = Math.min(ans, Math.min(dist1, dist2));
            }
        }

        if(ans > n)
            return -1;
        return ans;

    }
}








/*
n = 7
start = 2, targetIndex = 5
0 1 2 3 4 5 6




dist1 = abs(2-5) = 3
dist2 = n-dist1

*/