自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 max-points-on-a-line

leetcode的一道题在平面内若干个点中,求出在同一直线上点数最多的点数。用穷举法/** * Definition for a point. * struct Point { *     int x; *     int y; *     Point() : x(0), y(0) {} *     Point(int a, int b) : x

2016-07-23 21:29:39 336

原创 unique-paths 总结

其实就是求(m+n-2)中取(m-1)的组合数错误方法1:强行算组合数:当m,n比较大时,数会超出计算机能表示的范围。class Solution {public:    int uniquePaths(int m, int n) {        /*if(m             return 0;        int a = 1;       

2016-07-22 18:45:10 330

原创 STL学习笔记——序列式容器

vector 维护的是一个连续线性空间,这点和array类似,但vector更灵活,支持空间的扩展。如果当前分配的线性空间已满,又要加入新的元素,就要能扩展空间,就要选择好策略。STL的策略是重新找一块原容量2倍的存储块,然后将原来空间里的所有元素复制过来,再填入新元素。(因为连续存储,不能再原存储块后扩展)至于为什么是2倍而不是其他的策略,这值得思考:为什么不是每次需要扩充时:1.新容量

2016-04-15 20:18:47 379

原创 C++变量初始化顺序

假设有个类P:int i=1;class P{public:    P(): d(c), b(i++), a(i++), c(i++)    {        c=i;    }private:    int a;    int b;    int c;    int &d;};可以看到构造函数P对a,b,c,d都进行了初始化。

2016-04-03 15:25:21 327

原创 a++ 和 ++a 注意事项

int a=1;int b=0;地球人都知道:如果b=a++,b=1,a=2。如果b=++a,b=2,a=2。要注意的是:  printf("%d",a++);  和  cout类似的函数调用  f(a++);  传递的参数也是1。如果      int d=a*b*c++;    等价于 d=a*b*c; c++;    "++"的对象是c,不是d

2016-04-03 15:06:12 336

原创 剑指offer——二叉搜索树的第k个结点

题目如下:输入二叉搜索树和K,输出第K大的节点指针/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};

2016-04-02 23:16:02 504

原创 内联函数和宏定义的总结

内联(inline)函数,不同于普通函数的是:普通函数是在编译是和调用者分别编译,运行到调用处时,将原函数的信息入栈,新函数执行。而内联函数,在编译时就直接把调用函数语句替换为整个内联函数代码(变量名对应替换),运行行时这些就当做一条条语句执行,不必再调用、切换函数。可见:内联函数的优点:节省时间,减少了运行时函数调用的时间开销(参数值传递,主调函数和被调函数运行栈的切换)。

2016-03-30 23:18:03 1455

原创 平衡二叉树

平衡二叉树定义:一棵二叉树树或者是颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。很容易用代码实现一棵平衡二叉树的判断:class Solution {public:    //判断函数    bool IsBalanced(TreeNode* pRoot) {        if (pRoot == N

2016-03-29 00:06:49 245

原创 剑指offer——两个链表的第一个公共结点

这里的公共节点指的是值(val)相等的节点,并不一定是同一个节点。用一个set存储查找过的节点,直到发现重复的即公共节点。直接上代码。/*struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}};*/class Solution {pu

2016-03-28 22:38:53 260

原创 单例模式

单例模式的要点有三个:1.某个类只能有一个实例。2.它必须自行创建这个实例。3.它必须自行向整个系统提供这个实例。如何实现,对应以下三点:1.单例模式的类只提供私有的构造函数。2.类定义中含有一个该类的静态私有对象。3.该类提供了一个静态的公有的函数,用于创建或获取它本身的静态私有对象。class CSingleton{private:static

2016-03-25 12:20:46 265

原创 剑指offer——二进制中1的个数

自己先写了一个,有点复杂。这是最简单的方法:int  NumberOf1(int n) {         int result=0;         while(n!=0)         {             n=n&(n-1);             result++;         }         return result;

2016-03-23 23:40:16 240

原创 剑指offer——字符串的排列

题目描述:         输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。输入要求:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思考:感觉难度挺大的,首先是解决全排列的问题,而且可能含有重复元素

2016-03-21 21:11:39 517

原创 顺时针打印矩阵

设置四个变量left ,right,top,bottom分别存储左右上下的界限,循环打印,注意:当打印最后一行或者一列的时候,不能重复打印,所以if (top != bottom)//从右到左时 if (left != right)//从下到上时的判断很重要。下面是代码:vector printMatrix(vector > matrix) {        vecto

2016-03-20 00:35:21 295

原创 二维数组中的查找

《编程之美》上的一个问题:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public:    bool Find(vector > array,int target) {        //.......    }要解决这个问题,我相信很多人的第一想法是可以用

2016-03-19 21:56:03 233

原创 哈希表,处理冲突的方法

当遇到冲突时,通过处理冲突的方法,得到一个Hi(i=1,2,3,4.....)地址序列。若H1任然冲突,求H2,若H2冲突,求出H3......直到找到不冲突的地址为止。具体的方法:一.开放定址法:Hi=(H(x)+di)%mm:表长di:增量序列,有三种取法:1.线性探测再散列:1,2,3,4,5.....m-12.二次探测再散列:1,-1,4,-4,9,-9

2016-03-18 23:49:23 518

原创 哈希表的学习笔记

昨天晚上,被一道LeetCode上名叫Palindrome Pairs困扰了很久,导致没时间写点什么。坚持,不管学的多少,争取每天进步一点,记录一点。今天用到了c++STL的map容器,了解到map容器内部存储是用红黑树,可以使查找访问map中元素的时间从线性结构的O(n)减少到O(logn)。关于红黑树之前了解较少,今天学习了一部分知识,但还没完全领悟,下次再仔细总结。-

2016-03-17 00:21:23 429

原创 反转链表——递归实现

这个问题比较简单,但还是要想清楚逻辑,细心,不然还是容易出错直接上代码:自己写的,验证过,结果没问题,但不知道可不可以简洁点。欢迎大家评论,提出意见看法。

2016-03-15 00:47:49 319

原创 如何把char字符串循环右移N位

C语言实现:输入一个字符串,将其循环右移N位。1.利用strcpy()函数实现:即将输入pStr的后N位放入temp的前N位,再将pStr所有(到‘\o’结束)放入temp的后面。假如pStr="12345678",N(nbits)=3,则这时候,temp=“67812345678”,所以再把temp后面多余部分截掉,最后复制回pStr即完成。2

2016-03-13 19:46:39 4331

原创 大端模式与小端模式

1.是指逻辑数据与存储器数据的映射模式。2.大端模式:逻辑高位存储在存储器的低地址;逻辑低位存储在存储器的高地址。3.小端模式:逻辑低位存储在存储器的低地址;逻辑高位存储在存储器的高地址。4.举例:逻辑数据:0x1357,存储00010,00011的两个连续地址。                    大端(Big-endian)模式:

2016-03-13 01:37:28 300

原创 Hello World!

大三了,21岁,三月温暖的春风还没吹进雾霾中北京,但各大互联网公司的实习生春招浪潮却已涌来。大学生涯也浑浑噩噩过了大半,感受到找实习的竞争都是如此激烈,正式秋招正式工作岂不更是难上加难。这几天对自己的简历改了又改,网上到处找合适模板,终于把它从一个“朴素”(很low)的垃圾word,改成自己比较满意的漂亮一点的勉强算得上简历的简历。接下来一步步投简历,笔试,面试,就可以实习了。虽然

2016-03-12 23:43:43 266

空空如也

空空如也

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

TA关注的人

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