【练习】Day07

news2024/12/27 16:28:13

努力经营当下,直至未来明朗!

文章目录

  • 一、选择
  • 二、编程
    • 1. 不同路径
    • 2. 三角形最小路径和 [重点理解!!]
  • 答案
    • 1. 选择
    • 2. 编程


普通小孩也要热爱生活!

一、选择

  1. 以下关于 Servlet 生命周期说法错误的是 ( )

A: Servlet 容器根据 Servlet 类的位置加载 Servlet 类,成功加载后,由容器创建 Servlet 的实例
B: 对于每一个 Servlet 实例, init() 方法只被调用一次
C: 当 Servlet 容器接收到客户端请求时,调用 Servlet 的 service() 方法以及 destory() 方法处理客户端请求
D: servlet 的实例是由 servlet 容器创建的,所以实例销毁也由容器完成

  1. 以下关于转发和重定向的说法错误的是 ( )

A: 转发通过 request 的getRequestDispatcher().forward() 方法即可实现,它的作用是在多个页面交互过程中实现请求 数据的共享。
B: 重定向可以理解为是浏览器至少提交了两次请求,它是在客户端发挥作用,通过请求新的地址实现页面转向
C: 转发和重定向都可以共享 request 范围内的数据
D: 转发时客户端的 URL 地址不会发生改变,而重定向时客户端浏览器中显示的是新的 URL 地址。

  1. 用HTML标记语言编写一个简单的网页,网页最基本的结构是 ( )

A: <html> <head>…</head> <frame>…</frame> </html>
B: <html> <title>…</title> <body>…</body> </html>
C: <html> <title>…</title> <frame>…</frame> </html>
D: <html> <head>…</head> <body>…</body> </html>


二、编程

1. 不同路径

LeetCode62. 不同路径
一个机器人位于一个 m * n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?
0


2. 三角形最小路径和 [重点理解!!]

LeetCode120. 三角形最小路径和
给定一个三角形 triangle ,找出自顶向下的最小路径和
每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1


答案

1. 选择

  1. ① 客户端的每次请求,都会根据路径查找对应的Servlet实例对象,并调用service方法(service每次收到请求都会调用)。
    ② init和destroy分别是初始化方法及销毁方法,只执行一次
    ③ 补充:servlet实例的创建和销毁都是由容器完成的。
    (参考:Servlet API)

故:选C

  1. ① 转发是一次请求返回,可以共享本次请求的数据。
    ② 重定向是两次请求,不能通过request共享数据,如果要共享数据,可以使用session
    ③ 小结:转发是一次请求返回可共享;重定向是两次请求session可共享数据。

故:选C

  1. html最基础的结构包括html,head和body标签

故:选D


2. 编程

  1. 不同路径

1)初步猜测应该是类似Fib,也就是dp动归问题,需要找出状态方程。

2)思路

① 状态:用 f(i, j) 表示从左上角走到 (i, j) 的路径数量,其中 i 和 j 的范围分别是 [0, m) 和 [0, n)
② 状态方程:只有两种走法可以到达目标格,向下or向右,so: f(i, j)=f(i-1,j) + f(i,j-1)
③ 初始值:注意若i==0 or j==0,i-1 以及 j-1都是不满足要求的。f(0,0)=1,自身走到自身只有一条路
注意点:将所有边界值都设置为1,即:f(i,0)=1 && f(0,j)=1.
⑤ 所以,最后的状态方程f(m,n) = f(m-1,n) + f(m,n-1),并且将边界值都设置为1
⑥ 因为设置的初始值有点多,所以直接使用数组储存。

3)代码

