自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yanerhao的专栏

信雅之言,微言之下

  • 博客(373)
  • 资源 (9)
  • 收藏
  • 关注

原创 109. Convert Sorted List to Binary Search TreeDescriptionHintsSubmissionsSolutionsTotal Accepted: 1

109. Convert Sorted List to Binary Search Tree与108题类似,给出一个单链表形式的递增序列,求高度平衡的BST,与108题不同的是,108题是递增数组,我们只要遵循:序列中间值是根,左区间的中间值是根的直接左孩子,右区间的中间值是根的直接右孩子:数组形式:TreeNode*buildTree2(vector&postorde

2017-05-06 16:27:33 365

原创 Leetcode 97. Interleaving String

97. Interleaving String三个字符串s1,s2,s3,判断s3是前两个字符串交织所得例如:s1="aabcc",s2="dbbca",When s3 = "aadbbcbcac", return true.When s3 = "aadbbbaccc", return false.思路:本题也是一个多层问题返回单值,故引入动态规划,由于是针对两个字

2017-05-02 10:20:17 338

原创 91. Decode Ways

91. Decode Ways已知:‘A’---1‘B’--2...'Z'--26给出一个字符串例如“12”则有可能是当作“AB”(1   2)也有可能是“L”(12)故一共有2中看法。思路,很明显这是一个多层次影响求单值问题,可以采用动态规划:引入数组dp[i]表示s0,s1,...si-1这样前i个字符求法个数,注意字符串s每一位都有可能取值‘0-9’当

2017-04-28 23:05:36 244

原创 Leetcode84. Largest Rectangle in Histogram

84. Largest Rectangle in Histogram给定一个n长非负整数数组,每个元素值代表一个bar高度,求这些bar围成的最大矩形面积。思路如下:先假定数组是长为n的有序数组num,则这些bar高度从左到右依次增加,例如1,2,5,7,8,此时围成矩形面积将最大值:maxarea=max(num[0]*(n),num[1]*(n-1),...,num[n

2017-04-24 23:13:57 277

原创 Leetcode76. Minimum Window Substring

76. Minimum Window Substring给定一个主串s和匹配串t,要求主串中字串包含t串所有字符,求这样的最小长度字串。例如S = "ADOBECODEBANC"T = "ABC"则最小字串为“BANC”。1 这里引入HASH机制,即定义一个map a,记录t中每个字符出现的次数这里设置一个计数器cn;2 引入首尾两个指针i和l,之间就是包含字符

2017-04-23 18:18:58 395

原创 Leetcode 68. Text Justification

68. Text Justification描述如下,要求从一个字符串数组,选择若干个单词组成一个新字符串,并相互之间对齐,注意以下几点:1 单词直接至少相差一个空格;2 每一行都要求左对齐;除了最后一行,其他行都要求右对齐,最后一个行,只要保证左对齐即可;3 每一行元素总数一定一样,若缺少用空格补,原则是要求左右空格数目均匀,若做不到均匀则左侧较多空格。例如:wo

2017-04-19 19:34:04 280

原创 LeetcodeUnique Paths

62. Unique Paths本题是典型的迷宫问题,M×N的格子,从(0,0)出发,只能向下或者向右,求到达终点(m-1,n-1)的路径数目,首先想到的是递归回溯:void helper_robot(int m,int n,int&res,int x,int y){if(x==m-1&&y==n-1){res++;return;}if(x+1<m)helper_robot(m

2017-04-18 14:12:23 226

原创 LEETCODE60. Permutation Sequence

60. Permutation Sequence 内容如下:已知正整数n的全排列按照字典序:1 1232 1323 2134 2315 3126 321先给出n和k,即求n全排序的第k个排列一开始是采用回溯思想(回溯):string intTosting(vector ss){string s="";if(ss.size()<1)return s;

2017-04-17 16:42:26 270

原创 五大经典算法之四贪心算法

基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择,贪心策略使用的前提是局部最优能导致全局最优。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态

2017-04-13 23:24:38 20288 1

转载 Linux 三大文本处理命令之一AWK

Linux 三大文本处理命令之一AWK

2017-04-11 10:29:11 1559

原创 Linux 三大文本处理命令之一GREP

grep,全称global search regular expression(RE) and print out the line。是一种强大的文本搜索工具,根据正则表达式,把匹配的行输出。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast

2017-04-10 16:57:30 1061

原创 五大经典算法之三动态递归DP

五大经典算法 动态递归DP首先需要决定存储什么历史信息,以及用什么数据结构来存储。然后最重要的就是递推公式,最后需要考虑起始条件的值。我们用dp[i]表示到字符串s的第i个元素为止能不能用字典里的词表示。假设已经知道dp[0,1,,,,i-1]的结果,要求dp[i]Leetcode 139. Word Break要求一个非空字符串s,一个非空的字符串词典,判断s能够通过空格组成

2017-04-10 15:49:25 2959

原创 Leetecode 36 37 Sudoku问题

首先了解什么树sudoku,见http://sudoku.com.au/TheRules.aspx即在9X9棋盘里,每一行都要包括1-9数字,每个数字只能出现一次不能重复;每一列都要包括1-9数字,每个数字只能出现一次不能重复;每个3x3小宫格要包括1-9数字,每个数字只能出现一次不能重复。36. Valid Sudoku 主要是对已有的一个9X9棋盘(部分填充数字,没有数字的

2017-04-06 22:35:58 466

原创 Leetcode 33. Search in Rotated Sorted Array

题目如下:Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are given a target value to search. If found i

2017-04-06 11:04:20 404

原创 Leetcode 32. Longest Valid Parentheses

Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring.For "(()", the longest valid parentheses substring is "()", which ha

2017-04-05 22:32:29 230

原创 函数调用过程分析

编译器一般使用堆栈实现函数调用,Windows为每个线程维护一个堆栈,堆栈大小可以设置,编译器可以使用堆栈存放每个函数参数,局部变量等。由于函数调用经常会被嵌套,故同一时刻,堆栈中存储多个函数的信息,每个函数会占一个连续区域,一个函数占用的区域称为帧,编译器是从高地址开始使用堆栈,在多线程任务下,CPU的堆栈指针指向的存储器区域就是当前使用的堆栈。切换线程时,把堆栈指针设为当前线程所在堆栈的栈顶地

2017-04-05 16:51:53 1593

原创 Leetcode29. Divide Two Integers

29. Divide Two Integers内容如下:Divide two integers without using multiplication, division and mod operator.If it is overflow, return MAX_INT.对于一般的32位OS,int  4字节 范围:2^31--2^31-1即-2147483648(INT_

2017-04-03 23:19:06 585

原创 五大经典算法二 回溯

回溯算法在解决多选择问题时特别有效,一般思路如下:在当前场景下,存在若干种选择去操作,有可能两种结果:一是违反相应条件限制,只能返回(back),另一种是该选择选到最后居然正确并结束。故在回溯时存在三要素,能总结出这样的三要素问题便可以迅速解决:1 找到选择2 限制条件,即选择操作在此条件下才进行3 结束回溯在迷宫问题等应用广泛,下面的Leetcode22题Generate Par

2017-03-30 22:42:19 12508 1

原创 五大经典算法一 递归与分治

递归算法:直接或者间接不断反复调用自身来达到解决问题的方法。要求原始问题可以分解为相同问题的子问题。、需要:1 递归边界 2 自身调用特点分析:递归思路简单清晰,如果分析出将很快得到结果;递归将多次调用,使用到堆栈,算法效率低,费时费内存。常用场景:阶乘,斐波纳契数列、汉诺塔问题,整数划分,枚举排列及二叉树,图的搜索相关问题。例题1 Hanoi问题有三根杆子A,B,

2017-03-21 12:06:30 12440 1

原创 二叉树最长路径问题

已知一颗二叉树其定义如下:struct node1{int val;node1*left;node1*right;};例如:                            A                            | |                           |   |                          |

2017-03-19 19:35:10 11414 1

原创 用户态内核态及用户空间内核空间关系

1 用户态与内核态 当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被

2017-03-18 23:55:38 4690

原创 移位,逻辑运算实现加法,乘法和除法

1 用逻辑运算实现加法:两个正整数相加,如果使用移位操作符和逻辑运算:与&运算,适用于对应位相同的加法,如x=3=(0011),y=3=(0011),则x&y=0011=(x+y)/2;异或运算,适用于对应位不同的加法,如x=3=(0011),y=3=(0100),则x^y=0111=7故(x+y)/2=x&y+(x^y)>>1对于二进制加法:1+1=0,1+0=1,0+1=1

2017-03-16 16:09:12 10808

原创 二叉树之二BST树,AVL树详解及B树和红黑树原理分析

B树原理及其分析在大规模数据存储方面,大量数据存储在外存磁盘中,而在外存磁盘中读取/写入块(block)中某数据时,首先需要定位到磁盘中的某块,如何有效地查找磁盘中的数据,需要一种合理高效的外存数据结构,就是下面所要重点阐述的B-tree结构,以及相关的变种结构:B+-tree结构和B*-tree结构。一 B-树B-是不是二叉树,而是一种多路搜索树,所有节点的孩子节点树最大值称为B

2017-03-13 11:20:34 790

原创 二叉树之一BST树,AVL树详解及B树和红黑树原理分析

BST树,AVL树详解及B树和红黑树原理分析互联网面试中树尤其是BST,AVL是提问的重点也是难点,甚至B树乃至高级数据结构红黑树都是提问的重点,像阿里云面试就曾经问过map实现机制(红黑树)及其原理,这里我们要做到对BST/AVL完全熟悉能给出全部代码实现,红黑树、b树之类,有能力的需要完全理解,代码就不用掌握了。红黑树和b树看会就行了,当碰到你感觉他们不懂这方面的面试官的时候,可以逮着他们

2017-03-11 23:21:59 8615 2

原创 socket网络通信<二>

socket网络通信本文注意基于socket来分析TCP连接建立过程。先回顾一下TCP连接建立过程:主机A运行的是TCP客户端程序,主机B运行的是TCP服务器程序,最初两端TCP进程处于Closed态,A主动打开连接,对应客户端connect函数发起连接,B被动接受连接,对应于服务器listen函数。服务器TCP进程先创建传输控制块TCB,准备接受客户进程的连接请求;1

2017-03-08 18:41:04 434

原创 socket网络通信<一>

socket网络通信进程间通信(例如QQ进程与服务器,本地QQ与异地QQ之间通信)都是通过socket实现通信。socket接口是TCP/IP网络的API,具体而言,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信:socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可

2017-03-08 16:02:06 573

原创 进程与线程及进程间通信

进程与线程及进程间通信进程与线程进程是操作系统OS分配资源的最小单元,是一个独立的应用程序代码基于一个数据集合的一次运行活动,它可以申请和拥有系统资源,是一个动态概念,而不仅仅是这串代码,也是活动,它拥有一个独立的虚拟内存地址空间。线程是操作系统OS调度的最小单元,通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本

2017-03-08 10:22:34 400

原创 Leetcode Container With Most Water

原题意思是:给定n个非负整数并记为ai,a2,,,,an,将下标i可以看成X轴横坐标,值ai看成纵坐标,与X轴会形成面积不一样的矩形,任意两条这样的线段和 x 轴组成一个木桶矩形,找出能够盛水最多的木桶,返回其面积。注意面积大小S=min(ai,aj)|i-j|最简单方法,暴力求解,时间复杂度O(n^2)int maxArea1(vector height){int n=

2017-03-04 23:22:03 298

原创 枚举排列

输入整数n,按照从小到大顺序给出所有排列:n=3则全排列为(从小到大):123132213231312321采用递归思想:先输出所有以1开头的序列----->再输入以2开始的排列------>接着是以3开始的。。。。最后是以n开始的序列。分析题意可知,以i(i=1,2,3...n)开始的序列,后面是1,2,。。。,i-1,i+1,。。。n数字的排列,并且也是

2017-03-02 19:44:41 2634

原创 关于高精度运算bign类的实现

对与基本的运算由于数据类型存储空间有限导致运算结果较大时容易计算溢出,这里通过引入数字数组定义适用于高精度运算的bign类实现大数运算的精确表示,包括常见的赋值/比较/四则运算:#include#include#include#include#define MAX_L 2005using namespace std;class bign{ public: int len;

2017-02-15 09:29:25 833

转载 互联网实习工作准备

转载自:http://blog.csdn.net/liuqiyao_01/article/details/26567237一、前言         好久没写blog了,可能工作比较忙的原因吧。工作之后也略显疲惫,有点懒,不是很愿意动笔。不过由于今年秋招的临近,于是决定整理一下自己和其他几个大牛的经验,指导一下自己的学弟学妹们。        首先要说

2017-01-19 16:36:55 1329

原创 阶乘的精确值

例如输入不超过1000的正整数n,输出n!=1X2X3...Xn的精确结果。例如输入30输出 26525285981219058636308480000000当输入1000时1000的阶乘约4*10^(2567),大概3000位数字,如果采用普通的阶乘算法很明显溢出:int fun(int n){ int i; int s=1; for(i=1;i<=n;i++)

2017-01-18 22:08:40 764 2

原创 系统调用接口与应用编程接口

一 系统调用(System Call)接口系统调用(System Call)接口是操作系统(OS)内核与上层应用进程(APP)进行交互通信的唯一接口如图通过这个接口,用户可以访问OS内核空间,具体步骤:用户地址空间APP->系统调用->OS->OS内核->返回用户空间。用户APP通过直接或者间接(库函数)调用中断int0X80,并在eax寄存器中指定系统调用功能号,即可使用内核

2017-01-18 10:12:45 2148

原创 最长回文字符串常用求法

最长回文字符串常用求法一般有以下几种:1 暴力求解#define max 100+10char buf[max*2];char tmp[max*2];void get_longest_str(){printf("请输入字符串\n");fgets(buf,max,stdin);//fgets输入,遇见换行才停int len=strlen(buf);int i,j=0;int

2017-01-15 20:54:06 508

原创 LTE 网络UE端测量

在LTE网络发生切换时首先需要激活UE端测量过程,UE端用户可采用以下方法实现:1 直接通过eNB的RRC实体实现(也是本文介绍)2 通过已有切换算法配置测量3 开发新的切换算法并对其配置首先需要研究测量的内容是什么,NS3通过LteRrcSap::ReportConfigEutra说明:  struct ThresholdEutra  {    enum    {

2017-01-09 16:08:46 3591

原创 AOE图及拓扑排序

有向无环图通常来表示活动之间的先后关系,AOV图中顶点表示活动,有向的边表示活动间的先后关系,例如边表示活动u是获得v发生的前提,很明显,这种图不应该存在环()即不应该某活动以自身为先决条件。如图是一个有向无环图。拓扑排序:一具有n个顶点的有向无环图,其顶点序列v1,v2,...vn满足边存在时,该序列组成拓扑序列,它是对有向无环图的顶点的一种排序。可以在AOV中进行拓扑排序来证明

2017-01-07 17:00:45 4855

原创 基于网络层的LTE(含EPC)网络常用类及其函数介绍

针对NS3出现的LTE及LTE+EPC网络仿真实例(src/lte/examples/lena-simple.cc,src/lte/examples/lena-simple-epc.cc)出现的针对LTE网络才出现的几个类及其函数进行介绍。首先仿真程序所需最重要的两个类:LteHelper(src/lte/helper/lte-helper.cc)和EpcHelper,而EpcHelper

2017-01-05 17:09:34 2300

原创 以wifi-example-sim.cc为例说明NS3统计数据模型

利用NS3已有的Trace系统或者Log机制收集记录和统计数据,例如MAC层收发帧数目,网络层以上收发包数目的跟踪与统计,这里选取example/stats/wifi-example-sim.cc为例来很好说明问题:这个仿真程序是一个简单的实验,包括两个节点,基于AdhocMAC信道模型,包含NS3仿真所需常见模型如节点/网络设备/协议栈和应用进程,这里的应用进程Sender   和Recei

2017-01-02 18:45:15 8377 7

原创 NS3 seventh.cc为例说明Probe<二>

对NS3 seventh.cc为例说明Probe长篇分析总结如下:一 结构要使用Gnuplot helper对象画图需要用到关键函数PlotProbe,其格式:PlotProbe(probetype, external trace source's path,probe trace source,legend of data line in the figure,the locat

2016-12-29 17:08:20 2232

原创 NS3 seventh.cc为例说明Probe< 一>

之所以选择example/tutorial里的seven.cc,是因为在统计数据画图时,不仅仅存在常有的Trace机制如ASCII trace file和PCAP文件,还存在利用GNUPLOT Helper和File Helper实现。具有代表意义。#include #include "ns3/core-module.h"#include "ns3/network-module.h"#i

2016-12-28 10:40:37 2163

经典的社交网络中社区分区算法GN算法

GN算法避免了传统算法的若干缺点,成为当前社交网络分区的经典算法

2017-11-22

基于OFDM的LTE仿真平台代码

基于OFDM的LTE仿真平台代码,能够解决基本的LTE仿真模块问题

2016-08-24

基于博弈论的网络选择

基于博弈论的网络选择

2016-04-05

clang_library

.clang complete是llvm/clang带来的额外功能.clang complete是靠编译C++文件,应该是获得抽象语法树,进而进行补全的.所以,补全效果非常好,非常准确

2015-11-28

tags_vim_master

一个位置。它记录了关于一个标识符在哪里被定义的信息,比如C或C++程序中的一个函数定义。这种tag聚集在一起被放入一个tags文件。这个文件可以让Vim能够从任何位置起跳达到tag所指示的位置-标识符被定义的位置

2015-11-28

OmniCppComplete

OmniCppComplete,Linux下对其vim编辑器中C/C++函数结构体,类等的自动补全

2015-11-24

cpp-src-0.5.0.tar.gz

C++类库,可以在配置vim的ctags时使用

2015-11-23

基于Qt的加农炮游戏

基于Qt的加农炮游戏,很全很生动。采用C/C++编写,适应Linux环境开发。

2014-12-13

扫雷Qt小游戏

扫雷Qt小游戏,完美跑windous,linux环境。游戏节目包含Qt基本环境。

2014-10-29

空空如也

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

TA关注的人

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