17
votes
Accepted
Get all combinations of selecting k elements from an n-sized array
Binomial coefficient \$\binom{n}{k}\$ is growing too fast (with \$n\$) to keep a list of all combinations in memory. I would suggest to use yield return instead.
...
16
votes
Accepted
List all possible permutations from a python dictionary of lists
The tool you need here is itertools.product:
...
15
votes
Determine if one string is a permutation of the another
I would say yes, use an array.
Arrays afford very good memory locality, which is good for cache performance. They essentially are the most basic and efficient hash map if the key is the index.
You ...
14
votes
Accepted
Find the total number of ways W, in which a sum S can be reached in N throws of a dice
1. Review
The sum \$s=0\$ can be reached in \$n=0\$ throws in exactly one way, but:
...
14
votes
Accepted
Determine if one string is a permutation of the another
Comparing two maps is linear, so that's not a big problem.
I don't think you've made particularly good use of maps though. As I see it, you have two choices. You could use an ...
13
votes
Accepted
A beautiful and easy way of permutation with recursion
The simpler code would look something like this:
...
12
votes
Generating all combinations of an array
In this case, a non-recursive solution is easier to understand, IMHO:
...
12
votes
Accepted
On Knuth's "Algorithm L" to generate permutations in lexicographic order
Optimising the functional approach
Iterative vs functional approach: Is it possible to use the (existing) functional methods without losing performance?
I don't think it's possible to use the ...
12
votes
Accepted
Generating Permutations in Python
Python has so many neat stuff to help you with this one, I feel alot can be rewritten:
I did a lot of C++ and miss std::swap(..)
Luckily you can swap really easy in python
For instance the swap ...
12
votes
Accepted
Earliest time frog can jump to the other side of a river in C#
Readability
The code needs more spacing. Considering the comments, the indentation and the ifs, it's hard to read without some good old empty lines.
Use brackets when using conditions, especially if ...
10
votes
Project Euler #15: counting paths through a 20 × 20 grid
#include <cstdio>
If your goal is to write C++, you're really off to a bad start using the C standard I/O library.
...
10
votes
Generate Letter Combinations of a Phone Number
You can set the keypad lookup as a constant instead of computing it dynamically. Setting it up as constant makes it clearer that what your intent is.
...
10
votes
HackerRank: Electronics Shop
early pruning
This is very nice:
// delete any that are over our budget
Doing it before sorting can slightly speed the sorting operation.
I say slightly ...
10
votes
Print sums of all subsets
Preface
This is great code. Your solution is more than \$10^{42}\$ times nicer than the given solutions on the linked page that promote crap like ...
10
votes
Accepted
LINQ for generating all possible permutations
English language
These are relatively minor issues, but fixing them might help other people to use / maintain your code.
The verb corresponding to permutation is permute.
I'm pretty sure that ...
10
votes
Accepted
Print all "balanced" sequences of 'A' and 'B'
Refactor to use functions
Try to avoid boolean variables. Pseudocode like:
...
9
votes
Accepted
Sequence-based enumeration of permutations in lexicographic order
Performance
I'm not particularly surprised that the version of permutations(of:) which uses AnySequence and ...
9
votes
Accepted
Maximum sub-array of non-negative numbers
1. Bugs
maxset returns the wrong answer for some inputs. For example:
>>> maxset([2, 1, -1, 1, 3])
[2, 1]
The ...
9
votes
Refactor the code which performs "cross-product", "reduce", "product of list" and "sum of list"
One immediate improvement is realizing that for e.g the input 14 7, all combinations like x x x x x x 9 and above can never sum ...
9
votes
Find all combinations of length 3 whose sum is divisible by a given number
Time complexity of iterating through all the combinations is O(n³).
We can solve it in O(n²) by using the fact that if you know 2 numbers out of 3, you know exactly ...
8
votes
Generating Permutations in Python
Are you allowed to use standard library functions? If so, why not just use itertools.permutations():
...
8
votes
Accepted
Project Euler #15: counting paths through a 20 × 20 grid
Why are you using unsigned short?
I presume the answer is somewhere along the lines of worrying about memory usage. There isn't a problem with that, but given that ...
8
votes
Generating the powerset in C
I'll just work through this from the top:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Looks good; we need these.
...
8
votes
HackerRank: Electronics Shop
General Guidelines
You have coded everything in a single class Program. Take advantage of the fact C# is an object oriented language. Create at least one custom ...
8
votes
Accepted
HackerRank: Electronics Shop
3 good answers already, but there's more!
I don't like that you modify the array you are given. This sort of thing would need to be documented, and generally creates confusion for all. You don't need ...
8
votes
LINQ for generating all possible permutations
Using line breaks and {} in code is not a crime :-P Only because we have the nice => doesn't mean we have to use it ...
8
votes
Accepted
Codility's Permutation Check in C#
One of the unfortunate things you'll notice about coding challenges is that the requirements often force you to write code that isn't ideal. I'm going to call these out, even though in this case they'...
8
votes
Letter Combinations of a phone number using a Dictionary
Review
LetterCombinations returns an IList<string> but I see no reason to return a modifiable collection. Consider ...
7
votes
Python one-liner to print permutations of a string
Even though the code fits a single line, this is not Pythonic. Just because Python allows to put a lot of things on a single line because of list comprehensions, ternary operators and other syntactic ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
combinatorics × 493python × 157
algorithm × 134
java × 109
performance × 102
programming-challenge × 71
c++ × 66
recursion × 49
strings × 41
python-3.x × 38
time-limit-exceeded × 37
beginner × 34
c# × 30
javascript × 26
array × 22
c × 21
c++11 × 16
haskell × 15
python-2.x × 14
complexity × 14
mathematics × 13
interview-questions × 12
functional-programming × 9
comparative-review × 9
reinventing-the-wheel × 8