Different variations how a while loop can be used

Viewed 35

I am trying to solve some algorithmic questions and i come across some solutions where people are using while loops in different manner: Like in case of some problem like binary search based problems

Someone use while(left <= right) and someone uses while(left < right ). But what's the difference and how do i know what to use when ?

var nextGreatestLetter = function(letters, target) {
    let left = 0; 
    let right = letters.length ;
    while (left < right) {
        let mid = (left + right) >> 1;
        if (letters[mid] > target) {
            right = mid;
        } else {
            left = mid + 1;
        }
    }
    return letters[left % letters.length];
}; // Working Solution
var nextGreatestLetter = function(letters, target) {
    let left = 0; 
    let right = letters.length -1 ;
    while (left <= right) {
        let mid = (left + right) >> 1;
        if (letters[mid] > target) {
            right = mid;
        } else {
            left = mid + 1;
        }
    }
    return letters[left % letters.length];
}; //TLE

How are they working differently and how do i know which loop condition and array length i should choose.

0 Answers
Related