随笔分类 -  代码总结

除动态规划以外的算法题目总结
摘要:遇到一些题目, 用递归加 bottom-up 解法能得到更优的时间复杂度, 对这些题目做一个汇总1. google code jam Rational Number Tree 2. 二叉树的公共祖先节点3. leetcode convert sorted list to balanced searc... 阅读全文
posted @ 2014-04-24 20:20 周卓 阅读(479) 评论(0) 推荐(0) 编辑
摘要:对本科使用的数据结构课本感情很深, 当初学的时候, 并不需要上机编程, 考试时只需写出伪代码即可. 而今, 实现的细节已经变得必须了, 所以, 再次拿出课本, 复习一下实现细节数据结构和算法1. 堆的实现(插入, 删除, 初始化, 以最大根为例)2. 快排的实现3. 归并排序的实现4. 数组实现队列... 阅读全文
posted @ 2014-04-24 07:05 周卓 阅读(251) 评论(0) 推荐(0) 编辑
摘要:题目1 : Arithmetic Expression 描述Given N arithmetic expressions, can you tell whose result is closest to 9? 输入Line 1: N (1 c/d a*d > b*c.因此我们将所有的数都表示成 abs(divided/divisor -9) 的形式. 比如 901 / 100 -> 1/100; 3*3 -> 0/1; 2+6 -> 1/1; 8 - -1 = 0/1;这样就不会有小数的问题了.#include #include #include #include #i 阅读全文
posted @ 2014-04-12 10:11 周卓 阅读(252) 评论(0) 推荐(0) 编辑
摘要:这里给出了 Bellmanford 和 SPFA 的算法思想和伪代码, 但这离具体的实现还有差距, 最短路径算法的使用频率很高, 有必要总结一下1. SPFA 算法算法的核心是: 松弛有效的操作必然发生在松弛前导节点成功松弛的节点上/* * spfa.h * * Created on: Apr 8... 阅读全文
posted @ 2014-04-08 15:39 周卓 阅读(259) 评论(0) 推荐(0) 编辑
摘要:题目剑指 offer 数字在排序数组中出现的次数剑指 offer 旋转数组的最小数字Leetcode Search for a RangeLeetcode Search Insert PositionLeetcode Search a 2D matrixLeetcode sqrt(x)九度 1534 数组中第 K 小的数字剑指 offer 二维数组中的查找思路1. 二分法总体不难, 但是在边界问题的处理上需要格外的小心2. 上面的题目都是二分查找问题的变形, 要么是二分查找配合 int 特性(1/2 = 0), 要么是利用二分查找的原理来查找3. 第一题和第三题是等价的, 都是查找一个数在排序 阅读全文
posted @ 2014-03-22 21:47 周卓 阅读(795) 评论(0) 推荐(0) 编辑
摘要:题目九度 1502最大值最小化POJ 3273Monthly ExpensePOJ 3258 River Hopscotch思路1. 读题时若感觉到需要求最大(小)值最小(大)化, 就要考虑使用二分搜索2. 解题框架: 先初始化一个值 x, 然后根据 x 是否能够满足条件调整 x 的值. 因为 x 是 int 类型, 所以保证 x 能收敛到符合题意3. 在 1502 中, x 是每一个抄写员应该抄写的本页数, x 可以初始化为 1 或者所有书的页数之和. 当 x 的设置使得需要的抄写员多于 k 时说明 x 偏小了, 每个抄写员应该抄写更多的页数. Vice verse, 最终将能收敛到正解4. 阅读全文
posted @ 2014-03-22 20:56 周卓 阅读(327) 评论(0) 推荐(0) 编辑
摘要:1. double, float 类型小数点后取两位输出printf("%0.2f\n", number);cout string result; int n = 10000; stream > result; 4. string 到 int 的转换 #include string result = "100000"; int n = 0; stream > n; 阅读全文
posted @ 2014-03-22 19:35 周卓 阅读(161) 评论(0) 推荐(0) 编辑
摘要:题目LeetcodeReverse Words in a String九度1525:子串逆序打印思路1. 做过几道正序处理字符串的题目, 这些题目的特点是状态比较多, 假如都写在 mian 函数里可能导致思路混乱. 所以总结了一下解决此类题目的框架2.void(int) gotoFlow1() { ...}void (int) gotoFlow2() { ...}int i;for(i = 0; i = s.size()) break; if(s[i] == uuuu) { // condition 2 gotoFlow2(); continue; }} 3. 这个框架外层用 whil... 阅读全文
posted @ 2014-03-22 17:55 周卓 阅读(189) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示