class Solution {
    public int uniquePaths(int m, int n) {
        // 首先创建数组用于存储数据
        int[][] f = new int[m][n];
        // 进行初始化:对边界值
        for (int i = 0; i < m; i++) {
            f[i][0] = 1;
        }
        for (int i = 0; i < n; i++) {
            f[0][i] = 1;
        }
        // 然后遍历:使用状态方程
        for (int i = 1; i < m; i++) {
            for (int j = 1; j < n; j++) {
                // 注意下标 以及符号!
                f[i][j] = f[i-1][j] + f[i][j-1];
            }
        }
        return  f[m-1][n-1];
    }
}

  1. 三角形最小路径和

1)思路

① 首先明确“动归问题
② 动归问题明确状态、状态方程以及初始值
③ 对所给的链表进行详细分析:[[2],[3,4],[6,5,7],[4,1,8,3]],在对齐后可以得到等腰直角三角形:
[2]
[3,4]
[6,5,7]
[4,1,8,3]
④ 状态:f(i,j)表示走到第i行第j列(都是从0开始的)位置的最小路径和,而该位置又只能有两个达到位置:(i-1,j) or (i-1,j-1)
⑤ 所以状态方程:
f(i,j) = min(f(i-1,j), f(i-1,j-1)) + c[i,j]
(其中,c[i,j] 表示(i,j)位置对应的元素值)
⑥ 注意:第 i 行有(i+1)个元素(从0开始取),所以 j 的取值范围[0,i];并且由状态方程可知:当j==0时f(i-1,j-1))没意义,即:f(i,0) = f(i-1,0)+ c[i,0] ,也就是说:当我们在第i行最左侧的时候只能从第i-1行最左侧移动过来;
当i==j时f(i-1,j)没有意义,即:f(i,i) = f(i-1,i-1) + c[i,i],也就是说:当我们在第i行的最右侧时只能从第i-1行最右侧移动过来。
(没有意义是因为根本不存在!)
⑦ 所以:状态转移方程: f[n-1][0] 到 f[n−1][n−1] 中的最小值,其中 n 是三角形的行数。
⑧ 初始值:f[0][0] = c[0][0]
⑨ 注意分为了三种情况:最左侧、最右侧以及中间开始。
简言之,先找每个位置的最小路径和,然后找最后一行的各位置的最小路径和。

2)代码

class Solution {
    public int minimumTotal(List<List<Integer>> triangle) {
        int min = Integer.MAX_VALUE;  // 定义最小值,方便后续作比较
        int row = triangle.size(); // 行数

        // 定义二维数组,用于存储每个位置的最小路径和
        int[][] f = new int[row][row];
        // 初始化第一行:
        f[0][0] = triangle.get(0).get(0); // 0行0列

        // 开始进行遍历
        for (int i = 1; i < row; i++) { // 注意从第1行开始,第0行已经初始化过了
            // 此时可以得到每一行集合
            List<Integer> tmp = triangle.get(i);
            // 遍历每一行的每一列
            for (int j = 0; j <= i; j++) { // 注意列数和行数的对等性
                // 分三种情况判断移动的起点
                if(j == 0) {
                    //  从最左边开始移动
                    // 注意获取该位置的元素值的方法!!:tmp.get(j)
                    // 是从原链表中获取到该位置的常量值的
                    f[i][j] = f[i-1][j] + tmp.get(j);
                } else if(i == j) {
                    // 从最右边开始移动
                    f[i][j] = f[i-1][j-1] + tmp.get(j);
                } else {
                    // 从其他中间任意位置,那就取min
                    f[i][j] = Math.min(f[i-1][j],f[i-1][j-1]) + tmp.get(j);
                }
            }
        }
        // 遍历结束后已经得到所有位置的最小路径和,此时
        // 遍历判断最后一行的min即可
        for (int i = 0; i < row; i++) {
            min = Math.min(min,f[row-1][i]);
        }

        return min;
    }
}

yy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解构模块化区块链

干货&#xff1a;解构模块化区块链 在可扩展性方面&#xff0c;模块化区块链是区块链设计的最新范式。 模块化的概念起源于Layer1区块链Celestia&#xff0c;现在这个概念也逐渐被更多的人所关注&#xff0c;还有人甚至提出”模块化区块链将定义Web3创新的下一个十年“的口号…

