赵乐ACM

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年7月22日

摘要: Reverse digits of an integer.Example1:x = 123, return 321Example2:x = -123, return -321比较简单,以下是步骤:1. 计算x的长度,就是有几位;2. 从低位开始,取余得到这一位的数字,然后乘以10^(len-i),再加到结果的数字上;上代码:class Solution {public: int reverse(int x) { // Start typing your C/C++ solution below // DO NOT write int main() functi... 阅读全文
posted @ 2013-07-22 23:23 赵乐ACM 阅读(548) 评论(0) 推荐(0) 编辑

摘要: nRows = 20 2 4 6 81 3 5 7 9nRows = 30 4 8 12 161 3 5 7 9 11 13 152 6 10 14nRows = 40 6 12 181 5 7 11 13 17 192 4 8 10 14 163 9 15可以发现规律1. 一块区域,即一个类似于“v”的形状为一个区域,区域的size是nRows*2-2;2. 在每一个区域中,只有第一行和最后一行有一个数,其余行每行包含两个数;3. 在除第一行和最后一行的其余行,第二个数和第一个... 阅读全文
posted @ 2013-07-22 22:22 赵乐ACM 阅读(313) 评论(0) 推荐(0) 编辑

摘要: 两种解法,动态规划和KMP变种动态规划,类似于lcs的解法,数组flag[i][j]记录s从i到j是不是回文首先初始化,i>=j时,flag[i][j]=true,这是因为s[i][i]是单字符的回文,当i>j时,为true,是因为有可能出现flag[2][1]这种情况,比如bcaa,当计算s从2到3的时候,s[2]==s[3],这时就要计算s[2+1] ?= s[3-1],总的来说,当i>j时置为true,就是为了考虑j=i+1这种情况。接着比较s[i] ?= s[j],如果成立,那么flag[i][j] = flag[i+1][j-1],否则直接flag[i][j]=fa 阅读全文
posted @ 2013-07-22 20:51 赵乐ACM 阅读(10010) 评论(2) 推荐(1) 编辑