http://zhangnai.xin/2016/09/20/LeetCode-Framework/

目录结构:

  • LeetCode ——项目名称,方便Eclipse内置Git对代码进行管理和多终端同步

    • pid1 ——题目包,每个题目封装在一个单独的包中,包名用LeetCode题目编号表示

      • Solution.java ——算法类,注意到LeetCode每道题目的代码类名为Solution
      • main.java ——包含主函数(控制逻辑、测试用例数组)、测试函数(测试结果输出、算法耗时)
    • pid2 
      • Solution.java
      • main.java  

以具体题目为例:96. Unique Binary Search Trees

  1. 拿到题目,首先在Eclipse中建立题目包pid96;
  2. 新建类:main.java,并创建方法: main 和 test;
  3. 新建类:Solution.java,将算法方法代码用题目中原始代码进行替换,并添加默认返回值;
  4. 在main方法中新建测试用例数组,并循环调用测试模块test(ito);
  5. 在test方法中实例化Solution类,添加计时语句,并在计时语句内部加入执行算法语句。

至此,答题框架搭建完毕,代码内容如下:

main.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package pid96;
 
/**
* Unique Binary Search Trees
*
* Given n, how many structurally unique BST's
* (binary search trees) that store values 1...n?
*
* For example, Given n = 3, there are a total of 5 unique BST's.
*
* 1 3 3 2 1
* \ / / / \ \
* 3 2 1 1 3 2
* / / \ \
* 2 1 2 3
*
* @author 白
*
*/
public class main {
public static void main(String[] args) {
int[] testTable = { 0, 1, 2, 3, 4, 5, 6, 10, };
for (int ito : testTable) {
test(ito);
}
}
 
private static void test(int ito) {
Solution solution = new Solution();
int rtn;
long begin = System.currentTimeMillis();
rtn = solution.numTrees(ito);
long end = System.currentTimeMillis();
System.out.println(ito + ": rtn=" + rtn);
System.out.println();
System.out.println("耗时:" + (end - begin) + "ms");
System.out.println("-------------------");
}
}

Solution.java

1
2
3
4
5
6
7
package pid96;
 
public class Solution {
public int numTrees(int n) {
return 0;
}
}

接下来开始写算法,全部在Solution.java中完成。


完成后如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package pid96;
 
public class Solution {
public int numTrees(int n) {
 
if(n<=1)return 1;
if(n==2)return 2;
 
int [] table= new int [n+1];
 
table[0]=1;
table[1]=1;
table[2]=2;
 
for(int i=2;i<n;i++)
for(int j=0;j<=i;j++)
table[i+1]+=table[i-j]*table[j];
 
return table[n];
}
}

运行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
0: rtn=1
 
耗时:0ms
-------------------
1: rtn=1
 
耗时:0ms
-------------------
2: rtn=2
 
耗时:0ms
-------------------
3: rtn=5
 
耗时:0ms
-------------------
4: rtn=14
 
耗时:0ms
-------------------
5: rtn=42
 
耗时:0ms
-------------------
6: rtn=132
 
耗时:0ms
-------------------
10: rtn=16796
 
耗时:0ms
-------------------
 
 

