摘要:        
对我来说,此题不易。此题是BFS+状态位压缩。参考:http://blog.csdn.net/hackbuteer1/article/details/73922451. BFS也可以用来求最优解。2. 要理解棋盘上任何一个子,所有翻奇数次和所有翻偶数次都是等效的。可以想象假设其他子不翻(这是其他棋子翻过得某个状态),只翻某一个子。那么它翻0次和翻2次结果是一样的。由于求最小值,所以任何一个子只能翻0次或1次。3. 所以最多有2^16个状态。4. 状态可以压缩。比如bwwbbbwbbwwbbwww可以表示成1001 1101 1001 1000,也就是十进制40344。5. 对每一个要反转的子,    阅读全文
posted @ 2013-10-09 20:08
阿牧遥
阅读(4156)
评论(0)
推荐(0)
        
            
        
        
摘要:        
这道题目以前见过,所以想了一下就想出来了http://www.cnblogs.com/lautsie/p/3259724.html。就是先修改指针维护一个从原先节点到新建节点的关系,最后再改回去。实现过程中,一度忘记把node往前更新了。public class Solution { public RandomListNode copyRandomList(RandomListNode head) { if (head == null) return null; RandomListNode node = head; // copy node a...    阅读全文
posted @ 2013-10-09 17:24
阿牧遥
阅读(556)
评论(0)
推荐(0)
        
            
        
        
摘要:        
经过网上搜索,写出了个时间复杂度O(n),空间也O(n)的算法。据说空间可以优化到O(1),这个再表。做法是先从左向右扫一遍,然后再从右向左扫一遍。public class Solution { public int candy(int[] ratings) { int len = ratings.length; if (len == 0) return 0; int num[] = new int[len]; int cnt = 0; for (int i = 1; i ratings[i - 1]) { ...    阅读全文
posted @ 2013-10-09 15:27
阿牧遥
阅读(352)
评论(0)
推荐(0)
        
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号