我遇到了一个生成不重复数字的方法的问题。一切都很顺利,但我永远不会想得到如下结果: 1,2,3,4或4,3,2,1。我们的想法是不按升序或降序接收数字。
以下是有人可以帮助我的方法。谢谢!
public static List<int> GenerateNumbers(int mn, int mx)
{
List<int> source = new List<int>();
for (int i = mn; i <= mx; i++)
source.Add(i);
List<int> randomNumbers = new List<int>();
while (source.Count != 0)
{
int randomIndex = UnityEngine.Random.Range(0, source.Count - 1);
randomNumbers.Add(source[randomIndex]);
source.RemoveAt(randomIndex);
}
return randomNumbers;
}
public static bool IsSorted(List<int> arr)
{
for(int i=0;i<arr.Count - 1; i++)
{
if (arr[i] < arr[i + 1])
return true;
else
return false;
}
return true;
}