自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 用m种颜色着色圆的n个扇形的方法总数

题目: 将圆分成 nnn 个扇形,用 mmm 种不同颜色染色,并且相邻的扇形不同色,问有多少种着色方法。 分析: 假设将圆分成 nnn 个扇形符合题意的着色方法有 AnAnA_n 种。 对第一个扇形着色有 mmm 种,第二个扇形有 (m−1)(m−1)(m-1) 种,第三个扇形有 (m−1)(...

2018-03-19 21:05:26

阅读数 2232

评论数 0

原创 矩阵中的路径--回溯

题目描述: 题目链接 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如下矩阵中包含一条字符串”bcced”的路...

2018-03-19 12:49:51

阅读数 179

评论数 0

原创 字符串的排列--字典序生成、回溯

题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 题目链接 AC代码: import java.util.ArrayList; import java.util....

2018-03-19 12:00:55

阅读数 200

评论数 0

原创 数值的整数次方

原题链接点击这里 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 AC代码: public class Solution { public double Power(double base, int e...

2018-03-09 22:37:36

阅读数 87

评论数 0

原创 Python基础篇

起步 命令行运行 python 即可查看安装信息 运行如下python代码也可查看安装版本: import sys print (sys.version) 注意: Python3 和Python2的输出语法不一样,一个要括号,一个不要括号 Sublime里面python运...

2018-02-02 16:33:37

阅读数 244

评论数 0

原创 迪杰斯特拉算法Java实现 Disjktra

关于迪杰斯特拉的理论知识,参考理解最短路径——迪杰斯特拉(dijkstra)算法 代码实现从源点到其他各点最短路径: 最重要的是每次循环找出离源点最近的未标记点 nearestPos,然后以此点为中间点,修正从 start 点经过 nearestPos 点到其他各点 i 的最短路径长度。 p...

2018-01-02 10:59:00

阅读数 299

评论数 0

原创 牛刀小试二:字符串回文分割 Palindrome Partitioning (DFS+Backtrack)

题目:给定一个字符串s,要求划分串s使得得到的每一个子串都是一个回文串(即字符串从中间划分,前、后字符为镜像),结果返回所有可能的划分。例如:给定s=“ababc”,返回[      [“aba”,“b”, “c”],      [“a”,“bab”, “c”],      [“a”,“b”, “...

2018-01-01 13:55:36

阅读数 239

评论数 0

原创 牛刀小试一:矩阵最短路径

题目: 给定一个M×N的矩阵,定义一条路径为:从矩阵左上顶点数字出发到达右下数字,每一次只可以从一个数字出发向右移动一步或向下移动一步,定义路径和为:路径经过的数字的和。要求编写一个程序,找到路径和最小的那条路径,并给出最小路径和。 给定如图所示矩阵:一条路径为2->0->3-...

2017-12-05 21:12:10

阅读数 1131

评论数 1

原创 CSAPP Lab3:attacklab缓冲区溢出攻击实验

参考文章: http://wdxtub.com/2016/04/16/thick-csapp-lab-3/ http://blog.csdn.net/lijun538/article/details/50682387 http://blog.csdn.net/pessis1/arti...

2017-11-07 20:47:28

阅读数 1448

评论数 0

原创 Java基础示例程序

继承和转型 public class Demo { public static void main(String[] args) { Test t = new Test(); t.test(); Fest f = new Fest(); f.test(); Test tf ...

2017-10-24 14:33:12

阅读数 150

评论数 0

原创 CSAPP Lab2: bomblab拆炸弹实验(汇编代码的理解)

参考文章: 实验准备知识http://blog.csdn.net/shiyuqing1207/article/details/45849413 http://blog.csdn.net/shiyuqing1207/article/details/45849541 http://blog.csdn...

2017-10-22 19:36:36

阅读数 4235

评论数 0

原创 CSAPP Lab1:Manipulating Bits

主要是位操作还有二进制补码的理解。 参考如下文章: https://wenku.baidu.com/view/584fee14af1ffc4ffe47acf2.html (非常好的实验报告) http://blog.163.com/miss_littleli/blog/static/24...

2017-10-12 22:09:28

阅读数 485

评论数 0

原创 堆和栈相关知识

网上关于堆和栈的资源很多,推荐几篇文章 http://blog.csdn.net/hairetz/article/details/4141043 (堆和栈的区别,以及程序数据存储位置。非常好的文章) http://jingyan.baidu.com/article/6c67b1d6a09f...

2017-10-12 12:47:28

阅读数 149

评论数 0

原创 算法学习之动态规划--最长公共子序列

题目: 给出两个字符串,求出这样的一个最长的公共子序列的长度:子序列中的每个字符都能在两个原串中找到,而且每个字符的先后顺序和原串中的先后顺序一致。 Sample Input : abcfbc abfcab programming contest abcd mnp Sample O...

2017-09-20 22:14:21

阅读数 217

评论数 0

原创 算法学习之动态规划--最长上升子序列

问题描述: 一个数的序列ai,当a1 你的任务,就是对于给定的序列,求出最长上升子序列的长度。 输入数据  输入的第一行是序列的长度N (1 输出要求  最长上升子序列的长度。  输入样例  7  1 7 3 5 9 4 8  输出样例  4 解题思路: ...

2017-09-19 22:13:19

阅读数 225

评论数 0

原创 算法学习之动态规划--数字三角形最大路径和

题目: 7 3  8 8  1  0 2  7  4  4 4  5  2  6  5 在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可,不必给出具体路径。三角形的行数大于1小于等于10...

2017-09-19 20:40:40

阅读数 1466

评论数 0

原创 算法学习之分治--快速排序

分治的典型应用:快速排序 基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据小,然后再按此方法对这两部分数据分别进行快速排序。 设要排序的数组是A[0],A[1], …, A[N-1],首先任意选取一个数据作为关键数据,然后...

2017-09-19 07:28:10

阅读数 392

评论数 0

原创 算法学习之分治--归并排序

分治的基本概念: 把一个任务,分成形式和原任务相同,但规模更小的几个部分任务(通常是两个部分),分别完成,或只需要选一部完成。然后再处理完成后的这一个或几个部分的结果,实现整个任务的完成。 数组排序任务可以如下完成: 1) 把前一半排序 2) 把后一半排序 3) 把两半归并到...

2017-09-19 07:24:20

阅读数 456

评论数 0

原创 算法学习之递归--4个数组成24的问题

题目:给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。 现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。 这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致(这里的除法定义是实数除法)。 比如,对于5,5,5,1,我们知道...

2017-09-16 19:17:32

阅读数 2375

评论数 0

原创 无符号整型数用二进制串表示,求此串中1的个数

比方说数11,用二进制表示是1011 其中1的个数是3. 此题的求解方法有好多种,参考此文章http://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html 这篇文章中有好多种算法,值得一读。这里主要再分析一下完美法的算法。算法代码如下...

2017-09-14 21:42:53

阅读数 503

评论数 0

原创 算法学习之递归--放苹果问题

问题:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(注:5,1,1和1,5,1 是同一种分法) 分析:设 f(m,n) 为m个相同的苹果放到n个相同的盘子中的方法总数。下面对n进行讨论, 当 n>m 时,则必有n-m个盘子是空的。去掉这些空...

2017-09-12 21:28:15

阅读数 297

评论数 0

原创 算法学习之递归--爬楼梯问题

例题: 爬楼梯 树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。 例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一共3种方法。 输入:输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 输出...

2017-09-12 20:01:14

阅读数 6356

评论数 0

原创 算法学习之递归--表达式计算(简单计算器)

题目: 输入为四则运算表达式,仅由整数、+、-、*、/ 、(、) 组成,没有空格,要求求其值。假设运算符结果都是整数。"/"结果也是整数。 解题思想: 表达式的计算是个递归过程,如下图 递归解决代码如下: #include #include...

2017-09-12 19:12:24

阅读数 1934

评论数 0

原创 算法学习之递归--逆波兰表达式

递归的作用: 1) 替代多重循环 2) 解决本来就是用递归形式定义的问题 3) 将问题分解为规模更小的子问题进行求解 .... 这次我们用递归来解决递归形式的问题。 逆波兰表达式问题: 逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为...

2017-08-22 09:29:15

阅读数 506

评论数 0

原创 算法学习之递归--N皇后问题

递归的作用: 1) 替代多重循环 2) 解决本来就是用递归形式定义的问题 3) 将问题分解为规模更小的子问题进行求解 .... 现在就用递归代替多重循环解决N皇后问题。 n皇后问题:输入整数n, 要求n个国际象棋的皇后,摆在n*n的棋盘上,互相不能攻击,即任意两个皇后都不能...