LeetCode包括main函数的答题框架(Java+Eclipse)的更多相关文章

  1. Java 静态static关键字,main函数,对象的初始化过程,对象调用成员,单例模式的设计,静态代码块(6)

    Java 静态static关键字,静态代码块详情参考:static的使用原理讲解http://www.cnblogs.com/itcqx/p/5519464.html main函数: java Mai ...

  2. 1-Java类结构和main函数

    目录 Java类 main函数 1.Java类 - 类是java中最基础的逻辑单位 java中所有的内容都要放在类的范围中 - 类的构成 成员变量/属性 成员方法/函数 - java文件必须以.jav ...

  3. (转)Java程序利用main函数中args参数实现参数的传递

    Java程序利用main函数中args参数实现参数的传递 1.运行Java程序的同时,可以通过输入参数给main函数中的接收参数数组args[],供程序内部使用!即当你在Java命令行后面带上参数,J ...

  4. 菜鸟nginx源码剖析 框架篇(一) 从main函数看nginx启动流程(转)

    俗话说的好,牵牛要牵牛鼻子 驾车顶牛,处理复杂的东西,只要抓住重点,才能理清脉络,不至于深陷其中,不能自拔.对复杂的nginx而言,main函数就是“牛之鼻”,只要能理清main函数,就一定能理解其中 ...

  5. Java的初始化执行顺序(父类static变量->子类static变量->父类成员变量->父类构造器->成员变量->构造器->main函数)

    1. 引言 了解Java初始化的顺序,有助于理解Java的初始化机制和内存机制. 顺序:父类static变量->子类static变量->父类成员变量->父类构造器->成员变量- ...

  6. java基础9 main函数、this、static、super、final、instanceof 关键字

    一.main函数详解 1.public:公共的.权限是最大的,在任何情况都可以访问  原因:为了保证jvm在任何情况下都可以访问到main法2.static:静态,静态可以让jvm调用更方便,不需要用 ...

  7. 菜鸟nginx源代码剖析 框架篇(一) 从main函数看nginx启动流程

    菜鸟nginx源代码剖析 框架篇(一) 从main函数看nginx启动流程 Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.c ...

  8. eclipse的maven项目,如何使用java run main函数

    项目使用maven管理,一般说来就使用jetty:run了.但是对于做功能测试和集成测试的用例,需要使用自定义的quickrun来运行进行测试环境的参数设定和功能隔离,google一番发现maven有 ...

  9. [Java基础]java的main函数

    1.main函数详解 main在编程中的形式:public static void main(String[] args) { - } public : 公共的. 权限是最大,在任何情况下都可以访问. ...

随机推荐

  1. 绕过限制,在PC上调试微信手机页面

    场景 假设一个手机页面,开发者对其做了限制,导致只能在微信客户端中打开.而众所周知手机上非常不利于调试页面,所以需要能在电脑上打开并进行调试.这里针对常见的三种页面做一下分析,一一绕过其限制,(当然不 ...

  2. 【转载】html中object标签详解

    [转载自http://blog.csdn.net/soliy/archive/2010/03/22/5404183.aspx] html标签之Object标签详解 作者:网络    出处:网络     ...

  3. 开发需求:每个表dump出部分数据

    mysqldump 每张数据表统一导出的N个记录数 需求: 在开发过程中,需要将生产的数据导出到本地开发环境,希望可以每个表都导出部分数据.由于生产数据表都是上千万或亿级别,直接从服务器导出数据会影响 ...

  4. 初学 python 之 用户登录实现过程

    要求编写登录接口 : 1. 输入用户名和密码 2.认证成功后显示欢迎信息 3.用户名输错,提示用户不存在,重新输入(5次错误,提示尝试次数过多,退出程序) 4.用户名正确,密码错误,提示密码错误,重新 ...

  5. 基于Linux的Samba开源共享解决方案测试(二)

    单NAS网关50Mb码率视音频文件的稳定读测试结果如下: 50Mb/s负载性能记录 NAS网关资源占用 稳定读 稳定读 CPU空闲 内存空闲 网卡占用 13个稳定流 96.70% 10G 104MB/ ...

  6. 如何分析 WindowsDump:Dump 起源与初始设置

    https://www.qcloud.com/community/article/511817 转者注:让我感觉以前看蓝屏都白看了~~~原来蓝屏也可以分析具体原因. 适用场景:Windows 系列系统 ...

  7. Spring AOP的总结

  8. HTML5 新特性(一)

    1. 新的Doctype 尽管使用<!DOCTYPE html>,即使浏览器不懂这句话也会按照标准模式去渲染 2. Figure元素 用<figure>和<figcapt ...

  9. 2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 Week5 20165233

    Exp3 免杀原理与实践 实验内容 一.基础问题回答 1.杀软是如何检测出恶意代码的? 基于特征码的检测:通过与自己软件中病毒的特征库比对来检测的. 启发式的软件检测:就是根据些片面特征去推断.通常是 ...

  10. OpenACC Hello World

    ▶ 在 windows 10 上搭建 OpenACC 环境,挺麻烦 ● 安装顺序:Visual Studio 2015(PGI 编译器不支持 Visual Studio 2017):CUDA Tool ...