Mixture

身未动,心已远

导航

2014年4月1日 #

STL: 从reverse到iterator

摘要: leetcode:Next Permutationclass Solution {public: void nextPermutation(vector &num) { auto rfirst = num.rbegin(); auto rlast = num.rend(); auto pivot = next(rfirst); while(pivot!=rlast&&*pivot>=*prev(pivot)) { ++pivot; } if(pivot==rlast) { ... 阅读全文

posted @ 2014-04-01 06:03 parapax 阅读(211) 评论(0) 推荐(0) 编辑

STL: remove

摘要: leetcode:Remove Elementcode from:https://github.com/soulmachine/leetcodeclass Solution {public: int removeElement(int A[], int n, int elem) { return distance(A,remove(A,A+n,elem)); }};又是STL一句话搞定。distance之前已经学过了,正好复习一下:distance(InputIterator first, InputIterator last), 返回的是两个迭代器的距离。remov... 阅读全文

posted @ 2014-04-01 05:45 parapax 阅读(189) 评论(0) 推荐(0) 编辑

STL: vector range constructor, set::insert

摘要: 思路来自https://github.com/soulmachine/leetcode,是4Sum这道题class Solution {public: vector > fourSum(vector &num, int target) { vector > res; if(num.size() > > twoSumBuf; sort(num.begin(),num.end()); for(int i=0;i(i,j)); } } set > setRes; for(si... 阅读全文

posted @ 2014-04-01 05:17 parapax 阅读(312) 评论(0) 推荐(0) 编辑

2014年3月31日 #

STL: prev,upper_bound,binary_search

摘要: 还是来自大神的题解:https://github.com/soulmachine/leetcodeclass Solution {public: vector> threeSum(vector& num) { vector> result; if (num.size() { *a, *b, c }); } } return result; }};又碰到了不会的stl的用法,如下:prev:template BidirectionalIterator prev (BidirectionalIterat... 阅读全文

posted @ 2014-03-31 17:03 parapax 阅读(434) 评论(0) 推荐(0) 编辑

effective C++ 2 prefer consts, enums and inlines to #defines

摘要: 如果有#define A 1.23这个记号A可能没进入记号表,那么如果在运用这个常量时发生了编译错误,错误信息提到了1.23而不是A,那么追踪这个错误就很费时,因为不知道这个1是哪里来的.而如果用const double A = 1.23,那么A肯定会进入记号表,也就避免了上面的情况。并且对于浮点常量,常量可能比使用#define导致较小的码(因为如果是宏名称,会无条件把所有的A替换成1.23的)。用常量替换#define时需要注意两种情况:1.为了方便被多个文件引入,常量定义一般放在头文件里。对于常量指针,要把指针声明为const。2.class专属常量。这也是优于#define的一个地方, 阅读全文

posted @ 2014-03-31 09:42 parapax 阅读(196) 评论(0) 推荐(0) 编辑

2014年3月30日 #

STL: bind1st, find_if

摘要: 还是Remove Duplicates from Sorted Array那道题,STL还有第二种方法(简直。。。)class Solution {public: int removeDuplicates(int A[], int n) { return removeDuplicates(A, A + n, A) - A; }templateOutIt removeDuplicates(InIt first, InIt last, OutIt output) { while (first != last) { *output++ = *first;... 阅读全文

posted @ 2014-03-30 10:59 parapax 阅读(346) 评论(0) 推荐(0) 编辑

STL: distance, unique

摘要: 看remove duplicates from sorted array,发现如果用STL的话可以一句话搞定,如下:class Solution { public: int removeDuplicates(int A[], int n) { return distance(A, unique(A, A + n)); }}; 去cplusplus.com上查了unique和distance的用法,如下:unique:equality (1)template ForwardIterator unique (... 阅读全文

posted @ 2014-03-30 10:26 parapax 阅读(1716) 评论(0) 推荐(0) 编辑

effective C++ 1 view c++ as a federation of languages

摘要: 这一节主要讲了c++由四个Sublanguage组成,分别是:CObject-oriented C++ (封装,继承,多态,动态绑定等)Template C++STL (容器,迭代器,算法等)次语言间的切换要注意编程策略的改变。比如在c时pass by value 通常比pass by reference 高效,但在object-oriented c++时由于有自定义的类的构造函数和析构函数的存在,pass-by-reference-to-const往往更好。而在STL中pass-by-value守则再次适用(这一条其实不明白为什么,但是似乎后面的条款里会讲到,暂时先放着)。这里我查了下pas 阅读全文

posted @ 2014-03-30 09:45 parapax 阅读(232) 评论(0) 推荐(0) 编辑

2014年3月28日 #

关键词分类项目总结

摘要: 仔细看了关键词分类项目的冠军队HadoopEagleEye的代码,这里做个总结。项目的目标是对搜索关键词进行分类(共33类),可以利用的辅助信息包括每个关键词的搜索结果(前10条搜索结果的标题),以及广告主与其购买的搜索关键词的对应关系(多对多的关系,并且并非每个关键词都被购买)。已标注的数据约100W条,需要进行预测的数据约1000W。HadoopEagleEye只用到了关键词文件(keyword_class.txt,仅包含关键词keyword以及标注结果label),大致处理流程如下:1.数据预处理分词它采用了两种分词方式,分别用nchar和perm代替,这两种方式是这样的nchar: 对 阅读全文

posted @ 2014-03-28 13:46 parapax 阅读(334) 评论(0) 推荐(0) 编辑

2013年12月14日 #

【转】LibLinear核心算法学习

摘要: from:http://hi.baidu.com/jakisou/item/8ed10b293fda088e9d63d170LibLinear核心算法学习最优化问题分类:L2-regularizedL1-LossSVM:二阶正则化一阶损失函数SVML2-regularizedL2-LossSVM:二阶正则化二阶损失函数SVML2-regularizedLogisticRegression:二阶正则化逻辑回归SVML1-regularizedL2-lossSupportVectorClassification:一阶正则化二阶损失函数SVCL1-regularizedLogisticRegress 阅读全文

posted @ 2013-12-14 22:18 parapax 阅读(1058) 评论(0) 推荐(0) 编辑