会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132437个问题
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/GraphQL 19636楼
人工智能/第十五阶段:深度学习-语义分割原理和实战/蒙版弹幕MaskRCNN语义分割 19638楼

老师好,我在用数组做动态规划算法题时,遇到个问题:


问题是爬楼梯的算法问题:

https://leetcode-cn.com/problems/climbing-stairs/



代码如下:


class Solution {
    public int climbStairs(int n) {
        if(n<=0) return 0;
        if(n==1) return 1;
        if(n==2) return 2;
        int[] dp = new int[n];
        dp[1]=1;
        dp[2]=2;
        for(int i=3;i<=n;i++){
            dp[i]=dp[i-1]+dp[i-2];
        }
        return dp[n];
        
    }
}



我的问题在第六行,在初始化数组时,因为for循环i到n就截止了,因此dp的最后条件是:

dp[n]=dp[n-1]+dp[n-2];


因此第六行创建初始化数组,我认为数组长度为n就够了,但是这里会出现 out of bounds的超出边界问题。


这里应该是初始化一个n+1 长度的数组,但是这里我不懂为什么会超出边界呢?谢谢


JAVA 全系列/第一阶段:JAVA 快速入门/数组和数据存储 19641楼
Python 全系列/第一阶段:Python入门/Python入门(动画版) 19642楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 19643楼
JAVA 全系列/第二十八阶段:高并发实战和BATJ大厂面试重难点/Java并发编程核心 19644楼
Python 全系列/第十阶段:Flask百战电商后台项目/Flask百战电商后台项目 19645楼
Python 全系列/第四阶段:函数式编程和核心特性/生成器和装饰器 19647楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 19648楼

import java.sql.Connection;
import java.sql.PreparedStatement;

public class PreparedStatementDemo {
    //向Departments表中插入数据
    public void insertDepartment(String departmentName,int locationId){
        Connection conn=null;
        PreparedStatement ps=null;
        try{
            conn=jdbcUtill.getConnection();
            ps=conn.prepareStatement("insert into departments values (default ,?,?)");
            ps.setString(1,departmentName);
            ps.setInt(2,locationId);
            boolean bo=ps.execute();
            System.out.println(bo);

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            jdbcUtill.closeAll(ps,conn,null);
        }
    }

    public static void main(String[] args) {
        PreparedStatementDemo pr=new PreparedStatementDemo();
        pr.insertDepartment("下调部",4);
    }

}
import java.sql.*;
import java.util.ResourceBundle;

public class jdbcUtill {
    /**
     * 工具类
     */

    private static String driver;
    private static String jdbcUrl;
    private static String username;
    private static String userpassword;
    static{
        //读取Properties文件
        ResourceBundle bundle=ResourceBundle.getBundle("jdbc");
        driver=bundle.getString("driver");
        jdbcUrl=bundle.getString("jdbcUrl");
        username=bundle.getString("username");
        userpassword=bundle.getString("userpassword");
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //获取Connection对象
    public static Connection getConnection(){
        Connection conn=null;
        try{
            conn= DriverManager.getConnection(jdbcUrl,username,userpassword);
        }catch(Exception e){
            e.printStackTrace();
        }
        return conn;
    }
    //关闭Connection
    public static void closeConnection(Connection coon){
        if(coon!=null){
            try {
                coon.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
    //关闭Statement
    public static  void closeStatement(Statement state){
        if(state!=null){
            try {
                state.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
    //关闭ResultSet连接
    public static void clossResultset(ResultSet rs){
        try{
            if(rs!=null){
                rs.close();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    //关闭资源
    public static void closeAll(Statement state,Connection coon,ResultSet rs){
        closeConnection(coon);
        closeStatement(state);
        clossResultset(rs);
    }

}

image.png老师,请问一下我这个为什么报错啊

JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 19650楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637