力扣
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) {int[][] dp = new int[m][n];for(int i = 0; i < m; i++){for(int j = 0;j<n; j++){dp[i][j] = 1;}}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[cur] = Math.min(dp[down], dp[right]) + cur;int m = grid.length;int n = grid[0].length;int[][] dp = new int[m][n];dp[0][0] = grid[0][0];//初始化dp数组第一行和第一列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