- 博客(45)
- 资源 (5)
- 收藏
- 关注
原创 编程思想(1)
1.二叉树的序列化和反序列化 序列化即由一串数字构建一棵树,反序列化是遍历一棵树得到一串数字。对于一个节点来说,反序列化既要创建节点的值,又要获得左子树和右子树的序列并递归构建。 树的遍历分为前序遍历、中序遍历和后序遍历。前序遍历和中序遍历一起可以完成得到节点的值,左子树序列和右子树序列。 序列化树就是遍历二叉树。2.二叉树的打印
2016-08-31 09:05:49 266
原创 最低公共祖先问题的求解
1.树的公共祖先问题 首先明确一下这里的公共祖先的概念。所谓公共祖先,就是两节点位于不同分支或者同一分支,最近的公共的父节点(说父节点不太准确,可能是祖父节点等)。 我们先不考虑算法,让我们自己找两个节点的最低公共祖先,我们应该是要按照路径找到两个节点,然后看两条路径的交点。很好,我们自下而上找交点是我们解决问题的思想。 变形1:我们可以从根节点遍历
2016-08-30 21:28:14 870
原创 异或^运算的应用
1.异或运算 关于异或,有两种计算。一是逻辑异或,一是按位异或。所谓逻辑异或就是运算数是true或者false。比如p1=true,p2=true,p1^p2。 按位异或则是将变量转化为二进制,每一位分别异或。相同为0,不同为1。 按位运算如&、|、^优先级位于关系运算符之后,逻辑运算符之前。 好像不经常强调逻辑异或和按位异或,因为两者就是一
2016-08-30 15:17:08 781
原创 堆的实现与应用
1.堆的性质a.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。b.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。 如果以数组表示堆时,向堆中插入元素时,将元素插入数组结尾,然后调节堆,使堆的性质得以满足。 删除时,将最后一个元素赋给第0位置元素,然后不断调整堆,使堆的性质得以满足。 数组与堆联系:堆化数组
2016-08-26 17:18:29 585
原创 面试总结(tcp/ip、优先级、线程进程)
1、tcp/ip七层协议(1)OSI七层模型OSI中的层 功能 TCP/IP协议族应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet表示层 数据格式化,代码转换,数据加密 没有协议会话层 解除或建立与别的接点的联系 没有协议传输层 提供端对端的接口 TCP,UDP网络层 为数据包选择路由 IP,ICMP,
2016-08-25 21:54:13 1722
原创 归并排序思想应用
今天刷剑指offer第36题,求逆序数。要求时间复杂度尽可能小。先看下我原来的代码。#includeusing namespace std;class Solution {public: int InversePairsCore(vector&data,vector©,long start,long end) { if(start>end)
2016-08-25 16:56:09 1036
原创 面试总结(数据库范式、sql优化)
数据库范式 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。1、第一范式(确保每列保持原子性) 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。
2016-08-24 22:03:36 1668
原创 面试总结(static、const、define)
1.static 其中.text段保存进程所执行的程序二进制文件,.data段保存进程所有的已初始化的全局变量,.bss段保存进程未初始化的全局变量(其他段中还有很多乱七八糟的段,暂且不表)。在进程的整个生命周期中,.data段和.bss段内的数据时跟整个进程同生共死的,也就是在进程结束之后这些数据才会寿终就寝。一、全局变量 当一个进程的全
2016-08-24 21:53:37 1076
原创 面试总结(数据库索引、B树、B+树)
1. 数据库系统维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。索引的实现通常使用B树及其变种B+树。 创建索引可以大大提高系统的性能。 第一、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二、可以大大加快数据的检索
2016-08-21 22:05:11 9538 2
原创 面试总结(变量初始化、整型数范围)
1. 在全局域中声明的变量会自动初始化为0,如: double salary; int day;2. 如果变量是在局部域中定义的,或是通过new表达式动态分配的,则系统不会向它提供初始值0,这些对象被认为是未初始化,其值随机。而变量是类对象会通过缺省构造函数自动初始化。3. C++支持两种形式的初始化:a:使用赋值操作符的显示语法形式。如:int ival=1024;b: 隐
2016-08-21 21:14:10 959
原创 LeetCode 198. House Robber
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent house
2016-08-21 15:01:29 383
原创 LeetCode 84. Largest Rectangle in Histogram
Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.Above is a histogram where width o
2016-08-21 09:02:09 395
原创 LeetCode 376. Wiggle Subsequence
A sequence of numbers is called a wiggle sequence if the differences between successive numbers strictly alternate between positive and negative. The first difference (if one exists) may be either pos
2016-08-20 19:41:08 1762
原创 有道笔试之后的自我反省
有道笔试过了两天了,我其实当时就想着写篇文章好好反省下。这个编程题一道题都没AC,如果我要归咎责任,掩人耳目,保留面子,那么我会说第一道题把我卡住了,而且第一题的样例有误。
2016-08-20 09:20:36 1004
原创 红黑树元素的插入和删除
1.红黑树 平衡搜索二叉树的查询性能很好。(注意:平衡和搜索是两个修饰词。平衡是左右子树高度差不差过1,搜索是对于任一节点来说,左子树所有节点值 重要的性质: 根是黑的,叶节点是黑的。(大部分以null为叶节点) 对于任意节点而言,其到叶节点树尾端(null指针)的每条路径都包含相同数量的黑节点。 如果一个结点是红的,
2016-08-16 21:43:26 1446
原创 Trie树的C++实现
先给出LintCode的题目:实现Trie树Trie树就是字典树,用在搜索引擎如百度搜索词条,还比如说之前DNS域名解析系统搜索根据域名搜索IP。总之,是棵树,根据字符串搜索某一节点,同时就可获得节点存储的信息了。Trie树的一般性质如下: 1.根节点不包含字符,除根节点外每一个节点都只包含一个字符。 2.从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符
2016-08-16 21:06:58 1546 3
原创 STL常用算法
1.copy()函数int myints[]={10,20,30,40,50,60,70};std::vectorint> myvector (7);std::copy ( myints, myints+7, myvector.begin() );将一个容器中的元素复制到另一个容器中2.count()函数int myints[] = {10,20,30,30,20,10
2016-08-16 11:22:29 724
原创 LeetCode 22-Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:[ "((()))", "(()())", "(())()", "
2016-08-16 11:17:41 447
原创 开眼界
1.MySQL OracleOracle一体机2.Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国
2016-08-14 17:25:30 425
原创 STL总结
1.容器如vector、deque、list是线性存储的,它们都是有迭代器的。queue和stack作为容器适配器,没有迭代器的。它们默认使用deque作为底层元素。2.heap不属于STL容器,但是它是优先队列的幕后英雄。heap底层是vector或者array实现的。STL实现了最大堆,这样可以满足优先队列的特性。优先队列也是容器适配器。3.slist是单向列表,它
2016-08-14 16:56:13 742
原创 百度面试(数据库隔离级别、overload、override)
1. 数据库的隔离级别 ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability). READ UNCOMMITTEDREAD UNCOMMITTED是限制性最弱的隔离级别,因为该级别忽略其
2016-08-13 11:10:41 1427
原创 剑指offer(中位数-LeetCode4)
There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).Example 1:nums1 = [1
2016-08-12 10:26:45 1864 1
原创 OJ中字符串输入及相关操作
1. 输入数据方式cin>>a>>b;char a[10];cin.getline(a,5);char a,b,c;cin.get(a);cin.get(b);cin.get(c);输入:ABCD那么a的值为'A',b的值为'B',c的值为'\n\ getline(istream &in, string &s)在头文件中声明了getline函
2016-08-11 17:00:04 2289
原创 string类总结
标准C++中提供的string类得功能是非常强大的,一般都能满足我们开发项目时使用。现将具体用法的一部分罗列如下。要想使用标准C++中string类,必须要包含#include 下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。string和wstring的用法是一样的,以下以string作介绍:string类的构造函数:stri
2016-08-11 15:58:40 744 2
原创 DHCP协议
1.DHCP简介 DHCP的英文全称是:dynamic host configuration protocal,即动态主机配置协议。也就是为我们连进局域网的主机配置IP等参数信息。那么从主机接入局域网开始,配置的流程是什么? 我们的电脑一般都含有DHCP客户端模块,在接入网络之后,就会通过DHCP协议发送数据包寻找DHCP服务器,DHCP服务器是运行服务端软
2016-08-11 15:39:44 893
原创 面试记录
第一次电话面试献给阿里了。虽然只面了20分钟,但之前以为电话面试都没有。总结一下自己的面试表现,并为之后的面试做些指导吧。 先回忆下面试官的问题: 1.介绍一下你最熟悉的项目。 2.网络编程熟悉吗? 3.TCP黏包。 4.虚函数。 5.简述C/C++/C#的区别。 6.你最近看的书。
2016-08-11 10:43:44 736 1
原创 剑指offer(动态规划-LeetCode72)
LeetCode 72:Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.)You have the following 3 operations perm
2016-08-11 10:14:36 1363 1
原创 剑指offer(两个栈实现队列)
使用两个栈实现一个队列。 栈是先进后出,队列是后进先出。如果只有一个栈那么是无法实现队列的,但是两个栈完全可以。代码如下:template class Cqueue{public: Cqueue(void); ~Cqueue(void); void appendTail(const T& node); T deleteHead();private: stack
2016-08-10 10:00:33 635
原创 剑指offer(2)
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.Note: You can only move either down or right at
2016-08-10 09:30:46 491
原创 百度面试(进程调度、调度算法)
一、常见的批处理作业调度算法1.先来先服务调度算法(FCFS):就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单,公平。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满意,因为短作业等待处理的时间可能比实际运行时间长得多。2.短作业优先调度算法(SPF): 就是优先调度并处理短作业,所谓短是指作业的运行时间短。而在作业未投入运行时,并不能知道
2016-08-09 16:48:52 3033 3
原创 百度面试(进程通信、socket)
1. 进程间通信 进程间通信主要包括管道, 系统IPC(包括消息队列,信号量,共享存储), SOCKET. 系统IPC的三种方式类同,都是使用了内核里的标识符来识别. 匿名管道( pipe ):匿名管道是一种半双工的通信方式,通常是在父子进程间使用。 命名管道 (named pipe) :命名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信
2016-08-09 11:09:34 3805
原创 linux进程和会话
1.linux进程 查看进程:ps -eo pid,ppid,cmd 第一个进程:init 其他进程:fork() 进程树:pstree 注意:创建进程时根据fork()函数返回值执行不同的分支,如果为0,则为子进程。这时可以执行自己的程序,在子进程的内存空间中耍起。若为正数则继续执行父进程程序。子程序执行完毕,返回参
2016-08-08 18:38:06 1481
原创 剑指offer(1)
设计一个类,我们只能生成该类的一个实例。 这是考设计模式的一道题,设计模式是面向对象程序设计的编程思想。参考大神的专栏:设计模式。单例模式倒不难,要求是在程序中只允许创建一个对象实例。那么来看第一种解法了。 class Singleton1 { //实现单例模式,单线程可以保证只创建一个instance,但多线程下无法保证 priva
2016-08-08 17:14:45 362
原创 行动星计划
星星之火,可以燎原。自从我有目的有计划以来,执行力80%。我的计划很好,起码很全面。我从中有所收获,有所进步,但也有所不足。 不足之处在于: 1.计划执行力不够。很多计划没有准时完成。如果不改,这有可能会使我遗憾。所以计划一定要尽早完成,而不是及时完成。 2.有些计划浅尝辄止,计划很好,没深入研究就什么都不是。 说一万不如做一
2016-08-08 11:40:20 399
翻译 unix哲学
这些unix的编程哲学很好,我按照自己的理解翻译一下。Write programs that do one thing and do it well.做一件事,并且做好。Write programs to work together.相互合作,一起工作。Write programs to handle text streams, because that is
2016-08-07 15:38:52 892
原创 大数运算-(加、减、乘)
大数其实和一般数字的区别在于大数的存储。一般数字可以用已有类型表示,如int。但是大数动不动100位,这样的话大数用什么存储已然是个问题。我仔细查找了下,大多数要么用char数组,要么用string表示。有大数了,那么它的计算怎么写?和普通四则运算一致。1.加法 以十进制计算符合我们的日常习惯。同时暂且不考虑正负数的问题。那么就以两个正的大数相加为例,类比普通十进制的加法,就是
2016-08-05 10:59:45 1023
原创 TCP及DNS协议(3)
接着UDP和TCP写:1.TCP堵塞控制 网络被称为“信息高速公路”。TCP段被封装成为IP包,在原主机和目标主机之间经过数个路由器进行传送。那么路由器就会发生堵塞。当路由器处理不过来,很可能就会丢包。对于UDP来说,反正我也不可靠,我无所谓。对于TCP来说,我就要维持可靠,我就要重发,我只管我的可靠,不关心你的拥堵。这样很显然,本来拥堵的线路由于TCP的忠贞就更拥堵了。
2016-08-03 13:57:22 944
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人