乐视的蚱蜢问题,这么做不知道对不对。
//蚱蜢问题
#include<iostream>
#include<vector>
#include<deque>
using namespace std;
int main()
{
	int n;
	while (cin >> n)
	{
		deque<int>d;
		d.push_back(0);
		int count = 0;
		int find = false;
		while (!find)
		{
			int k=0;
			while (k<pow(2,count))
			{
				if (d.front() - count - 1 != n&&d.front() + count + 1 != n)
				{
					d.push_back(d.front()-count-1);
					d.push_back(d.front() +count +1);
					d.pop_front();
				}
				else
				{
					find = true;
					break;
				}
				k++;
			}
			count++;
		}
		cout << count << endl;
	}
}
	用的一个双向队列,应该是BFS思想
查看14道真题和解析


