练练脑,继续过Hard题目
Posted 笨鸟居士的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练练脑,继续过Hard题目相关的知识,希望对你有一定的参考价值。
http://www.cnblogs.com/charlesblc/p/6384132.html
继续过Hard模式的题目吧。
97 | Interleaving String | 23.9% | Hard |
这道题目很好,是使用DP的典型方案。可惜我开始还是没能做出来。Discuss的解法非常好。好好学习。
bool isInterleave(string s1, string s2, string s3) { if(s3.length() != s1.length() + s2.length()) return false; bool table[s1.length()+1][s2.length()+1]; for(int i=0; i<s1.length()+1; i++) for(int j=0; j< s2.length()+1; j++){ if(i==0 && j==0) table[i][j] = true; else if(i == 0) table[i][j] = ( table[i][j-1] && s2[j-1] == s3[i+j-1]); else if(j == 0) table[i][j] = ( table[i-1][j] && s1[i-1] == s3[i+j-1]); else table[i][j] = (table[i-1][j] && s1[i-1] == s3[i+j-1] ) || (table[i][j-1] && s2[j-1] == s3[i+j-1] ); } return table[s1.length()][s2.length()]; }
391 | Perfect Rectangle | 24.2% | Hard |
这道题目很难。而这个解法,真是太巧了。
两个基本点:一是总面积等于各个区域面积之和;另一个是所有的点出现偶数次,除了四个角上面的点。
View Code
以上是关于练练脑,继续过Hard题目的主要内容,如果未能解决你的问题,请参考以下文章