大小爲N的整數arr定義爲{a,a,...。 。 。 , 一個 }。它必須將arr作爲參數,按升序的順序對其元素進行排序,然後將排序數組的每個元素打印爲新的輸出行。如果2個或更多的元素具有相同的頻率,則這個元素的子集應該按照非遞減順序排序。自定義排序數組
Sample Input 0 53124
Sample Output 0 1342
我試圖解決在Java和Python這個問題,因爲我的學習鍛鍊,我得到了在Java中這方面的工作,但不知道我應該怎麼處理它在Python。
public class CustomSort {
public static void main(String[] args) {
int[] arr = { 5, 3, 1, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 5, 4 };
customSort(arr);
}
static void customSort(int[] arr) {
Map<Integer, Integer> map = new HashMap<>();
List<Integer> numbers = new ArrayList<>();
for (int i : arr) {
if(map.containsKey(i)) {
map.put(i, map.get(i) + 1);
} else {
map.put(i, 1);
}
if (!numbers.contains(i)) {
numbers.add(i);
}
}
Collections.sort(numbers);
List<Integer> returning = new ArrayList<>(numbers);
int count = 1;
while(!returning.isEmpty()) {
returning = print(returning, map, count);
count++;
}
}
static List<Integer> print(List<Integer> numbers, Map<Integer, Integer> map, int howManyItens) {
List<Integer> returning = new ArrayList<>();
for (Integer integer : numbers) {
if(map.get(integer) == howManyItens) {
for (int i = 1; i <= howManyItens; i++) {
System.out.println(integer);
}
} else {
returning.add(integer);
}
}
return returning;
}
}
我應該如何在Python中做到這一點?
def customSort(arr):
# what should I do here?
什麼是翻譯部分你havi有什麼麻煩? –
根據你提出這個問題的方式和你對現有答案的評論來看,你需要從一個基本的Python教程開始,而SO不適合做這個。 –
*#我應該在這裏做什麼?*,可能寫一些代碼。在嘗試提出更多問題之前,請閱讀[我如何提出一個好問題?](http://stackoverflow.com/help/how-to-ask)。 –