2017-08-21 21:10:20

阅读数 308

评论数 1

原创 算法学习之递归--汉诺塔问题

一个函数调用其自身就是递归。最经典的递归求阶乘如下: int Factorial(int n){ if(n == 0) return 1; return n * Factorial(n-1); } 递归和普通函数调用都是通过栈实现的。 汉诺塔问题 古...

2017-08-21 19:30:48

阅读数 229

评论数 0

原创 从数组中找出只出现一次的两个数,数组中其他数都出现两次

题目:在数组中有两个数只出现一次,其他数均出现两次。问怎样快速找出这两个数。 方法一: 直接遍历整个数组,建成类似hash的数组。用原始数组中元素值当hash数组下标,出现次数当hash数组元素值。最后再遍历一次hash,找出值为1元素的下标。或者不用hash数组,用map的键值对。思...

2017-08-21 16:57:34

阅读数 3709

评论数 0

原创 两个队列实现一个栈,并实现入栈、出栈、取栈顶等相关操作

分析:熟悉队列的先进先出,队列的进队出队、取队头队尾相关操作。这样就不难实现栈的相关操作。对照下面的示意图,理解程序代码。 实现代码: #include #include using namespace std; template class DoubleQueue_Stack{ p...

2017-08-21 10:23:19

阅读数 230

评论数 0

原创 两个栈实现一个队列,并实现队列入队、出队、取队头、取队尾相关操作