java.sql.SQLException: ORA-28001: the password has expired

1、找到SQL Plus 运行 2、登录 请输入户名: sys as sysdba 输入口令&#xff1a;&#xff08;sys用户的密码&#xff09;3、以dba角色登入 SQL >connect as sysdba; 请输入户名: sys as sysdba 输入口令&#xff1a;&#xff08;sys用户的密码&#xff09;4、修改密码 SQ…

Flink:FlinkSql解析嵌套Json

日常开发中都是用的简便json格式&#xff0c;但是偶尔也会遇到嵌套json的时候&#xff0c;因此在用flinksql的时候就有点麻烦&#xff0c;下面用简单例子简单定义处理下 1&#xff0c;数据是网上摘抄&#xff0c;但包含里常用的大部分格式 { "afterColumns": {…

SpringBoot集成Elasticsearch7.4 实战(一)

在网上已经有好多关于Elasticsearch的介绍&#xff0c;就不在翻来覆去讲一些基本概念&#xff0c;大家感兴趣的可以自己去找一些资料巩固下。这次只为了顾及众多首次接触Elasticsearch&#xff0c;案例都讲的很浅显&#xff0c;还有就是受个人能力所限&#xff0c;各位读者发现…

大数据-hadoop-hdfs

Hadoop分布式文件系统(HDFS)是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统&#xff08;Distributed File System&#xff09;。它和现有的分布式文件系统有很多共同点。但同时&#xff0c;它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度…

数据结构(3)线段树基础

活动 - AcWing 参考《算法竞赛进阶指南》-lyd 一、概述 1.简述、所需空间 线段树是一种基于分治思想的二叉树结构&#xff0c;用于区间上的信息统计。与树状数组相比&#xff0c;线段树是一种更通用的数据结构。 线段树每个节点代表一个区间。线段树具有唯一根节点&#x…

关于KDDockWidget源码修改和自定义

前言 前面的文章介绍过KDDockWidget的基本使用及示例&#xff0c;文章在这里&#xff1a; KDDockWidgets源码编译及安装 qml dockwidget窗口停靠 QML KDDockWidget 实现 tabwidget效果&#xff08; 窗口可独立浮动和缩放&#xff09; 今天主要记录一些在KDDockWidget源码中的…

来自元宇宙的声音:Chord Hero

这一集&#xff0c;我们邀请了 Chord Hero 的联合创始人兼行政总裁 Anthony Chau 来谈谈促使他加入 The Sandbox 元宇宙的原因以及即将在即将到来的游戏赛季推出的第一个项目。 请告诉我们更多关于 Chord Hero 的信息吧。 Chord Hero 通过一系列实体和数字产品让学习音乐变得有…

视图(view)

1、视图&#xff1a;&#xff08;了解内容&#xff09; 就是站在不同的角度去看待同一份数据。 视图是MySQL服务器中的一个对象&#xff0c;用于存储查询语句&#xff0c;目的的提高查询语句的使用效率&#xff0c;避免在多处地方重复性开发相同的查询语句。 - 将查询语句交给一…

Transformer学习笔记1

模型分类&#xff1a;GPT类型&#xff1a; auto-regressive&#xff08;decoder模型&#xff0c;过去时刻的输出也是现在的输入&#xff0c;例如要得到y8还需要知道y1到y7&#xff0c;但不能使用y9&#xff0c;例如用于文本生成任务&#xff09;GPTGPT2CTRLTransformer XLBERT类…

Docker 容器监控

目录 cAdvisor 安装cAdvisor 使用Prometheus监控cAdvisor cAdvisor暴露的Prometheus指标 容器指标 1. 文档&#xff1a; 2. 指标 硬件指标 1. 文档&#xff1a; 2. 指标&#xff1a; Node Exporter 安装Node Exporter 1. 启动容器&#xff0c;默认端口为9100 2. …

