Mysql经典例题练习与总结

news2025/3/16 13:06:08

一、创建数据表并插入数据

-- 1、学生表
-- Student(s_id,s_name,s_birth,s_sex) :学生编号、姓名、年月、性别
CREATE TABLE
IF NOT EXISTS `Student` (
	`s_id` VARCHAR (20),
	`s_name` VARCHAR (20) NOT NULL DEFAULT '',
	`s_birth` VARCHAR (20) NOT NULL DEFAULT '',
	`s_sex` VARCHAR (10) NOT NULL DEFAULT '',
	PRIMARY KEY (`s_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
-- 插入数据
INSERT INTO Student VALUES ('01', '赵雷', '1990-01-01', '男');
INSERT INTO Student VALUES ('02', '钱电', '1990-12-21', '男');
INSERT INTO Student VALUES ('03', '孙风', '1990-05-20', '男');
INSERT INTO Student VALUES ('04', '李云', '1990-08-06', '男');
INSERT INTO Student VALUES ('05', '周梅', '1991-12-01', '女');
INSERT INTO Student VALUES ('06', '吴兰', '1992-03-01', '女');
INSERT INTO Student VALUES ('07', '郑竹', '1989-07-01', '女');
INSERT INTO Student VALUES ('08', '王菊', '1990-01-20', '女');
-- 2、课程表
-- Course(c_id,c_name,t_id) :课程编号、 课程名称、 教师编号
CREATE TABLE
IF NOT EXISTS `Course` (
	`c_id` VARCHAR (20),
	`c_name` VARCHAR (20) NOT NULL DEFAULT '',
	`t_id` VARCHAR (20) NOT NULL,
	PRIMARY KEY (`c_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
-- 插入数据
INSERT INTO Course VALUES ('01', '语文', '02');
INSERT INTO Course VALUES ('02', '数学', '01');
INSERT INTO Course VALUES ('03', '英语', '03');
-- 3、教师表
-- Teacher(t_id,t_name) :教师编号、教师姓名
CREATE TABLE
IF NOT EXISTS `Teacher` (
	`t_id` VARCHAR (20),
	`t_name` VARCHAR (20) NOT NULL DEFAULT '',
	PRIMARY KEY (`t_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
-- 插入数据
INSERT INTO Teacher VALUES ('01', '张三');
INSERT INTO Teacher VALUES ('02', '李四');
INSERT INTO Teacher VALUES ('03', '王五');
-- 4、成绩表
-- Score(s_id,c_id,s_score) :学生编号、课程编号、分数
CREATE TABLE
IF NOT EXISTS `Score` (
	`s_id` VARCHAR (20),
	`c_id` VARCHAR (20),
	`s_score` INT (3),
	PRIMARY KEY (`s_id`, `c_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
-- 插入数据
INSERT INTO Score VALUES ('01', '01', 80);
INSERT INTO Score VALUES ('01', '02', 90);
INSERT INTO Score VALUES ('01', '03', 99);
INSERT INTO Score VALUES ('02', '01', 70);
INSERT INTO Score VALUES ('02', '02', 60);
INSERT INTO Score VALUES ('02', '03', 80);
INSERT INTO Score VALUES ('03', '01', 80);
INSERT INTO Score VALUES ('03', '02', 80);
INSERT INTO Score VALUES ('03', '03', 80);
INSERT INTO Score VALUES ('04', '01', 50);
INSERT INTO Score VALUES ('04', '02', 30);
INSERT INTO Score VALUES ('04', '03', 20);
INSERT INTO Score VALUES ('05', '01', 76);
INSERT INTO Score VALUES ('05', '02', 87);
INSERT INTO Score VALUES ('06', '01', 31);
INSERT INTO Score VALUES ('06', '03', 34);
INSERT INTO Score VALUES ('07', '02', 89);
INSERT INTO Score VALUES ('07', '03', 98);

##

二、开始解题

2.1 题目1:查询"01"课程比"02"课程成绩高的学生的信息、课程分数

思路: 将01课程成绩和02课程成绩要对比,所以必须要2个成绩表对比,
解法1:三表联合 筛选
解法2:根据学号查询两表对比后符合条件的学生

select * FROM student a,score b,score c 
	WHERE a.s_id = b.s_id
		and a.s_id = c.s_id
		and b.c_id = '01'
		and c.c_id = '02'
		and b.s_score > c.s_score

2.2 题目2:查询平均成绩大于等于60分且总分大于200分的同学且必须考3门的学生编号和学生姓名和平均成绩

思路:
1.必须考三门 成绩表count(s_score) = 3
2.平均成绩大于等于60 avg(s_score) >= 60
注意,这里因为平均成绩可能是循环小数,所以用到保留函数
round(x,y) X是所要修改的值,y表示修改后的小数位数

3.总分大于200 sum(s_score) > 200
三个都是和成绩有关,而且学生编号是主体,显然按学生分组
group by s_id

select 
	a.s_id,
	a.s_name,
	ROUND(AVG(b.s_score),2) avg_score,
	ROUND(SUM(b.s_score),2) sum_score
from 
	student a
JOIN score b  on a.s_id = b.s_id
GROUP BY
	a.s_id
HAVING
	 avg_score >= 60
and sum_score > 200
and count(b.s_score) = 3;

在这里插入图片描述

2.3 题目3:查询平均成绩小于60分的同学的学生编号、学生姓名、平均成绩(包括有成绩的和无成绩)

思路:
1.平均成绩小于60 avg(s_score) < 60
2.包括无成绩 ,ifnull 如果是NULL 则为0 而且无成绩,是每个学生都要有成绩,所以需要学生表左连接右表 left join on

select 
	a.s_id,
	a.s_name,
	ROUND(AVG(IFNULL(b.s_score,0)),2) avg_score
from student a
left join score b on a.s_id = b.s_id
group by a.s_id
having 
	avg_score < 60 

在这里插入图片描述

题目4:查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩

思路:
1.查询学生姓名 student
2.选课总数 count(score.c_id)
3.所有课程总成绩 sum(score.)

	select 
	a.s_id 学生编号,
	a.s_name 学生姓名,
	COUNT(b.c_id) 选课总数,
	SUM(IFNULL(b.s_score,0)) 总成绩
	from student a
	left join score b on a.s_id = b.s_id
	GROUP BY a.s_id
	ORDER BY 总成绩 desc	

在这里插入图片描述

题目5:查询“李”姓老师的数量

思路:like ''李% ’
_代表一个占位符 %代表任意个占位符

select * 
from teacher
WHERE teacher.t_name LIKE "李%"

题目6:查询学过张三老师授课的同学信息

思路:
解法1.多表联合查询张三老师授课的学生
解法2. 张三在教师表中,从课程表中找出张三课id,然后和成绩表连接,最后取出学生信息

select a.*
from student a
join score b
on a.s_id = b.s_id
WHERE b.c_id in (
		select c.c_id from course c where c.t_id =(
			SELECT teacher.t_id from teacher WHERE t_name ='张三'))
select a.*
from 
	student a
	join score b on a.s_id = b.s_id
	join course c on b.c_id = c.c_id
	join teacher d on c.t_id = d.t_id
	WHERE d.t_name = '张三';

在这里插入图片描述

题目7:找出没有学过张三老师课程的学生

思路 先将学过张三老师课程的学生找出来,再not in

SELECT t.*
from student t
WHERE t.s_id not in(
	select a.s_id
	from student a
	join score b
	on a.s_id = b.s_id
	WHERE b.c_id in (
			select c.c_id from course c where c.t_id =(
				SELECT teacher.t_id from teacher WHERE t_name ='张三'))
				)

在这里插入图片描述

题目8:查询学过编号为01,并且学过编号为02课程的学生信息

思路:
方法1 : 成绩表自连接, 左表学01课程,右表学02课程,然后学号相等,就是两个都学过的学生 ,然后student查询
方法2 学过02课程的学生 学号 in 学过01的学生学号 ,然后student 查询

select c.*
from score a
join score b on a.s_id = b.s_id and a.c_id = '01' and b.c_id = '02' 
join student c on a.s_id = c.s_id;

在这里插入图片描述

题目9:查询学过01课程,但是没有学过02课程的学生信息

思路: 学过01课程的学生 not in 学过02课程的学生 ,然后student查询

select a.*
from student a
join score b on a.s_id = b.s_id and b.c_id = '01'
WHERE a.s_id not in (select c.s_id from score c WHERE c.c_id = '02');

在这里插入图片描述

题目10:查询没有学完全部课程的同学的信息(本篇内容不考虑重修)

思路: 成绩表中,按学号分组,根据每个学生学习过的课程数量与课程总数对比

select a.*,count(b.c_id) cnt 
from student a 
join score b on a.s_id = b.s_id
GROUP BY a.s_id
having cnt <(select count(c_id) from course)

在这里插入图片描述

题目11:查询至少有一门课与学号为01的同学所学相同的同学的信息

思路:
同学学习过的课程只需要有一个在学号01学生学过的课程中即可
c_id in( 01学过的课程)

select a.* 
from student a
join score b on a.s_id = b.s_id and a.s_id != '01'
WHERE b.c_id in (select c.c_id from score c where c.c_id = '01')

在这里插入图片描述

题目12:查询和01同学学习的课程完全相同的同学的信息

思路:
方法1:首先 个数要相同 其次 同学没学过的课程01没学过
方法2:使用group_concat将列连接,这样就可以直接进行相等了

select a.*,GROUP_CONCAT(b.c_id) course_t
from student a
join score b on b.s_id = a.s_id and a.s_id != '01'
GROUP BY a.s_id
HAVING course_t = (select GROUP_CONCAT(c.c_id) from score c WHERE c.s_id = '01');

在这里插入图片描述

题目13:查询没有修过张三老师讲授的任何一门课程的学生姓名

思路: 这个题的话,找出张三老师教授的课程,然后找出学过的学生,not in 学号

select s.* 
from student s 
WHERE s.s_id not in (
	select a.s_id -- 1 2 3 4 5 7 
		from score a 
		join course b on a.c_id = b.c_id
		join teacher c on c.t_id = b.t_id and c.t_name = '张三')
ORDER BY s_id

在这里插入图片描述

题目14:检索01课程分数小于60,按分数降序排列的学生信息

select a.* ,b.s_score
from 
	student a  
join 
	score b on a.s_id = b.s_id 
				 and b.s_score < 60 
				 and b.c_id = '01'
order by b.s_score desc ;

题目15:按平均成绩从高到低(降序)显示所有学生的所有课程的成绩以及平均成绩

思路:
注意这里要显示所有课程的成绩,以及平均成绩
方法1: 每个课程的成绩都得查询,并且一个课程一个表,就需要原成绩表 3个单列成绩表 4个表,这样太复杂了
方法2: case when
在这里插入图片描述

select 
		a.s_id
		,max(case when a.c_id = '01' then a.s_score else 0 end ) 语文
		,max(case when a.c_id = '02' then a.s_score else 0 end ) 数学
		,max(case when a.c_id = '03' then a.s_score else 0 end ) 英语
		,ROUND(AVG(a.s_score)) avgr
from score a
GROUP BY a.s_id
order BY avgr desc 

题目16:查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率(及格:>=60),中等率(中等为:70-80),优良率(优良为:80-90),优秀率(优秀为:>=90)

思路:
根据c_id 分组 然后max(s_score) min(s_score) avg(s_score) case
注意 因为执行顺序 GROUP BY 先于select 所以 select 的每行的数据都是对应group by的,所以这时候对应的每个课程的全部分数

 select 
		a.c_id
		,max(a.s_score)
		,min(a.s_score)
		,round(sum(case when a.s_score >= 60 then 1 else 0 end)/sum(case 		when a.s_score  then 1 else 0 end),2) 及格率
		,round(sum(case when a.s_score >=70 and a.s_score <=80  then 1 else 	0 end)/sum(case 		when a.s_score  then 1 else 0 end),2) 中等率
		,round(sum(case when a.s_score >=80 and a.s_score <=90  then 1 else 	0 end)/sum(case 		when a.s_score  then 1 else 0 end),2) 优良率
		,round(sum(case when a.s_score >=90 then 1 else 	0 end)/sum(case 		when a.s_score  then 1 else 0 end),2) 优良率
from score a 
GROUP BY a.c_id

题目17:按照各科成绩进行排序,并且显示排名—比较综合,多看!

思路: 按照各科成绩成绩进行排名, 这个题的话,需要进行union拼接

set @rank = 0;
select 
		a.c_id
		,a.s_score
		,(
			select COUNT(DISTINCT t.s_score) 
			from score t
			WHERE t.s_score >= a.s_score and a.c_id = t.c_id) 语文排名
from score a 
order by a.c_id,a.s_score  desc;

在这里插入图片描述

题目18:查询学生的总成绩,并进行排名—比较综合,多看!

思路: 先把排名查出来看看,因为要考虑并列情况
按课程号和成绩进行分组,这样就可以按课程和成绩进行组合排名

select 
		a.c_id
		,a.s_score
		,(
			select COUNT(DISTINCT t.s_score) 
			from score t
			WHERE t.s_score >= a.s_score and a.c_id = t.c_id) 单科排名
from score a 
order by a.c_id,a.s_score  desc;

在这里插入图片描述

题目19:查询学生的总成绩,并进行排名—比较综合,多看!
– 整2个总分表 总分表是一个学生对好几门课的成绩,所以按成绩分组了
– 然后总分表进行比较查出该学生的排名

select t1.s_id,t1.sc1_sum,count(*) AS no 
from 
	(select sc1.s_id,SUM(sc1.s_score) sc1_sum
	from score sc1 
	GROUP BY sc1.s_id) t1 
	join 
	(select sc2.s_id,SUM(sc2.s_score) sc2_sum
	from score sc2 
	GROUP BY sc2.s_id) t2 on t1.sc1_sum <= t2.sc2_sum
GROUP BY t1.s_id
order by no;

在这里插入图片描述

题目20:查询所有课程的成绩第2名到第3名的学生信息及该课程成绩

思路: 先按成绩进行排名, 然后按照limit查询出需要的学生信息

select a1.*,t1.s_score,@cid := '01' c_id
from student a1
join (
	select c1.s_id,c1.s_score 
	from score c1 
	WHERE c1.c_id = '01' 
	ORDER BY c1.s_score
	limit 1,2
	) t1 on a1.s_id = t1.s_id

UNION
select a2.*,t2.s_score,@cid := '02' c_id
from student a2
join (
	select c2.s_id,c2.s_score 
	from score c2 
	WHERE c2.c_id = '02' 
	ORDER BY c2.s_score
	limit 1,2
	) t2 on a2.s_id = t2.s_id
	
UNION
select a3.*,t3.s_score,@cid := '03' c_id
from student a3
join (
	select c3.s_id,c3.s_score 
	from score c3 
	WHERE c3.c_id = '03' 
	ORDER BY c3.s_score
	limit 1,2
	) t3 on a3.s_id = t3.s_id;

在这里插入图片描述

题目21:统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[0-60]及所占百分比

思路: 按课程编号进行分组,然后使用case when 语句分析出每科的相应分段人数
解法只写了一个段的类型占比

select 
		b.c_id
		,b.c_name
		,ROUND(SUM(case when a.s_score >= 85 and  a.s_score <= 100 then 1 else 0 end)/count(*),2)  '100-80'
		,ROUND(SUM(case when a.s_score <= 85 and  a.s_score >=70 then 1 else 0 end)/count(*),2)  '85-70'
		,ROUND(SUM(case when a.s_score <= 70 and  a.s_score >=60 then 1 else 0 end)/count(*),2)  '70-60'
		,ROUND(SUM(case when a.s_score <= 60 and  a.s_score >=0 then 1 else 0 end)/count(*),2)  '0-60'
		,count(*) 
from score a
join course b on a.c_id = b.c_id
GROUP BY a.c_id;

在这里插入图片描述

题目22:查询学生的平均成绩及名次—比较综合,多看,定义变量,实现rank函数

-- 分析  先查询平均成绩   
select
 a.s_id  -- 学号
 ,@i:=@i+1 as '不保留空缺排名'   -- 直接i的自加,顺序一直变大,声明变量需加@ 由于要放入列中需要 :=
 ,@k:=(case when @i=1 or @avg_score=a.avg_s  then @k else @k+1 end) as '保留空缺排名' 
 -- 因为第一次必定是1所以和i一致为1   后面则按分数是否和上一个相同排名
 ,@avg_score:=avg_s as '平均分'  -- 表a中的值
from (select 
       s_id
       ,round(avg(s_score), 2) as avg_s
      from Score 
      group by s_id
      order by 2 desc)a    -- 表a:平均成绩的排序和学号
      ,(select @avg_score:=0, @i:=0, @k:=1) b -- 表b:进行变量初始化,固定写法。

--  order by时,把要定义的变量定义在放在后面 

在这里插入图片描述
本题选自https://blog.csdn.net/qq_40216188/article/details/118670474

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

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

相关文章

使用一键安装工具快速搭建 ESP-IDF 开发环境 (Windows)

我们收到用户对 ESP-IDF SDK 软件开发环境感到搭建难、门槛高的反馈。为解决用户在此方面的问题。为此&#xff0c;我们推出本期教程介绍在 Windows 操作系统下使用一键安装工具快速搭建 ESP-IDF 开发环境。 您可以观看下面的教程视频&#xff0c;也可以阅读接下来本篇的图文教…

动态规划dp —— 25.单词拆分

1.状态表示 是什么&#xff1f;dp表中里的值所表示的含义就是状态表示 dp[i]表示&#xff1a;[0,i]区间内的字符串&#xff0c;能否被字典中的单词拼接而成&#xff08;存ture或false&#xff09; 2.状态转移方程 dp[i] 等于什么 根据最后一个位置&#xff0c;来划分问题&a…

easyPOI导出多Sheet

easyPOI导出多Sheet 声明&#xff0c;本文基于JAVA操作Excel&#xff08;POI、easyPOI、easyExcel_我认不到你的博客-CSDN博客讲解&#xff0c;需要基础的可以看这篇&#xff0c;特别是Excel注解 本篇最后有工具类和自定义的注解类&#xff0c;只需要傻瓜式复制粘贴应该就可以用…

与 NGINX 团队直接交流 | 微服务之月火热报名中

原文作者&#xff1a;NGINX 原文链接&#xff1a;与 NGINX 团队直接交流 | 微服务之月火热报名中 转载来源&#xff1a;NGINX 官方网站 NGINX 唯一中文官方社区 &#xff0c;尽在 nginx.org.cn 又是一个热情似火的六月&#xff0c;一年一度的 Microservices June 微服务之月再…

6.12 共享内存(内存映射的使用、注意事项、进程间通信、systemV共享内存)

目录 system V IPC 共享内存 共享内存使用步骤 system V IPC -key system V IPC -ftok system V IPC -ftok-示例 共享内存创建-shmget 共享内存创建-shmget-示例1 共享内存创建-shmget-示例2 共享内存映射-shmat 共享内存读写 - 示例 共享内存撤销映射 - shmdt 共享…

etcd基本使用

目录 CRUD1、基本的put/get/del2、获取当前所有的key3、获取/删除带有前缀的键 lease使用1、创建lease&#xff0c;续租lease&#xff0c;撤销lease2、将lease attach到key上 watch使用watch、watch_oncereplacedeletewatch_prefix、watch_prefix_oncecancel_watchadd_watch_ca…

抖音整治短剧类小程序内容

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 短剧CPS项目这两年不是挺火的吗&#xff0c;很多草根创业者都在做短剧CPS当副业。 前两天&#xff0c;抖音开放平台团队发布公告&#xff1a; 近期&#xff0c;在微短剧类小程序内容合规排查中&am…

【LeetCode】HOT 100(11)

题单介绍&#xff1a; 精选 100 道力扣&#xff08;LeetCode&#xff09;上最热门的题目&#xff0c;适合初识算法与数据结构的新手和想要在短时间内高效提升的人&#xff0c;熟练掌握这 100 道题&#xff0c;你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

工作多年的工作焦虑症-广泛性焦虑症

我相信工作多年的人都会有自己的工作焦虑症的情况&#xff0c;而我们普通人最多的最容易的也就是广泛性焦虑症&#xff0c;广泛性焦虑障碍&#xff08;GAD&#xff09;是一种常见的慢性焦虑障碍&#xff0c;患者长时间处于一种担心、紧张、无法放松的状态。它会让一种广泛的担心…

采购协同:企业数字化转型的关键环节

企业数字化转型已成为当今市场的主流趋势&#xff0c;而采购协同作为企业数字化转型的关键环节&#xff0c;对于企业的成本控制、供应链管理等方面都有着至关重要的影响。本文将围绕采购协同的重要性、数字化转型的方法和优势、以及实现采购协同的关键环节展开讨论。 一、采购协…

Java并发容器 并发队列

并发容器概览 ConcurrentHashMap : 线程安全的HashMap CopyOnWriteArrayList: 线程安全的List BlockingQueue:这是一个接口&#xff0c;表示阻塞队列&#xff0c;非常适合用于作为数据共享的通道 ConcurrentLinkedQueue : 高效的非阻塞并发队列&#xff0c;使用链表实现。可…

目标检测数据集---道路破损缺陷数据集

✨✨✨✨✨✨目标检测数据集✨✨✨✨✨✨ 本专栏提供各种场景的数据集,主要聚焦:工业缺陷检测数据集、小目标数据集、遥感数据集、红外小目标数据集,该专栏的数据集会在多个专栏进行验证,在多个数据集进行验证mAP涨点明显,尤其是小目标、遮挡物精度提升明显的数据集会在该…

Java list安全删除元素详解

背景 前一段时间被问到了关于 List 集合的安全删除元素问题。一时间没反应过来这问题问的是什么&#xff0c;安全体现在什么地方&#xff0c;线程安全&#xff1f;线程安全可以保证元素粒度的数据唯一吗&#xff1f;删除是指什么&#xff0c;list.remove()&#xff1f; 带着这…

5外包功能测试做完,人废了一半····

先说一下自己的情况。大专生&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近5年的点点点&#xff0c;今年年上旬&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01;而我已经在一个企业干了五年的功能测试…

剑指offer35 复杂链表的复制

复杂链表的复制 文章目录 复杂链表的复制方法一 回溯哈希表第二种解释 方法二&#xff1a;拼接拆分算法流程 参考文献 本题要求我们对一个复杂链表进行复制。在复杂链表中&#xff0c;每个节点除了有一个next指针指向下一个节点&#xff0c;还有一个random指针指向链表中的任意…

SpringBoot+Vue 车辆充电桩系统

文章目录 1、效果演示效果图技术栈 2、 前言介绍&#xff08;完整源码请私聊&#xff09;3、主要技术3.4.1 数据库概念结构设计3.4.2 数据库具体设计 4 系统功能的具体实现4.1 前台功能模块4.1.1 首页功能4.1.2 用户后台管理 4.2 后台功能模块4.2.1 管理员功能4.2.2 维修员功能…

后端(三):后端实战(表白墙的设计)

上一章结束了 Servlet 的学习&#xff0c;ok&#xff0c;现在我们已经学会了 1 1 了&#xff0c;现在开始我们要学会 百以内的加减乘除法。 本章就做一个最简单的 小小项目&#xff1a;表白墙。 在开始表白墙项目开始之间&#xff0c;我们先提前说好&#xff0c;这里主要跟关…

海思3559万能平台搭建:SPI输出h264码流

前言 面对各种各样的客户需求&#xff0c;spi接口也是一种传码流的形式&#xff0c;spi同步422可以保证抗干扰能力强的同时传输距离也很长&#xff0c;本文会介绍海思平台spi作为主机的发送功能以及发送码流的处理方式 1. 管脚复用&#xff1a; 首先需要配置的肯定是管脚复用&…

java容器排序

Java的容器 在Java中&#xff0c;我们想要保存对象可以使用很多种手段。最简单的就是数组。但是数组具有固定的尺寸&#xff0c;而通常来说&#xff0c;程序总是在运行时根据条件来创建对象&#xff0c;我们无法预知将要创建对象的个数以及类型&#xff0c;所以Java推出了容器…

动态规划-最长的回文序列

这里写自定义目录标题 1 描述2 样例2.1 样例12.2 样例2 3 解题思路以及实现方法3.1 解题思路3.1.1 确定状态3.1.2 转移方程3.1.3 初始条件和边界情况3.1.4 计算顺序 3.2 题解3.2.1 C实现3.2.2 java实现 该题是lintcode上 667 最长的回文序列&#xff0c;该题的解题思路亦是参…