En kolay c bir Listesini Döndür *
Listeler 5* *bir listesi var
Demek Döndür:
=> {2,3,4,5,1} => {3,4,5,1,2} => {4,5,1,2,3}
Belki döndürmek bunun için iyi bir kelime değil, ama ben ne anlama geldiğini umarım anlamışsınızdır
Benim sorum, en kolay yolu (kısa kod, c# 4 Seri hazır) nedir, ve performans (makul performans) çarptı olmayacaktır
Teşekkürler.
CEVAP
basit(List<T>
) kullanmak için:
int first = list.RemoveAt(0);
list.Add(first);
Performansı kötü olsa da - O(n).
Dizi
Bu temelde List<T>
sürüme eşdeğer, ama daha fazla manuel:
int first = array[0];
Array.Copy(array, 1, array, 0, array.Length - 1);
array[array.Length - 1] = first;
Eğer LinkedList<T>
yerine kullanabilirsiniz eğer, bu çok daha basit olurdu:
int first = linkedList.First;
linkedList.RemoveFirst();
linkedList.AddLast(first);
Bu işlem sürekli her zaman olduğu gibi O(1) ' dir.
bir sıra kullanarak cadrell0 çözüm Dequeue
öğeyi kaldırır gibi tek bir deyimvedöndürür:
queue.Enqueue(queue.Dequeue());
Performans bu karakteristik herhangi bir belge bulamadım, benbekliyoruzQueue<T>
bir dizi ve dizin "sanal başlangıç noktası da bu(1) O başka bir çözümü olan." kullanılarak uygulanan
Tüm bu durumlarda liste boş ilk olmak için kontrol etmek isteyeceğini unutmayın. (Bu bir hata olarak görecek, ya da bir no-op.)
Nasıl Seri nesneler listesinden özelli...
En kolay C dizileri karşılaştırmak * ...
Kolay mülakat zor soru var: 1..100, ek...
JS/tuş/kapatıyorsa/keyup olayı bir Wor...
Nasıl Vim içinde yüklü tüm renk şemala...