用m种颜色着色圆的n个扇形的方法总数 题目: 将圆分成 nnn 个扇形,用 mmm 种不同颜色染色,并且相邻的扇形不同色,问有多少种着色方法。分析: 假设将圆分成 nnn 个扇形符合题意的着色方法有 AnAnA_n 种。 对第一个扇形着色有 mmm 种,第二个扇形有 (m−1)(m−1)(m-1) 种,第三个扇形有 (m−1)(m−1)(m-1) 种…………\ldots\ldots第 nnn 个扇形有 (m−1)(m−1)(m-...
矩阵中的路径--回溯 题目描述: 题目链接 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如下矩阵中包含一条字符串”bcced”的路径,但是矩阵中不包含”abcb”路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径...
字符串的排列--字典序生成、回溯 题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 题目链接AC代码:import java.util.ArrayList;import java.util.TreeSet;public class Solution { public ArrayLi...
数值的整数次方 原题链接点击这里题目描述: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。AC代码:public class Solution { public double Power(double base, int exponent) { int exp=0; if(exponent&g...
Python基础篇 起步命令行运行 python 即可查看安装信息运行如下python代码也可查看安装版本:import sysprint (sys.version) 注意: Python3 和Python2的输出语法不一样,一个要括号,一个不要括号Sublime里面python运行环境的安装:Tools->Building System->New Build System,输入以
迪杰斯特拉算法Java实现 Disjktra 关于迪杰斯特拉的理论知识,参考理解最短路径——迪杰斯特拉(dijkstra)算法代码实现从源点到其他各点最短路径:最重要的是每次循环找出离源点最近的未标记点 nearestPos,然后以此点为中间点,修正从 start 点经过 nearestPos 点到其他各点 i 的最短路径长度。public class Dijkstra { static int MAX = 10000; p
牛刀小试二:字符串回文分割 Palindrome Partitioning (DFS+Backtrack) 题目:给定一个字符串s,要求划分串s使得得到的每一个子串都是一个回文串(即字符串从中间划分,前、后字符为镜像),结果返回所有可能的划分。例如:给定s=“ababc”,返回[ [“aba”,“b”, “c”], [“a”,“bab”, “c”], [“a”,“b”, “a”, “b”, “c”]]才发现这是LeetCode上的题目,链接在此。主要是深度优先搜索和回溯法的
牛刀小试一:矩阵最短路径 题目:给定一个M×N的矩阵,定义一条路径为:从矩阵左上顶点数字出发到达右下数字,每一次只可以从一个数字出发向右移动一步或向下移动一步,定义路径和为:路径经过的数字的和。要求编写一个程序,找到路径和最小的那条路径,并给出最小路径和。给定如图所示矩阵:一条路径为2->0->3->6->9->5,路径和为25[2 ,0 ,11,1 ][4 ,3 ,6 ,12][7 ,10,9 ,
CSAPP Lab3:attacklab缓冲区溢出攻击实验 参考文章:http://wdxtub.com/2016/04/16/thick-csapp-lab-3/http://blog.csdn.net/lijun538/article/details/50682387http://blog.csdn.net/pessis1/article/details/52957696实验文件,点此下载实验答案:请
Java基础示例程序 继承和转型public class Demo { public static void main(String[] args) { Test t = new Test(); t.test(); Fest f = new Fest(); f.test(); Test tf = new Fest(); tf.test(); Fest ft = (Fest) new T
CSAPP Lab2: bomblab拆炸弹实验(汇编代码的理解) 参考文章:实验准备知识http://blog.csdn.net/shiyuqing1207/article/details/45849413http://blog.csdn.net/shiyuqing1207/article/details/45849541http://blog.csdn.net/shiyuqing1207/article/details/45872429隐藏
CSAPP Lab1:Manipulating Bits 主要是位操作还有二进制补码的理解。参考如下文章:https://wenku.baidu.com/view/584fee14af1ffc4ffe47acf2.html (非常好的实验报告)http://blog.163.com/miss_littleli/blog/static/24500302320151123115441194/ (log2这一题讲的非常清楚)/*
堆和栈相关知识 网上关于堆和栈的资源很多,推荐几篇文章http://blog.csdn.net/hairetz/article/details/4141043 (堆和栈的区别,以及程序数据存储位置。非常好的文章)http://jingyan.baidu.com/article/6c67b1d6a09f9a2786bb1e4a.htmlhttp://www.cnblogs.com/jztan/p
算法学习之动态规划--最长公共子序列 题目:给出两个字符串,求出这样的一个最长的公共子序列的长度:子序列中的每个字符都能在两个原串中找到,而且每个字符的先后顺序和原串中的先后顺序一致。Sample Input :abcfbc abfcabprogramming contestabcd mnpSample Output :420题目分析:输入两个串s1,s2, 设MaxLen(
算法学习之动态规划--最长上升子序列 问题描述:一个数的序列ai,当a1 你的任务,就是对于给定的序列,求出最长上升子序列的长度。输入数据 输入的第一行是序列的长度N (1 输出要求 最长上升子序列的长度。 输入样例 7 1 7 3 5 9 4 8 输出样例 4解题思路:1.找子问题 “求序列的前n个元素的最长上升子序列的长度”是个子问题,但这样分解子问题,不具有“无
算法学习之动态规划--数字三角形最大路径和 题目:73 88 1 02 7 4 44 5 2 6 5在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可,不必给出具体路径。三角形的行数大于1小于等于100,数字为 0 - 99。输入格式:5//三角形行数。下面是三角形73 88
算法学习之分治--快速排序 分治的典型应用:快速排序基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据小,然后再按此方法对这两部分数据分别进行快速排序。设要排序的数组是A[0],A[1], …, A[N-1],首先任意选取一个数据作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称之为一趟快速排序。整个排序过程有多
算法学习之分治--归并排序 分治的基本概念:把一个任务,分成形式和原任务相同,但规模更小的几个部分任务(通常是两个部分),分别完成,或只需要选一部完成。然后再处理完成后的这一个或几个部分的结果,实现整个任务的完成。数组排序任务可以如下完成:1) 把前一半排序2) 把后一半排序3) 把两半归并到一个新的有序数组,然后再拷贝回原数组,排序完成。代码实现归并排序:#inclu