390. 消除游戏

 1 //f(n) 表示从左到右(forward)的最终结果
 2 //b(n) 表示从右到左(backward)的最终结果
 3 class Solution 
 4 {
 5 public:
 6     int leftToRight(int n) 
 7     {
 8         if (n == 1) return 1;
 9         else return 2 * rightToLeft(n/2);
10     }
11 
12     int rightToLeft(int n) 
13     {
14         if (n == 1) return 1;
15         if (n%2 == 0) return 2*leftToRight(n/2)-1;
16         return 2*leftToRight(n/2);
17     }
18 
19     int lastRemaining(int n) 
20     {
21         return leftToRight(n);
22     }
23 };

 

posted @ 2020-04-30 14:52  Jinxiaobo0509  阅读(125)  评论(0)    收藏  举报