Friday, August 25, 2017

Codility - Lesson 3 Time complexity - 2. FrogJmp

Source Link:
https://codility.com/programmers/lessons/3-time_complexity/frog_jmp/

Question:
A small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to a position greater than or equal to Y. The small frog always jumps a fixed distance, D.
Count the minimal number of jumps that the small frog must perform to reach its target.
Write a function:
class Solution { public int solution(int X, int Y, int D); }
that, given three integers X, Y and D, returns the minimal number of jumps from position X to a position equal to or greater than Y.
For example, given:
X = 10 Y = 85 D = 30 the function should return 3, because the frog will be positioned as follows:
  • after the first jump, at position 10 + 30 = 40
  • after the second jump, at position 10 + 30 + 30 = 70
  • after the third jump, at position 10 + 30 + 30 + 30 = 100
Assume that:
  • X, Y and D are integers within the range [1..1,000,000,000];
  • X ≤ Y.
Complexity:
  • expected worst-case time complexity is O(1);
  • expected worst-case space complexity is O(1).
My Solution:
Notes:
1.  need to decide if to "plus one" or not
long plus =0;
2. using "mod" to decide
if( difference % D !=0
plus =1; // if not "perfectly Divisible", then plus one  
3. number of hops the frog needs to jump
hop = difference / D;
hop = hop + plus;  

No comments:

Post a Comment

Codility - Lesson 16 Greedy algorithms - 2. MaxNonoverlappingSegments

Source Link: https://app.codility.com/programmers/lessons/16-greedy_algorithms/max_nonoverlapping_segments/ Question: Located on a line ...