分析:栈是先进后出,队列是先进先出。可以在草稿本上模拟一下,然后就可以理解下面程序。对照下面的示意图。 实现代码: #include #include using namespace std; template class DoubleStack_Queue{ public: ...

2017-08-21 10:19:13

阅读数 627

评论数 0

原创 实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)

分析:栈的出栈和入栈操作都是时间复杂度O(1)的,问题主要是如何获得栈中所有元素的最小值。其实如果问题是数组中存入很多元素,取出元素中的最小值,时间O(1),那很简单,就是设置一个变量,每次存入数据的时候都和最小值变量比较,到最后取此变量值即可。但是在栈中,我们要求不管push或者pop多少次,此...

2017-08-20 17:00:34

阅读数 608

评论数 0

原创 算法学习之枚举--熄灯问题POJ1222EXTENDED LIGHTS OUT

题目链接http://poj.org/problem?id=1222 这道题在MOOC平台上老师当枚举例题讲的,但是我网上搜了一下更多的是高斯消元法。 二维数组模拟http://blog.csdn.net/morgan_xww/article/details/5801296 高斯消元法http:/...

2017-08-19 20:55:33

阅读数 387

评论数 0

原创 算法学习之枚举--称硬币

枚举就是逐个尝试,直到找出正确答案。下面通过一个称硬币问题继续学习枚举思想。 问题: 有12枚硬币。其中有11枚真币和1枚假币。假币和真币重量不同,但不知道假币比真币轻还是重。现在,用一架天平称了这些币三次,告诉你称的结果,请你找出假币并且确定假币是轻是重(数据保证一定能找出来)。  ...

2017-08-19 09:46:19

阅读数 1142

评论数 0

原创 趣味数学--用1到9这九个数组成一个四位数乘以一位数等于四位数的等式,每个数只能用一次

如标题所示,题目很简单,要求用1-9这9个数写出一个等式,这个等式是四位数乘以一位数等于四位数,每个数字只能用一次,即不重复出现。 现在给出枚举算法的解答。 #include #include int main(){ char num[]="123456789&quo...

2017-08-18 19:42:18

阅读数 3401

评论数 0

原创 在给定的序列中寻找两数之和为定值m的情况--对算法复杂度的分析与优化

问题:输入n(n 方法一: 题目就是为了找两个数之和为m的情况,那我们可以用两重循环,枚举所有的取数方法。 for(int i=0;i<n-1;++i){ for(int j=i+1;j<n-1;++j) if(a[i]+a[j]==m) ...

2017-08-17 17:03:29

阅读数 158

评论数 0

原创 位运算

1、概述 位运算概念:用于对整数类型(int,char, long 等)变量中的某一位(bit),或者若干位进行操作。 比如: 1) 判断某一位是否为1 2) 只改变其中某一位,而保持其他位都不变。 C/C++语言提供了六种位运算符来进行位运算操作: & 按位与(双...

2017-08-16 16:53:30

阅读数 150

评论数 0

原创 二叉树(二) 求二叉树高度,根据先序和中序构建二叉树,判断二叉树是否是完全二叉树,判断两棵树是否相等

根据上一篇二叉树的各种遍历方法,本篇文章进一步写出二叉树相关操作函数代码。 1、求二叉树高度 递归求解: /*递归求二叉树高度*/ int Btdeep(BiTree T){ if(T == NULL) return 0; int ldeep = Bt...

2017-08-15 20:11:13

阅读数 371

评论数 0

原创 二叉树(一) 先序遍历、中序遍历、后续遍历、层次遍历的递归与非递归实现

直接看代码吧,理论知识略了,网上一搜一大把,本篇主要记录代码实现过程。 #include #include #include #include #include using namespace std; /*二叉树链式存储结构*/ typedef struct BiTNode{ c...

2017-08-15 16:33:59

阅读数 191

评论数 0

原创 UVa679-Dropping Balls-小球下落-二叉树的编号

题目链接:https://vjudge.net/problem/UVA-679 本题程序并不是按照OJ输入输出的! 有一棵二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从上到下从左到右编号为1, 2, 3,…, 2D-1。在结点1处放一个小球,它会往下落。每个内结点上都有一个开关,初始全...

2017-08-12 10:32:37

阅读数 217

评论数 0

原创 C++常见字符串操作函数的实现(strcpy/strcat/strcmp/strlen/strchr/strstr/strpbrk/strrev等)

先看一下字符串操作函数,点这里C语言字符串操作总结大全(超详细) 1、strcpy 函数原型:char *strcpy(char *dest, const char *src)  函数功能:将源字符串src的内容复制到目的字符串dest中,并返回指向目的字符串dest的指针。 注意...

2017-08-09 12:06:16

阅读数 607

评论数 0

原创 UVa514-Rails-铁轨--栈的使用

说明:本题只是主要思想代码,没有按照OJ上的输入输出格式来。要提交OJ的修改下输入即可。 题目:https://vjudge.net/problem/UVA-514 某城市有一个火车站,铁轨铺设如图6-1所示。有n节车厢从A方向驶入车站,按进站顺序编号为1~n。你的任务是判断是否能让它...

2017-08-06 09:13:57

阅读数 261

评论数 0

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