上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 43 下一页
摘要: 快排代码:#include using namespace std;void swap(int &a, int &b) { int tmp = b; b = a; a = tmp;}// end is inclusiveint partition(int arr[], int start, int end) { int i = start; int idx = start; int pivot = arr[end]; while (i != end) { if (arr[i] idx) { _sort(arr, idx+1, end); }}int main() { int a 阅读全文
posted @ 2014-02-21 12:22 阿牧遥 阅读(196) 评论(0) 推荐(0)
摘要: 如果那天前先做了这道题就好了。。言归正传,需要两个dummy节点,本质上就是从原来的链表中删除最小的,加到新的链表中去。class Solution {public: ListNode *insertionSortList(ListNode *head) { ListNode *o_dummy = new ListNode(0); ListNode *n_dummy = new ListNode(0); o_dummy->next = head; ListNode *last = n_dummy; while (o_d... 阅读全文
posted @ 2014-02-12 21:06 阿牧遥 阅读(181) 评论(0) 推荐(0)
摘要: http://blog.csdn.net/sunorry?viewmode=contents有些笔记MIME 类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔:text/html, text/plain, image/jpeg, image/gif, video/quicktime, application/vnd.ms-powerpoint用 URI 来描述 web 上的资源。URL 和 URN 是它的两种实现。前者用唯一的路径指向资源,后者用唯一的名称来指定资源。不过后者涉及现有架构部署不多。HTTP请求,request由三个部分组成:起始字段、首部字段、 阅读全文
posted @ 2014-02-11 15:09 阿牧遥 阅读(293) 评论(0) 推荐(0)
摘要: 分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容错性) 可靠性定理:任何分布式系统只可同时满足二点,没法三者兼顾。忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。关系数据库的ACID模型拥有 高一致性 + 可用性 很难进行分区:Atomicity原子性:一个事务中所有操作都必须全部完成,要么全部不完成。Consistency一致性. 在事务开始或结束时,数据库应该在一致状态。Isolation隔离层. 事务将假定只有它自 阅读全文
posted @ 2014-01-27 20:48 阿牧遥 阅读(265) 评论(0) 推荐(0)
摘要: 这个题和leetcode的基本一样。用了更好点的思路。在A中折半猜是不是中位数,A中没有后在B中猜。最后猜到B[j]int median(vector &A) { int n = A.size(); if (n % 2 == 1) { return A[n/2]; } else { return (A[n/2-1] + A[n/2]) / 2; }}int median(vector &A, vector &B, int l, int r) { if (l > r) return median(B, A, 0, B.size()-1);... 阅读全文
posted @ 2014-01-22 23:28 阿牧遥 阅读(259) 评论(0) 推荐(0)
摘要: http://www.itint5.com/oj/#49这一题一开始想到是用HashSet+链表来做,链表记录prev和next。这样也可以,后来看到都是连续的整数,而且交流了一下觉得可以用类似并查集的方式来做,一个数组,每个位置记录该位置的直接后继,删除元素时更改后继。vector vec;void init(int N) { vec.resize(N); for (int i = 0; i = vec.size()) return; vec[x] = query(x+1);}int query(int x) { if (x >= vec.size()) return... 阅读全文
posted @ 2014-01-22 18:46 阿牧遥 阅读(280) 评论(0) 推荐(0)
摘要: http://www.itint5.com/oj/#47一种做法是:把矩形所占的方格都设为-1,就是个最大子矩阵和问题。复杂度o(w^2*h)或o(w*h^2),空间W*H猜想应用场景是:电脑屏幕上已经有了n个聊天框,新建一个聊天框,放在屏幕的哪个位置最好。客户端计算的话,空间复杂度太高的算法应该是没法实际应用的。这种方法OJ也会空间超出。另一种做法(贪心思想,和一个矩形覆盖最小):所求矩形的上边要么贴着边界,要么贴着某个已有矩形的下边所求矩形的下边要么贴着边界,要么贴着某个已有矩形的上边所求矩形的左边要么贴着边界,要么贴着某个已有矩形的右边所求矩形的右边要么贴着边界,要么贴着某个已有矩形的左 阅读全文
posted @ 2014-01-22 15:08 阿牧遥 阅读(293) 评论(0) 推荐(0)
摘要: http://www.itint5.com/oj/#39最大子矩阵和,复杂度O(n^3)。利用了最大子段和的方法。int maxRectSum(vector > &matrix) { int n = matrix.size(); if (n == 0) return 0; int m = matrix[0].size(); if (m == 0) return 0; int max = 0; for (int i = 0; i vec(n); for (int j = i; j max) max = sum; } ... 阅读全文
posted @ 2014-01-22 11:57 阿牧遥 阅读(229) 评论(0) 推荐(0)
摘要: 先按照一维排序,然后在第二维求最大上升子序列。注意比较的时候还要考虑第一维虽然排序,还是有可能相等的。bool comp(const Box &a, const Box &b) { if (a.vol != b.vol) { return a.vol &boxes) { sort(boxes.begin(), boxes.end(), comp); int size = boxes.size(); int max = 0; vector dp(size); for (int i = 0; i dp[i]) dp[i] = dp[j]; ... 阅读全文
posted @ 2014-01-21 22:41 阿牧遥 阅读(233) 评论(0) 推荐(0)
摘要: http://www.itint5.com/oj/#28这题有意思。一开始还想不清楚,看了解释,很棒。这个题目的特殊之处是所有节点的值都是不一样的. 所以递归过程可以大大简化. 先看两种遍历的性质:pre-order: root, left *************, right #########post-order: **************left, ########right, root所以 pre-order 的第一个元素一定等于 post-order 的最后一个元素. 然后在post-order中由前往后找, 找出等于pre-oder中第二个元素的位置, 也就是 left 的 阅读全文
posted @ 2014-01-21 21:58 阿牧遥 阅读(265) 评论(0) 推荐(0)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 43 下一页