本文整理汇总了C#中Element.Swap方法的典型用法代码示例。如果您正苦于以下问题:C# Element.Swap方法的具体用法?C# Element.Swap怎么用?C# Element.Swap使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Element
的用法示例。
在下文中一共展示了Element.Swap方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
static void Main(string[] args)
{
int numOfDigits = int.Parse(Console.ReadLine());
string[] numbers = Console.ReadLine().Split(' ');
int sequenceLenght = int.Parse(Console.ReadLine());
int elementToFind = int.Parse(string.Join("", numbers));
Array.Sort(numbers);
Element element = new Element(int.Parse(string.Join("", numbers)),0);
Queue<Element> q = new Queue<Element>();
HashSet<int> set = new HashSet<int>();
q.Enqueue(element);
bool SolutionFound = false;
while (q.Count > 0)
{
element = q.Dequeue();
if (element.values == elementToFind) // Equals(elementToFind))
{
SolutionFound = true;
break;
}
for (int i = 0; i <= numOfDigits - sequenceLenght; i++)
{
Element newElement = new Element(element.values, element.depth + 1);
newElement.Swap(i, sequenceLenght);
if (!set.Contains(newElement.values))
{
q.Enqueue(newElement);
set.Add(newElement.values);
}
}
}
if (!SolutionFound)
{
Console.WriteLine(-1);
}
else
{
Console.WriteLine(element.depth);
}
}