there's a language that has that? anyway, wikipedia has sums everything up nicely in four easy steps: > > The following algorithm generates the next permutation lexicographically > after a given permutation. It changes the given permutation in-place. > > 1. Find the highest index *i* such that s[i] < s[i+1]. If no such index > exists, the permutation is the last permutation. > 2. Find the highest index *j* > *i* such that s[j] > s[i]. Such a *j* must > exist, since *i*+1 is such an index. > 3. Swap s[i] with s[j]. > 4. Reverse all the order of all of the elements after index *i* > > if the current number is already the last lexicographic permutation and there is no next one, then i basically just have an integer array of length 10 and find the number of occurrences for 0-9. then i find the smallest digit greater than 0 that occurs, and make it the first character in a string, then i add a 0 and then i do a for loop through the occurrences array and add that many of each number to the string.
--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "google-codejam" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-code?hl=en -~----------~----~----~----~------~----~------~--~---
