摘要:
http://www.itint5.com/oj/#9一开始有了个n*n的算法,就是把原来的数组*2,由环形的展开成数组。然后调用n次最大子段和的方法。超时。后来看到个O(n)的算法,就是如果不跨越末尾,就是最大字段和;如果跨越末尾,就是sum-(最小子段和)http://blog.csdn.net/hackbuteer1/article/details/6694193int maxConsSum2(const vector &arr) { if (arr.size() == 0) return 0; int dp = 0; int max1 = 0; for (int... 阅读全文
posted @ 2014-01-16 21:59
阿牧遥
阅读(517)
评论(0)
推荐(0)
摘要:
http://www.itint5.com/oj/#14要记录原来的索引,所以用了额外的空间,新生成一个结构。如果要省空间,可以用指针来排序,最后拿指针减去索引0的位置就是index,见:http://www.itint5.com/discuss/172/%E4%B8%BA%E5%95%A5%E6%88%91%E8%BF%99%E9%A2%98%E5%9C%A8%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%97%B6%E4%BC%9Asegmentation-fault这里没有用指针,也有很多错误,足可见面试时不要自取其辱,寻找合理的方法即可。一要注意,sort和comp函数, 阅读全文
posted @ 2014-01-16 17:44
阿牧遥
阅读(275)
评论(0)
推荐(0)
摘要:
http://www.itint5.com/oj/#4这题是利用完全二叉树的性质计算节点数目。那么是通过比较左右子树的最左结点的高度来看那边是满的,然后递归计算。//使用getLeftChildNode(TreeNode)获得左儿子结点//使用getRightChildNode(TreeNode)获得右儿子结点//使用isNullNode(TreeNode)判断结点是否为空int get_left_height(TreeNode root) { if (isNullNode(root)) { return 0; } else { return get_l... 阅读全文
posted @ 2014-01-16 00:02
阿牧遥
阅读(397)
评论(0)
推荐(0)

浙公网安备 33010602011771号