摘要: DFS的遍历。里面的关键是两个:1.使用了合理的数据结构,用ArrayList来存每一段;2.后来发现一个条件是,除了‘0’以外不能有以‘0’开头的段;我看有的人判断比255小是先转化为数字再判断,比我这个字符串的简单。public class Solution { ArrayList result = new ArrayList(); ArrayList section = new ArrayList(); public ArrayList restoreIpAddresses(String s) { result.clear(); sectio... 阅读全文
posted @ 2013-09-20 21:20 阿牧遥 阅读(238) 评论(0) 推荐(0)
摘要: 高精度大数相乘。首先是用数组存大数,然后关键的是ans[i+j] += num1[i]*num2[j]。数组中的数这时可能会大于10,就扫一遍做进位处理。编写中犯过的两个错:1.ans[i+j] += num1[i]*num2[j]没有写+;2.略过末尾的0时,忘记判断index>=0;3.如果结果... 阅读全文
posted @ 2013-09-20 20:52 阿牧遥 阅读(295) 评论(0) 推荐(0)
摘要: http://wikioi.com/problem/1017/划分型动态规划1.转移方程是:f[i][j]=max(f[k][j-1]*t[k+1][i]),f[i][j]表示前面i个字符加上j个乘号所得的最大值,t[i][j]表示i到j的数值;2.可预处理,先计算出每段的数字值;3.看代码分析错误实在不行时,还是debug一下吧。#include #include #define ulong long longusing namespace std;ulong t[45][45]; // number from i to j; start from 0;ulong f[45][10]; // 阅读全文
posted @ 2013-09-20 12:18 阿牧遥 阅读(162) 评论(0) 推荐(0)