StartUp Interview Question
SDE1sCountry: India
public boolean isWatchedFull (int videoLengthInSecs, VideoPart[] partArr)
{
boolean isFullWatched = false;
int totalTimeWatched = 0;
if (partArr.length==0)
{
return false;
}
if (partArr[0].startTime!=0)
{
return false;
}
totalTimeWatched = partArr[0].endTime - partArr[0].startTime;
for (int i=1; i< partArr.length; i++)
{
if (partArr[i-1].endTime!= partArr[i].startTime)
{
break;
}
totalTimeWatched += partArr[i].endTime - partArr[i].startTime;
}
if (totalTimeWatched == videoLengthInSecs)
{
isFullWatched = true;
}
return isFullWatched;
}
public boolean isWatchedFull (int videoLengthInSecs, VideoPart[] partArr)
{
boolean isFullWatched = false;
int totalTimeWatched = 0;
if (partArr.length==0)
{
return false;
}
if (partArr[0].startTime!=0)
{
return false;
}
totalTimeWatched = partArr[0].endTime - partArr[0].startTime;
for (int i=1; i< partArr.length; i++)
{
if (partArr[i-1].endTime!= partArr[i].startTime)
{
break;
}
totalTimeWatched += partArr[i].endTime - partArr[i].startTime;
}
if (totalTimeWatched == videoLengthInSecs)
{
isFullWatched = true;
}
return isFullWatched;
}
Approach :
1.Iterate the video part array
2. return true when videopart[i].endTime==videopart[i+1].startTime.
Finally the endTime should be equalled to videoLengthinSecs
- Yuvaraja August 06, 2015