1 class Solution { 2 public: 3 int lastRemaining(int n) { 4 if (n == 1) return 1; 5 return 2 * (n / 2 + 1 - lastRemaining(n / 2)); 6 7 // vector<int> t; 8 // for (int i = 1; i <= n; i++) t.push_back(i); 9 // bool flag1 = true; 10 // while (t.size() > 1) { 11 // // cout << t.size() << endl; 12 // vector<int> tmp; 13 // bool flag2 = false; 14 // if (flag1) { 15 // for (int i = 0; i < t.size(); i++) { 16 // if (flag2) tmp.push_back(t[i]); 17 // flag2 = !flag2; 18 // } 19 // } else { 20 // for (int i = t.size() - 1; i >= 0; i--) { 21 // if (flag2) tmp.insert(tmp.begin(), t[i]); 22 // flag2 = !flag2; 23 // } 24 // } 25 26 // t.clear(); 27 // t = tmp; 28 // flag1 = !flag1; 29 // } 30 31 // return t[0]; 32 } 33 };
leetcode390
猜你喜欢
转载自www.cnblogs.com/asenyang/p/12665214.html
今日推荐
周排行