自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 leetcode Linked List Cycle II

问题:Given a linked list, return the node where the cycle begins. If there is no cycle, return null

2014-04-23 13:48:46 650

原创 leetcode: Reorder List

Problem:Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes' values.For example,Given {1,2,3,4}, reorder it

2014-04-22 13:18:30 545

原创 (虚)继承类的内存大小计算

今天接触到了虚继承类的大小计算,以前不是很清楚,所以刚开始没想出来,然后百度了一下发现网上各种的博客,然后选了几篇看了下。感觉举的例子大体都是一样的,但是有些地方个人感觉说的不是让人很明白,有点难理解,所以自己重新整理了下,以后忘了可以过来复习一下...虚函数的工作原理涉及到了虚函数表指针vptr和虚函数表vtbl,当一个对象调用了虚函数,实际的被调用函数通过下面的步骤确定:找到对象的 vpt

2014-03-31 22:44:26 1046

原创 Binary Tree Preorder/postorder Traversal

Binary Tree Preorder Traversal递归struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution{public: void p

2014-03-28 16:11:52 565

转载 Leetcode: LRU Cache

转载自点击打开链接Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set.get(key) - Get the value (will always be positive) o

2014-03-26 14:43:35 557

原创 Insertion Sort List

Sort a linked list using insertion sort链表的插入排序struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution {public: ListNode *inserti

2014-03-26 11:21:31 511

原创 Sort a linked list in O(n log n) time using constant space complexity

链表的排序问题,要求常数级的空间复杂度,时间复杂度为nlogn,因为是在链表上的操作,所以可以选择归并排序,如果是在数组上的话,应该空间复杂度就不能满足情况了,下面是代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNo

2014-03-25 11:31:44 769

原创 找出数组中出现次数超过数组长度一半(>=1/2 >1/3)的那个数

先讨论超过数组长度一半的情况超过数组长度一半意味着这个数字的个数大于其他全部数字个数之和,算法大致为,首先设置两个参数currentAxis,currentNum。参数currentAxis用来记录当前认为是我们要找的那个数字,参数currentNum用来记录CurrentAxis参数对应的那个数字连续出现的次数。步骤如下:(1)初始化:设当前的数组为data[],数组的长度为n。curr

2014-03-20 13:13:25 2887 1

原创 Reverse Words in a String

要求逆向输出,好像就是栈的思想嘛(后进先出),这会儿才想起来..... 代码用的是vector容器,用的是反向迭代器,反向输出即可.其实只要分两个步骤,第一个是依据空格,提取出一个个单词,存进容器。第二步就是相应的输出了。但是第一步的时候要考虑下空格的问题,就是在首单词之前或者单词之间或者字符串最后可能会有若干空格。我代码中也是将空格提取了出来,然后进行统一的删除,这样好像复杂了,但是我感觉代码统

2014-03-19 11:55:32 605

原创 Evaluate Reverse Polish Notation

some example:其实就是一个后序遍历求值的问题,利用栈的后进先出的思想,每次遇到一个运算符,进行两次出栈操作,找出对应的两个数字并计算值,然后重新入栈。以前一直以为只要判断字符'9'就能判断是否是运算符,但是提交失败,原来会存在负数的情况,这点以前没有注意到,还好这里面只有4个运算符.class Solution {public: int evalRPN(vecto

2014-03-19 11:44:24 584

原创 Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.

目标:求平面上在一条直线上最多的点的个数 首先想到了多点共线的规律就是两两之间的斜率相同,提到斜率又要考虑到斜率不存在的情况,即求斜率公式的分母为0.然而这边也存在两种情况,一个就是真的斜率不存在,另外一个就是两个点是相同的,这样的话也是无法计算斜率的,这两点都要考虑到。代码的主要部分就是一个二重循环,第一重循环式选取初始点,第二重循环遍历其他点,找出与初始点共线最多的点。struct P

2014-03-19 11:07:43 1741

原创 最长公共子序列问题

一个给定序列的子序列就是将给定子序列中零个或多个元素去掉之后得到的结果,即子序列要保持与原序列的相对顺序,不是一定要是原序列中连续的一块。正如最长公共子串和最长公共子序列的区别,前者要求是原序列中连续的一段。给定序列X和Y,求解他们的最长公共子序列。最直接的方法就是暴力搜索的方法,穷举X的所有子序列,对每个子序列检查它是否也是Y的子序列,记录找到的最长子序列。因为X的每个子序列对应X的下标集合

2014-03-06 18:11:57 748

原创 图遍历算法及其应用

图的遍历算法有两种:深度优先搜索和广度优先搜索深度优先搜索算法所遵循的策略是尽可能“深”地搜索一个图,它的基本思想是首先访问图中某一个起始定点v,然后由v出发,访问与v邻接且为被访问的任一个顶点w,再访问与w邻接且未被访问的任一顶点...重复上述过程,当不能再继续向下访问时,一次退回到最近被访问的顶点,若它还有邻接顶点未被访问,则从该点开始继续上述搜索过程,直到图中所有顶点均被访问过为止利

2014-03-03 17:33:18 2582

原创 二叉树的遍历(非递归)

二叉树的先序遍历void preorder(Btree *root){ Btree *p=root; stacks; while(p!=NULL||!s.empty()) { while(p!=NULL) { coutdata<<" "; s.push(p); p=p->lchild; } if(!s.empty()) { p=s.to

2014-02-27 11:33:11 712

转载 C++中获取一个文件夹下所有文件名(转)

C++获取一个文件夹下的所有文件名window + vs2005:#ifndef FUNC_H#define FUNC_H#include #include #include #include using namespace std;vector & get_filelist(char *foldname){vector flist;HANDLE file;

2013-11-25 16:41:30 1681

转载 在C++项目中如何使用ICTCLAS工具包

摘自:http://hi.baidu.com/doubleysl/item/9176c689b5683b2f110ef324做中文信息处理研究这一方向的人都知道,汉语的分词是研究的基础的基础,只有建立在分词之后的基础上才能进行下一步研究, 术语抽取,命名实体识别等等(当然,也有些研究并不需要建立在分词的基础之上)。目前分词工具包有很多,而且大部分是开源的,具体有哪些可以参考下面

2013-11-25 14:18:36 1953 3

转载 矩阵旋转

/*题目要求:输入一个n*n字符矩阵,把它左转90度后输出 样例输入:3abcdefghi 样例输出:a b cd e fg h ic f ib e ha d g */ #include#define MAXN 10char buf[MAXN][MAXN];char s[MAXN][MAXN];int main(void){ int i=0, j, n;

2013-10-31 20:28:18 782

原创 支持向量机SVM(Support Vector Machine)算法初解

其实SVM在去年的时候就接触到了,只是一直都属于模模糊糊的状态,最近跟着老板一起上机器学习的课,有种豁然开朗的感觉,于是乘机写下这篇博客。每个算法都有一个优化的准则,SVM也不例外,他运用的是最大化margin的准则,如图所示:                                                                  这么多的红线都可以将样本

2013-10-31 14:43:03 1916

原创 Label propagation算法初解

最近看了下Label propagation算法,说实话直接看朱晓进的原著论文感觉还是蛮复杂的(公式有点多而且我的英语真心不咋的),后来偷懒网上找了下中文的相关论文和博客才算稍微弄懂了点。     首先,LP算法是一个基于图的半监督学习的算法。类似于监督学习算法中的KNN算法,假设越相近的点更有可能具有相同的类别标签,然后根据少量的有标签的样本,根据一些规则判断相邻节点之间的相似性,根据相似性

2013-10-28 12:41:26 5398 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除