日志|力扣|不同路径|最小路径和|动态规划|Javase|IO|File|Javaweb
力扣
62.不同路径

思路:自顶向下,dp[i][j]表示(0,0)->(i,j)的路径和,dp数组就是当前格子可走的路径数也就是左边和上边的dp[i][j] = dp[i-1][j] + dp[i][j-1];,迭代填满二维数组,最后一个就是答案。
点击查看代码
class Solution {
public int uniquePaths(int m, int n) {
//初始化dp数组,从(0,0)点到第一行和第一列任意位置都是1种走法
int[][] dp = new int[m][n];
for(int i = 0; i < m; i++){
for(int j = 0;j<n; j++){
dp[i][j] = 1;
}
}
//从(0,0)点到其他任意位置进行迭代填满即可
for(int i = 1 ; i<m ;i++){
for(int j = 1;j<n;j++){
dp[i][j] = dp[i-1][j] + dp[i][j-1];
}
}
//返回答案
return dp[m-1][n-1];
}
}
64.最小路径和
思考:自顶向下,dp[i][j]表示(0,0)->(i,j)的最小路径和,定义一个二维dp数组保存每个位置最小路径和。第一个位置第一行第一列先初始化一下,填充dp数组,每个位置等于dp[i][j] = grid[i][j] + Math.min(dp[i-1][j],dp[i][j-1])
点击查看代码
class Solution {
public int minPathSum(int[][] grid) {
//初始化dp数组第一行和第一列,和第一个
int m = grid.length;
int n = grid[0].length;
int[][] dp = new int[m][n];
dp[0][0] = grid[0][0];
for(int j = 1;j < n;j++) dp[0][j] = grid[0][j] + dp[0][j-1];
for(int i = 1;i < m;i++) dp[i][0] = grid[i][0] + dp[i-1][0];
//填充DP数组
for(int i = 1;i < m;i++){
for(int j = 1;j < n;j++){
dp[i][j] = grid[i][j] + Math.min(dp[i-1][j],dp[i][j-1]);
}
}
return dp[m-1][n-1];
}
}
Javase
File
File只能操作文件本身,不能读取文件内数据,IO流读写数据:
File对象可以代表文件文件夹,通过File类提供的方法操作文件文件夹:
相对路径:在当前工程下寻找文件。
点击查看代码
//目标:学习File类
//File类:文件和目录路径名的抽象表示
//File类提供了很多方法,可以获取文件的属性,比如文件名,大小,是否隐藏,是否可读,是否可写,是否可执行,是否是目录,是否是文件,文件的最后修改时间等等。
//create file
//3.创建文件,没有文件创建文件
File file2 = new File("D:\\JavaTest\\zz101.txt");
System.out.println("是否存在文件zz101,结果是:" + file2.exists());
System.out.println(file2.createNewFile());//这是什么意思? //创建文件
//4.创建文件夹,没有文件夹创建文件夹
File file3 = new File("D:\\JavaTest\\zz102");
System.out.println(file3.mkdir());
//5.创建多级文件夹
File file4 = new File("D:\\JavaTest\\zz103\\zz104");
System.out.println(file4.mkdirs());
//6.删除文件
File file5 = new File("D:\\JavaTest\\zz101.txt");
System.out.println(file5.delete());
//7.删除文件夹
File file6 = new File("D:\\JavaTest\\zz102");
System.out.println(file6.delete());
//8.无法删除多级文件夹
File file7 = new File("D:\\JavaTest\\zz103");
System.out.println(file7.delete());
//9.获取某个文件夹下所有的文件名
File file8 = new File("D:\\JavaTest");
String[] list = file8.list();//把file8下的所有文件名保存到一个字符串数组中 .list()
for (String s : list) {
System.out.println(s);
}
//10.获取某个文件夹下所有的文件对象
File file9 = new File("D:\\JavaTest");
File[] files = file9.listFiles();
for(File f : files){
System.out.println(f.getAbsoluteFile());
}
/*
注意事项:
当遍历空文件夹时,会返回空数组
*/
File file10 = new File("D:\\JavaTest\\zz103\\zz104");
File[] filess = file10.listFiles();//获取file10下的所有文件对象
System.out.println(Arrays.toString(filess));//输出所有文件对象
IO流
输入输出对于内存来说的,内存->硬盘 == 输出 || 内存 <- 硬盘 == 输入
输入流 || 输出流 && 字节流=图片视频 || 字符流=文本
IO流四大金刚= 字节输入流 字节输出流 字符输入流 字符输出流
全是抽象类:InputStream OutStream Reader Writer
实现类:前缀+ File
文件字节输入流FileInputStream

文件字节输出流FileOutStream

Javaweb
统筹


浙公网安备 33010602011771号