2023免费电脑c盘磁盘数据恢复软件EasyRecovery

无论是台式机还是笔记本电脑&#xff0c;我们都习惯将其划分成多个大小不一的磁盘&#xff0c;有的是用于安装系统&#xff0c;有的则是用于存储文件。今天小编就和大家解答一下关于电脑磁盘的问题&#xff0c;电脑只剩c盘是硬盘坏了吗&#xff0c;电脑突然就剩c盘怎么恢复。想…

【BP靶场portswigger-客户端16】测试WebSockets安全漏洞-3个实验(全)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

CMMI落地4大工具 助力CMMI3-5级高效落地

CMMI落地4大工具近日正式上线&#xff0c;全面支持CMMI3-5级&#xff0c;助力CMMI高效落地。CoCode旗下的Co-ProjectV3.0智能项目管理平台全新发布&#xff1a;CMMI成熟度自测工具、量化管理工具&#xff08;组织级过程改进工具和量化项目管理工具&#xff09;、组织级过程资产…

分享视频剪辑必备的三个素材软件(配音/文案/图片)

hello&#xff0c;大家好&#xff0c;相信现在很多小伙伴都需要制作视频&#xff0c;无论是从事短视频行业&#xff0c;还是单纯想分享生活视频的都需要对视频进行简单的处理吧&#xff1f;有时候会需要介绍视频内容或是给视频增加点配音&#xff0c;来让视频不那么单调&#x…

C++11 解决内存泄露问题的智能指针:shared_ptr、unique_ptr、weak_ptr

我们经常听到内存泄漏&#xff0c;但是对这个抽象的概念一直没有什么理解&#xff0c;比如产生内存泄漏又将如何&#xff0c;我平时写程序从来不考虑这个等等。这篇的目的&#xff1a;第一&#xff0c;给大家实验实验内存泄露带来的问题&#xff0c;让大家直观感受内存泄露。第…

[数据结构基础]链式二叉树及其前序、中序和后序遍历

一. 链式二叉树的结构和实现 1.1 链式二叉树的结构 链式二叉树&#xff0c;即使用链来表示一颗二叉树。链式二叉树的存储又可分为二叉链和三叉链&#xff0c;其中二叉链存储节点数据、指向左子节点的指针和指向右子节点的指针&#xff0c;三叉链相对于二叉链多存储指向父亲节…

一种基于肌电信号运动起点、波峰、终点实时自动检测的方法

一种基于肌电信号运动起点、波峰、终点实时自动检测的方法 (⊙o⊙)…,这篇是我写收费文章的第一篇。咱也尝试下知识付费,哈哈。 先看下效果,在给定理想正弦波的情况下,可以准确识别到正弦波的起点、波峰和终点。机器实拍图如下。 因为我的实际环境没有专利里面那么复杂,所…

Android 蓝牙开发——基础开发(三)

蓝牙开发这部分主要以 APP 端调用功能接口为开始&#xff0c;到 Framework 端的调用流程&#xff0c;最后到调用状态机结束&#xff0c;不涉及蓝牙协议栈的开发分析。 一、BluetoothAdapter 1、APP获取适配器 蓝牙权限 <mainifest><uses-permission android:name&…

3.ESP32-S2/S3 USB 挂载SPI-SD,当作U盘使用,无线U盘

使用的 IDF_4.4 C语言开发 1.ESP32-S2/S3 USB烧录 输出日志 2.ESP32-S2/S3 USB 挂载内部Flash&#xff0c;当作U盘使用&#xff0c;无线U盘 3.ESP32-S2/S3 USB 挂载SPI-SD&#xff0c;当作U盘使用&#xff0c;无线U盘 目录1.打开 usb_msc_wireless_disk 工程 Confinguration2.…