自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (7)
  • 收藏
  • 关注

原创 遍历整个二叉树的所有路径

如果将所有的二叉树的路径中的节点值的和的最大值vector g_vec;int g_max=0;int maxPathSum(TreeNode *root){ if(root!=NULL) { g_vec.push_back(root); if(root->left==NULL&&root->right==NULL) { int max=0; vector:

2015-07-31 19:08:44 3291

原创 求的数组中不定元素的和为一个定制的所有可能

在这个题目中,我们仿照兑换零钱的思路,进行解析,int a[]={1,5,6,48,12};   int b[5]={0};,其中数组a中是待选元素的集合,b对应的相应坐标指的是a数组中对应坐标的值是否存在。,与兑换零钱不同的是sum不但要符合我们的需求,同时b中所有的元素必须是0或者1,不能为其他的数值。现在代码如下:int a[]={1,5,6,48,12};int b[5]={0};

2015-07-30 08:40:40 640

转载 掷骰子,求得每个数的概率

题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。 先分析思路,再看实现。 首先解决前提性的问题:一个骰子的点数只可能是[1,6],所以S的值的取值范围是[n,6n],这里当然只考虑整数。 思路一:统计各个S值出现的次数,然后       各个S值出现的概率 = 各个S值出现的次数 / n个骰子所有点数的排列数

2015-07-29 21:20:23 6246

转载 哈希冲突解决方法

就不自己写了,直接贴下吧看了ConcurrentHashMap的实现, 使用的是拉链法.虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的。当关键字值域远大于哈希表的长度,而且事先并不知道关键字的具体取值时。冲突就难免会发 生。另外,当关键字的实际取值大于哈希表的长度时,而且表中已装满了记录,如果插入一个新记录,不仅发生冲突,而且还会发生溢出。因此,处理冲突和溢出是

2015-07-29 14:38:15 764

原创 Linux的磁盘管理

这样,我们就将分区新建好了,看看我们新建的分区如下:可以发现,这样,我们新加的分区在/dev/sda3上,接下来进行格式化最后进行挂载:这样,我们进行尝试一下在/test中进行文件操作

2015-07-27 18:52:03 118

原创 零钱兑换问题

现在有零钱 1、3、5、10,各无数张,现在需要进行将所有的钱去换250元,请问一共有多少方案int a[]={1,3,5,10};int tmp[4]={0};int count=0;const int money=250;void getCount(int sum,int index){ if(sum>money) { return;

2015-07-25 18:10:31 977

原创 奶牛问题

在农场中,奶牛家族是一个非常庞大的家族,对于家族中的母牛,从它出生那年算起,第三年便能成熟,成熟的母牛每年可以生出一只小母牛。即母牛从出生开始的第三年便 能做妈妈。最开始农场只有一只母牛,它从第二年开始生小母牛。请设计一个高效    算法,返回第n年的母牛总数,已知n的范围为int范围内的正整数。int getNum(int n){ hash_map newCows; pair

2015-07-25 17:44:55 1327

原创 获得一个2n数组中的N个元素,使得该N个元素与剩余元素和最小

void MaoPao(int * a,int low,int high,bool BMax){ if(NULL==a) { return ; } if(low<high) { if(BMax) { //开始存放最大值 for(int i=high;i>low;i--) { if(a[i]>a[i-1]) { int tmp=a

2015-07-24 19:12:36 1088

转载 Linux 管理 之Sort详解

sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。[rocrocket@rocrocket programming]$ cat seq.txtbananaapplepearora

2015-07-23 19:59:53 415

原创 获得一个数组中所有元素进行的全排列,获得其中最小的数字

现有一个数组int a[]={32,3,65};我们将这个数组中的所有数字进行排序#includeusing namespace std;//把数组排成最小的数int a[]={2,56,1};char tmp[256]={0};char dst[256]={0};void pailie(char* pstr,char*begin){ if(*begin=='\0') {

2015-07-23 16:53:32 1427

原创 由无序数组中找到第K 大的元素

当然如果我们想要实现这个问题会有很多思路,可以将原来的数组进行排序即可,直接随机访问到第K个元素即可。我们专门写一篇博客当然不是想利用这种思路的,可以试试改进的快速排序啊,对不,我个人觉得是利用了两种思路一个是快速排序一个是二分查找,在进行快速排序的时候,在指定范围内找到该值的下标,如果该下标与K值相比比较大,则结束end=index-1,相反的话  start=index+1即可当然因为

2015-07-23 15:43:35 4773 1

原创 shell 文件操作

-a file exists. -b file exists and is a block special file. -c file exists and is a character special file. -d file exists and is a directory. -e file exists (just the same as -a). -f file e

2015-07-22 17:33:44 667

原创 linux下线程同步

这里我做的测试使用的模型是生产者消费者模型,分成两种情况其一只有一个缓冲区,我们使用信号量即可,分成两个,empty  和full。当缓冲区有空时,则生产者生产,当缓冲区full时。消费者消费#include#include#include#include#include//生产者消费者模式,只有一个缓冲区,一个消费者一个生产者//使用信号量进行线程同步void* consu

2015-07-22 16:36:41 446

原创 linux下线程的创建和管理

#include#include#include#includechar msg[]="Hello";void* thread_function(void*);int main(){    int res=-1;    pthread_t th={0};    printf("the mem is %s\n",msg);    res=pthread_c

2015-07-22 15:20:12 538

原创 判断一个数列是否是二叉树后序遍历的结果

例如数组 a[]={5,7,6,9,11,10,8}判断是否是二查搜索树后序遍历,则只需要将该序列还原为搜索二叉树,即可,但是二叉树的还原过程1.确定根节点所在,当然因为是后续所以根节点在数组的末尾元素2.确定两棵子树的范围以及依次插入的方向在此题中8 为根节点所在 6 和10 是距离根节点最近的元素,也即插入方向是从6 和10 开始顺次向前,6到5的位置截止,10到9的位置截止

2015-07-22 10:08:35 1843

原创 子树的包含问题

判断一棵树是否是另一棵树的子树,操作方法主要分成两部分,第一部分是确定子树的根节点在待检测树中的位置,检测方法很是简单,使用先序遍历整棵树,如果遍历中节点的值等于子树的根节点的值即可第二部分,是在第一部分的基础上,已经有了两个根节点,所以我们可以使用递归的方法,进行判断,直到带判断的两个节点中有一个是NULL即可struct BinTree{ int val; BinTree*

2015-07-22 09:19:04 699

原创 获得一个数组的全排列

例如 char a[]="abcd"求这个数组的全排列,将复杂问题或者不能直接解决的问题转变为多个简单问题的方法就是,让所有的元素一次成为第一个元素,void Traversal(char* const a,char* const pBegin){ if(NULL==a) return; if('\0'==*pBegin) { cout<<a<<endl; } else

2015-07-21 21:15:27 2133

原创 根据已知入栈顺序判断一个数组是否是出栈顺序

题目含义已经很明确了,现在开始使用一个样例输入和输出int a[]={1,2,3,4,5};//原始的入栈顺序int b[]={4,5,3,1,2};//出栈顺序int b1[]={4,5,3,2,1};//出栈顺序我的策略是依次遍历给定的出栈顺序数组,从第一个开始,以b为例,1、第一个元素是4,则在a中确定4所在的位置,将4之前的所有元素入栈记为sck,并记录该位置nCoun

2015-07-20 08:37:46 2075

原创 数组矩阵的顺时针输出

其实这个题目,我要讲的并不是这个题目的编码过程,而是对于这个问题解决过程:我们不能遇到这个问题之后立即编码是错误的,然而立即拿出笔在纸上写写画画时,也是需要进行技巧的,针对这个问题,我们首先看看顺时针时,走一圈作为一个循环,然而该循环的起点是很有意思的,这个点的所在的点行坐标和列坐标是相同的也即是双层循环的,一层内部循环是要进行四个方向的的遍历。从左到右       从上到下    

2015-07-19 21:20:49 2326

原创 linux 用户管理脚本

#!/bin/bashfunction mod_g(){ sudo usermod -G $2 $1}function mod_p(){ sudo passwd $1}function add_user() { echo "请输入用户名"; read user_name; sudo useradd $user_name sudo passwd $u

2015-07-17 19:50:42 970

原创 linux C进程信息查询

#include#include#include#include#include#include#include#include#include#includeint errno;extern char **environ;void getNameById(pid_t pid);int main(){ printf("开始创建临时文件\n"); //execl("/

2015-07-17 17:53:17 1189

原创 获得二叉树中两个节点的所有公共祖先

核心算法:首先使用递归方式获得最低公共祖先,然后使用队列特性,先进后出的特性使用广度搜索优先算法,按照广度进行填充在队列中,然后获得最低公共祖先元素的深度,然后我们需要遍历该队列中的所有元素,只要大于等于目标元素的深度,就可以将该元素在队列中去除,剩下的就是所有公共祖先的所有祖先了struct Node{ int val; Node* left; Node* right; Node(

2015-07-16 21:33:25 1291

原创 找到一个乱序数组排序后某一特定数值首次和末次出现的位置

不多说,上代码,我的思路是利用快速排序,进行数组排序,而后利用二分查找方法,进行快速定位int intArray[]={12,451,0,5,45,15,78,23,54,76,451};void QuickSort(int* a,int low,int high){ if(NULL==a) { return; } if(low>=high) { return ; }

2015-07-15 10:54:35 1059

原创 关于树的某些操作

1、找到链表中的倒数第k个元素:源代码如下:struct binNode{ binNode* next; int val; binNode():next(NULL),val(0){};};binNode* createBinNode(){ int a=0; binNode *head=NULL,*cur=NULL; bool mark=false; while(cin>>a

2015-07-15 09:51:52 536

原创 fork进程创建

fork创建子进程,fork函数返回两个值,当为0时,则认为是子进程代码块执行区域,而不为0则是父进程代码块执行区域。我们需要知道的是,fork子进程可以与父进程共享部分进程上下文,而与此不同的是execl函数,一旦开始执行到execl函数时,启动被调用的函数,后面的代码则不再执行,而是直接执行调用的程序,上下文也被替换。#include#include#include#includ

2015-07-14 20:51:55 571

原创 Lowest Common Ancestor of a Binary Tree

在一个二叉树中指定两个节点,并在这两个节点中寻找他们的最小父节点!!!struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};struct TreeSeal{ TreeSeal *left; Tree

2015-07-14 11:50:50 368

原创 atoi

class Solution {public: int myAtoi(string str) { long long n = 0; int flag = 0; for (int i = 0; i < str.length(); i++){ char ch = str.at(i); if (flag == 0 && ch == ' '){ continue;

2015-07-08 21:51:03 412

原创 判断回文数字

给定一个数字,判断该数字是不是回文数字,也即121 6556均为回文数字class Solution {private: int num;public: int get_max(int len) { len--; long long nAverage=1; while(len--) { nAverage*=2; } nAverage--; retur

2015-07-08 21:26:28 458

原创 Reverse digits of an integer.

Example1: x = 123, return 321Example2: x = -123, return -321挺简单的一个题目,只需要分情况讨论即可,因为一个int型数据可能是正数可能是负数,也可能为0,当然还有一种很重要的情况就是溢出,当实参大于int的最大值的情况下的处理,直接返回0即可class Solution {public: int reverse(int x

2015-07-06 20:31:27 1272

原创 Longest Palindromic Substring

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length ofS is 1000, and there exists one unique longest palindromic substring.问题描述:给定一个字符串,在这个字符串中寻找最

2015-07-03 11:12:39 109

原创 Median of Two Sorted Arrays

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)).问题描述:给定两个有序数组,从这两个有序数组中找到中值

2015-07-01 22:09:42 416

原创 Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For

2015-07-01 14:47:58 435

原创 Add Two Numbers

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a link

2015-07-01 09:49:00 426

reactor模式源码

c++高并发模式的reactor模式,其主要作用就是在接收信息之后在线程池中进行选择空闲线程进行处理

2015-09-16

查询文件所在的进程

查询系统中所有打开的文件,并根据文件名称查询进程ID

2014-05-30

多文件加密

其实就是很简单的把要加密的文件放在一个exe文件当中保存起来,当我们需要使用的时候,将其取出来放在我们制定的位置即可

2014-05-19

PE文件捆绑工程源码下载

将要绑定的exe文件作为单纯的数据放在目标exe文件的新区快当中,目标文件在执行时检测是否有该区块,有,则创建新文件并创建进程,执行完毕后删除新建文件

2013-12-16

汇编实现的计算器

适合初学者学习,win32下汇编计算器,只是简单的整数操作哈,高手飘过即可

2013-11-01

软件加壳源代码

PE文件检测,输入表内容获取和转储,以及重建shellcode写入新区段,获得LoadLibrary,GetProcAddress地址

2013-09-09

mfc实现下载的不完全控制

可以实现下载进度条,下载暂停,下载继续,下载停止

2013-07-18

空空如也

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

TA关注的人

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