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

力扣

62.不同路径

局部截取_20250923_160419
思路:自顶向下,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

局部截取_20250923_201345

文件字节输出流FileOutStream

局部截取_20250923_220044

Javaweb

统筹

局部截取_20250923_221535

局部截取_20250923_221821

posted @ 2025-09-23 22:32  柳成荫y  阅读(18)  评论(0)    收藏  举报