上午9点~中午12点,
日常vj刷题,动态规划(磕了个B题,关键是还没对)
动态规划:
1,简单的一维dp:
要求 dp[n],动态规划的题,把一个规模比较大的问题分成几个规模比较小的问题,然后由小的问题推导出大的问题。,dp[n] 的规模为 n,比它规模小的是 n-1, n-2, n-3…. ,dp[n] 一定会和 dp[n-1], dp[n-2]….存在某种关系的。找出他们的关系。
对于上面的题:
一种是从第 n-1 级跳上来
一种是从第 n-2 级跳上来
要算所有可能的跳法,所以有 dp[n] = dp[n-1] + dp[n-2]。
找出初始化条件,再进行初始化。
2,二维数组的 DP:
例:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。
问总共有多少条不同的路径?
两种到达方式:
一种是从 (i-1, j) 这个位置走一步到达。
一种是从(i, j - 1) 这个位置走一步到达。
就有关系式:关系式是 dp[i] [j] = dp[i-1] [j] + dp[i] [j-1]。
找出初始化条件,再进行初始化。
3,二维求最短路径和
例:
两种方式到达:
一种是从 (i-1, j) 这个位置走一步到达。
一种是从(i, j - 1) 这个位置走一步到达。
关系式:
4,困难的编辑距离:(还不会)
给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数。
下午3点~5点20
学习Java,看视频,JDBC编程与MySql数据库。
1,JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数 据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
2,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。下列代码段给出了以上三步的基本示例:
Connection con = DriverManager.getConnection("jdbc:odbc:wombat","login",
"password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
3,JDBC 是个”低级”接口,也就是说,它用于直接调用 SQL 命令。在这方面它的功能极佳,并比其它的数据库连接 API 易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。高级接口是”对用户友好的”接口,它使用的是一种更易理解和更为方便的 API,这种API在幕后被转换为诸如 JDBC 这样的低级接口。
4,使用 JDBC-ODBC 桥驱动程序, 可以用下列代码装载它:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
5,如果类名是 jdbc.DriverXYZ ,将用以下的代码装载驱动程序:
Class.forName("jdbc.DriverXYZ");
6,驱动加载指定数据库的练习:
public class JDBCPractice {
private String userName = "root";
private String password = "ttddww20021208";
private String ur1 = "jdbc:mysql://localhost:3306/db1";
{
try
{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("驱动加载成功!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("加载失败");
e.printStackTrace();
}
}
}