-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add new Josephus file in Recursive directory #1728
base: master
Are you sure you want to change the base?
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1728 +/- ##
==========================================
+ Coverage 84.76% 84.78% +0.01%
==========================================
Files 378 379 +1
Lines 19742 19767 +25
Branches 2955 2961 +6
==========================================
+ Hits 16735 16760 +25
Misses 3007 3007 ☔ View full report in Codecov by Sentry. |
return collection[0] | ||
} else { | ||
step = (step - 1) % collection.length | ||
collection.splice(step, 1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is
This algorithm also doesn't really benefit from recursion. It would be clearer as a simple while
loop:
while (collection.length > 1) { /* kill someone */ }
return collection[0]
const collection1 = [1] | ||
const collection2 = [] | ||
|
||
it('should return 4 for step size of 3', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Repetitive tests of the form "should return X for Y" should use it.each
Thanks for the review @appgurueu Alright. In that case would there be a need to modify it for the recursive directory. |
know more
Describe your change:
As part of my contribution to hacktoberfest 2024, I have added a file recursively implementing the Josephus algorithm and its associated test to the Recursive directory. The Josephus algorithm is a counting-out game that returns the last number after removing every kth number in a circle. More on it can be found here
Checklist:
Example:
UserProfile.js
is allowed butuserprofile.js
,Userprofile.js
,user-Profile.js
,userProfile.js
are notFixes: #{$ISSUE_NO}
.