自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 CSS关于底部div至于页脚

在网站底部,我们需要放置一些版权申明之类的东西。有时候一个网页纵向内容太少,不够一页显示,正常div排版下来,这些东西就会跑到网站底部上方。类似这样现在需要把上述两个div置底。为了达到这个目的,现构造一个html代码 相关链接 xxxx网 xxxx网 xx

2016-11-22 16:02:15 1017

原创 max-points-on-a-line

题目不难,但是要求考虑细节部分很多,同样的两个点默认在一条直线上,默认两点共线,但是这两个点要求不相同/** * Definition for a point. * class Point { * int x; * int y; * Point() { x = 0; y = 0; } * Point(int a, int b) { x = a; y

2016-06-11 20:38:25 252

原创 evaluate-reverse-polish-notation

题目的意思是求一个反向波兰表达式的值,这个表达式是由字符串数组组成,Reverse Polish Notation是由两个数字加一个运算符构成,前面两个数字再加上第三个运算字符就可以算出一个新的数字,继续带入表达式中做运算import java.util.Stack;public class Solution { public int evalRPN(String[] tokens)

2016-06-10 21:52:55 275

原创 minimum-depth-of-binary-tree

题目要求从根节点开始查找,一直到叶子节点,找出最短的层数,采用递归法,不断切割划分原问题class Solution {public: int run(TreeNode *root) { TreeNode *leftTree=root->left; TreeNode *rightTree=root->right; if(root==NU

2016-06-09 14:09:30 225

原创 重建二叉树

此题可以用递归处理,将一个大的问题不断切割划分成一个个可以用相同方法处理的子问题,先找到根节点再找左右子树,对于左右子树同样的先找到根节点,再去寻找它的左右子树,不断重复/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *ri

2016-06-09 11:16:22 212

原创 从尾到头打印链表

/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/class Solution {public: vector printL

2016-06-08 13:37:46 196

原创 之字形打印矩阵

class Printer {public: vector printMatrix(vector > mat, int n, int m) { // write code here vector arr; int row=0;int col=0;int flag=0; if(n%2!=0){ n=n

2016-06-07 20:45:52 392

原创 替换空格

//length为系统规定字符串输出的最大长度,固定为一个常数class Solution {public: void replaceSpace(char *str,int length) { char *newStr=(char *)malloc(sizeof(char *)*length);//预先为要用的数组分配好内存空间 int len=strlen(

2016-06-07 11:22:32 185

原创 二维数组中的查找

从最右上角开始查找,如果与目标结果相同则表示找到,如果比目标结果小则向左移动一格,如果比目标结果小则向下移动一格class Solution {public: bool Find(vector > array,int target) { int row=array.size(); int col=array[0].size(); int

2016-06-07 10:57:14 210

原创 微信红包

class Gift {public: int getValue(vector gifts, int n) { // write code here sort(gifts.begin(),gifts.end());//进行升序排序 vector::iterator st=gifts.begin(); int longest=0

2016-06-04 23:21:52 327

原创 1090. Highest Price in Supply Chain (25)

一开始这道题目输入方式没有搞懂,后来想想,题目第二行输入一系列数字代表意思是,从0到n-1这n个数字当中第i个供货商是Si,也就是说题目中输入出现了三个4,所在位置分别是2,3,5,也就是说编号2,3,5的货是由编号为4来提供的(一定注意最大编号n-1),由此就可以理解题目是想考察树的结构了。输出中第一个是指最深一级的人卖东西价钱是多少,第二个是指跟他处于同一级有几个人,题目本质考察树的深度遍历,

2016-04-10 21:06:07 500

原创 1049. Counting Ones (30)

题目意思很简单,要求输入一个整数N,判断从1到N中间出现所有数字中所携带1的个数,考虑1位数字0~9包含1个1,再考虑00~99包含20个1,再考虑000~999包含300个1,依次类推找出k+1位数字和k位数字所包含1的数量之间关系。接下来再从高位到低位不断分割,比如输入是1356,先找到000~999包含1个数,再找1000到1356包含1的个数,它包含1个数是357再加上356包含个数,依次

2016-04-08 14:54:31 348

原创 1045. Favorite Color Stripe (30)

这道题采用动态规划思想,划分状态,确立每一个状态,找出状态转移方程。以最后一行数据stripe[k]为参考,划分状态,stripe[k+1]为第k+1个状态,状态转移方程可以描述为如果state[k+1]=max{state[i]+1|stripe[k+1]在给定顺序order[i]后面,i在1到k之间},然后可以给出下面程序,程序提交最后一个点没有通过,继续找找原因#include usi

2016-04-07 15:20:57 304

原创 1041. Be Unique (20)

此题可以构建一个数组专门用来存储输入每个数字出现次数,找出只出现过一次的那个数字是第几个输入即可,由于输入数字(number)范围有限,它出现次数(times)两者之间有number远小于times,可以用数组第i个元素的值来表示i出现次数#include #include #include using namespace std;int statistic[10001];int a

2016-04-06 22:09:49 192

原创 1036. Boys vs Girls (25)

#include #include #include using namespace std;typedef struct stu{ string name; char sex; string ID; int grade;}stu;stu input[1000];int main(){ int N; cin>>N; for(int i=1;i<=N;i++){ ci

2016-04-06 21:42:23 250

原创 1096. Consecutive Factors (20)

这道题目由于数据很大,所以选用long long类型,算法比较容易想到,但是下面代码一直运算超时,应该改进一些#include #include #include using namespace std;vector result;const long long MAX=10000000;long long factor[MAX],factorLen=1;void FindCon

2016-04-06 11:06:51 210

原创 1027. Colors in Mars (20)

#include #include using namespace std;const char ch[]={'0','1','2','3','4','5','6','7','8','9','A','B','C'};string DecTo13(int num){ string str; char temp[3]; if(num==0){ temp[0]='0';

2016-04-05 20:16:25 193

原创 计算两个坐标点之间走最短距离有多少种走法

例如沿着一个网格点行走,从(a,b)到(c,d),每次只能横着走一步或者竖着走一步,一共有多少种走法,其实这个问题是一个变形之后的斐波那契数列问题,和青蛙跳台阶问题是一样的,假设(c,d)在(a,b)右上方,f(i,j)表示从坐标(i,j)到最终目的地走过最短路径个数,很容易知道有递推关系式f(i,j)=f(i+1,j)+f(i,j+1),所以可以写一个递归程序,递归程序虽然代码简单,但是效率

2016-04-05 00:30:08 5616

原创 n阶蛇形矩阵

昨天做一个笔试题目,遇到了一个求解n阶蛇形矩阵问题,此问题解法在于将这个大的矩阵划分成由外到内不断缩小的一个圈。对于偶数,比如若输入n=7,即可先画出最外边也就是最大的那个圈,边长都是7的正方形,然后再画内部边长为5,紧接着边长为3,最后边长为1;对于奇数,比如输入n=6的话,先画出最外边边长是6,再画出边长是4,最后边长是2,最终结束;关键在于把重复性的工作提取出来,每次画圈从顶点出发向右、再向

2016-04-04 11:09:32 3045

原创 PAT 1014 Waiting in Line (30)

#include #include #include #define inf 10000using namespace std;typedef struct window{ int endTime; queue q;}window;typedef struct customer{ int startTime; int endTime; int wasteTime;}cus

2016-03-23 15:33:02 263

原创 几种排序算法

首先是插入排序,在前n-1个数据已经排好的前提下,看第n个数据应该放在哪个位置,其实就是依次与前面数据相比较,通过交换达到目的#include using namespace std;int main(){ int a[100],k=0; cout<<"请输入你要排列的数组\n"; char ch=' '; while(ch!='\n')//未知输入个数,上限是100个 {

2015-08-10 11:18:13 253

原创 粒子群算法 MATLAB

对于Ackley函数粒子群算法求解其全局最优值,是粒子群算法应用的一个典型例子Ackley函数形如下借助matlab画出函数图像如下clear all;clc;a=linspace(-5,5,100);b=linspace(-5,5,100);[x,y]=meshgrid(a,b);z=-20*exp(-0.2*sqrt(0.5*(x.^2+y.^2)))-

2015-07-03 12:21:36 3285 2

原创 PAT 1010 Radix (25)

先看题目:这个题目算是比较DT,花了很长时间,提交次数很多,每次都会有测试点没通过,后来网上搜索了一下,有一些特俗边界条件被我们忽略。1,首先求目标数据进制,这个进制在任何条件下面都不能小于2,最大多少呢,不能局限于36,请想象多大都是有可能的,有多大,这么大!所以必须用long long int数据类型,这个一开始一直是被遗忘的角落。2,由于数据搜索范围太大,穷举法一

2015-06-30 22:01:13 2590 2

原创 PAT 1012 The Best Rank (25)

题目如下:就是找出每位同学自己四门功课C、M、E、A最好的一个排名,优先排名A>C>M>E 代码如下,主要还是一个排序问题:#include #include int sishe(float num);int min(int cp,int ma,int en,int av) ;using namespace std;int main(){ string str

2015-06-28 13:21:03 262

原创 PAT 1009 Product of Polynomials (25)多项式乘积

原题目如下:这个题目与多项式加法两者挺相似的,存储方法也差不度,第一次写的代码如下#include #include using namespace std;int main(){ float poly[2001]={0}; //有可能两个数组最大幂指数都是1000,所以要保证最终结果最大幂指数是2000 float poly1[1001]={0};/

2015-05-31 11:09:37 287

原创 PAT 1008

原题目如下:源代码如下#include using namespace std;int elevator(int m,int n);int main(){ int total,floor[101]={0}; cin>>total; for(int i=1;i<=total;i++) cin>>floor[i]; int total_time=0;

2015-05-30 22:44:39 275

原创 PAT 1006 相关字符串函数应用

题目如下主要用到库的字符串函数简单应用,代码如下#include #include #define inf 1e8using namespace std;int main(){ char id[100],idin[100],idout[100];//构建输入ID char time[8],timein[8],timeout[8]; char tim

2015-05-29 16:50:59 269

原创 PAT 1005

题目描述如下:题目要求输入来看最大数有可能达到10的100次方,显然不能用一个整数变量处理,考虑到数组行不行呢,不行,因为输入数据12345是连着的,并没有用空格隔开,也就是说12345这表示一个整体,不能将他们拆分成5个数字来看,那么下面就只能把它当做字符串来处理了,于是代码如下#include #include using namespace std;in

2015-05-29 16:45:07 270

原创 PAT 1001

原题目如下:我的代码如下,题目很简单,考虑各种情况周全点就可以了//输入任意两个整数,输出为标准格式如231000+322000=553,000 #include #include using namespace std;class add{ private: int a,b; public: add(int,int); void out(void

2015-05-29 16:06:47 322

原创 PAT 1007 两种算法比较

可以相应参考大神的解法http://blog.csdn.net/sgbfblog/article/details/8032464这道题目虽然不算难,但是找到一个简便的复杂度低一点算法还是挺难的,自己一开始写的程序太过繁琐,运行节点都没有问题,就是最后超时了!先给出原题下面是我自己第一次写的代码,很容易想到,但由于for循环嵌套太多,算法太复杂,复杂度为N的三次方#i

2015-05-29 15:10:06 534 1

转载 PAT 1004

原作者地址 http://www.jiancool.com/article/84172687436/ #include #include using namespace std;void findlevel(int);int parent[501],level[501],isleave[501],num[501];int maxlevel=0;int main(){ int N

2015-05-24 16:59:07 428

原创 PAT 1002 . A+B for Polynomials (25)多项式加法

自己写了下程序,开两个数组,然后在合并,再相加,效率很低,而且有几个测试点未通过

2015-05-09 16:58:42 459

Java常见游戏编程源代码

压缩包常见的几款java小游戏源代码,欢迎下载参考学习

2015-10-02

空空如也

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

TA关注的人

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