当前位置: 首页 > 编程日记 > 正文

MYSQL语句

-- 一、管理数据库
-- 1.1 创建数据库
CREATE DATABASE day15;

SHOW DATABASES;

CREATE TABLE student(
id INT,
NAME VARCHAR(20),
age INT
);

-- 查看表
SHOW TABLES;

-- 二、管理数据
-- 1.1插入数据(insert into)
-- 需求: 往学生表插入数据
INSERT INTO student VALUES(1,'张三',20);
-- 1)插入的字段值顺序一定是按照表的字段顺序
INSERT INTO student VALUES('张三',1,20); -- ERROR 1366 (HY000): Incorrect integer value: 'eric' for column 'id' at row 1
-- 2)字段的数据一定要和值的数量要一致
INSERT INTO student VALUES(2,20); -- ERROR 1136 (21S01): Column count doesn't match value count at row 1
-- 3)插入部分字段
INSERT INTO student(id,NAME) VALUES(2,'李四');


-- 1.2 修改数据(update)
-- 需求: 修改学生表
-- 1)批量操作(不建议经常使用这种)
UPDATE student SET NAME='张三';
-- 2)按条件修改,修改一个字段
-- 需求: 修改id为2的学生姓名
UPDATE student SET NAME='李四' WHERE id=2;
-- 需求: 修改id为1的学生姓名和年龄
-- 3)修改多个字段
UPDATE student SET NAME='王五',age=40 WHERE id=1;

-- 1.3 删除数据(delete from)
-- 1) 全表数据删除
DELETE FROM student;
-- 2)按条件删除数据
DELETE FROM student WHERE id=2;
-- 3)truncate table也可以删除全表数据
TRUNCATE TABLE student;
-- 注意:delete from 和 truncate table 的区别?
-- 1)delete from删除全部,也可以按条件删除,但是truncate table只能全表删除,不能按条件删除
-- 2)delete from删除的数据可以回滚,truncate table删除的数据不能回滚。
-- 3)delete from不可以把自增长约束(auto_increment)重置,truncate table可以把自增长约束(auto_increment)重置

-- truncate table student where id=1; 错误的语法


-- 1.4 查看所有数据(重点中的重点)
SELECT * FROM student;

CREATE TABLE test(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
)

INSERT INTO test(NAME) VALUES('张三');
INSERT INTO test(NAME) VALUES('张三');

SELECT * FROM test;

DELETE FROM test;
TRUNCATE TABLE test;

-- 三、查询数据(select)
-- 3.1 查询所有字段
SELECT * FROM student;

-- 3.2 查询指定的字段
SELECT id,NAME FROM student;

-- 3.3 查询时指定别名
SELECT id AS '编号',NAME AS '姓名' FROM student;
-- AS可以省略
SELECT id '编号',NAME '姓名' FROM student;

-- 3.4 查询时添加常量列
-- 临时使用的列可以通过查询时动态添加进去
-- 需求: 查询学生数据时添加一个"班级"列。值为“java就业班”
SELECT id AS '编号',NAME AS '姓名','java就业班' AS '班级' FROM student;

-- 3.5 查询时合并列
-- 需求: 查询每个学生的总分。
SELECT NAME AS '姓名',(servlet+mysql) AS '总成绩' FROM student;
-- 注意: 合并列的字段必须是数值类型的字段。非数值类型合并没有效果
SELECT NAME AS '姓名',(servlet+NAME) FROM student;


-- 3.6 查询去除重复记录(distinct)
-- 需求: 查询有哪些的地区学生
SELECT DISTINCT address FROM student;
-- 另一种语法
SELECT DISTINCT(address) FROM student;

-- 3.7 条件查询(where)
-- 1)逻辑条件: and(与) or(或)
-- 当出现两个或两个以上的条件,那么这两个条件直接一定会存在逻辑关系。要么是与关系,要么或关系

-- 需求:查询学生的id为1,且姓名为张三的学生 
SELECT * FROM student WHERE id=1 AND NAME='张三'; -- (交集,结果数小于或等于任何一个条件的结果数)

-- 需求:查询学生的id为2,或姓名为张三的学生
SELECT * FROM student WHERE id=2 OR NAME='张三'; -- (并集,结果数一定会大于或等于任何一个条件的结果数)


-- 2)比较条件: > < >= <= = <> (between and)
-- 需求: 查询servlet分数大于80分的学生
SELECT * FROM student WHERE servlet>80;
-- 需求:查询mysql分数小于或等于85分的学生
SELECT * FROM student WHERE mysql<=85;
SELECT * FROM student WHERE mysql<85 OR mysql=85;
-- 需求: 查询servlet分数大于或等于80分,且小于或等于85分的学生
SELECT * FROM student WHERE servlet>=80 AND servlet<=85;
-- 上面sql代替的语法
SELECT * FROM student WHERE servlet BETWEEN 80 AND 85; -- 在..。之间(包前包后)
-- 需求:查询年龄不等于30岁的学生
SELECT * FROM student WHERE age<>30;

-- 3)判空条件: is null , is not null, ='' , <>''
-- null: 表示没有数据 is null is not null
-- 空字符:有数据 =''
-- 需求:查询没有性别数据的学生(数据‘男’或‘女’)
SELECT * FROM student WHERE gender IS NULL OR gender='';

-- 需求: 查询有性别数据的学生
SELECT * FROM student WHERE gender IS NOT NULL AND gender<>'';


-- 4)模糊条件: like
-- 模糊替代符号:
-- %: 替代任意个字符
-- _: 替代一个字符
-- 需求: 查询姓‘李’的学生
SELECT * FROM student WHERE NAME LIKE '李%';
-- 需求: 查询姓名中包含‘四’字的学生
SELECT * FROM student WHERE NAME LIKE '%四%';
-- 需求:查询姓‘李’,全名只有两个字的学生
SELECT * FROM student WHERE NAME LIKE '李_';


-- 3.8 聚合函数查询:用于统计结果
-- max() min() avg() count()
-- 需求: 查询servlet的最高分
-- max() 取最大值
SELECT MAX(servlet) FROM student;
-- 需求: 查询mysql的最低分
-- min(): 取最小值
SELECT MIN(mysql) FROM student;
-- 需求: 查询servlt的平均分
-- avg(): 平均函数
SELECT AVG(servlet) FROM student;
-- 需求:查询当前有几个学生
-- count(): 统计表的记录数量
SELECT COUNT(*) FROM student;
-- count(id): 统计有值的id字段的数量(排除null的数据)
SELECT COUNT(id) FROM student;
-- 使用count统计表的数据,不要使用存在null的字段
SELECT COUNT(gender) FROM student;


-- 3.9 分页查询(limit)
-- limit 起始行数,查询的行数
-- 起始行数从0开始
SELECT * FROM student;
-- 需求:学生共20条数据,每页显示5条,共4页
-- 看第3页(第11到15条)的学生数据sql:select * from student limit 10,5;
-- 看第4页(第16到20条)的学生数据sql: select * from student limit 15,5;

-- 知道: 当前页码,每页显示条数

-- 结论分页查询当前页数据的sql: select * from student limit (当前页码-1)*每页显示条数,每页显示条数;

-- 需求: 查询第1,2条数据
SELECT * FROM student LIMIT 0,2;
-- 需求: 查询第3,4条数据
SELECT * FROM student LIMIT 2,2;
-- 需求:查询第5,6条数据
SELECT * FROM student LIMIT 4,2;

-- 3.10 查询后排序(order by)
-- desc: 降序。数值从大到小,字母z-a
-- asc: 升序。数值从小到大,字母a-z
-- 默认情况下,按照插入的顺序排序
SELECT * FROM student;
-- 需求:按照id的升序排序
SELECT * FROM student ORDER BY id ASC;
-- 需求: 按照servlet成绩降序排序
SELECT * FROM student ORDER BY servlet DESC;

-- 多个排序条件的情况:先按照前面的条件排序,当出现重复记录,再按照后面的条件排序
-- 需求: 按照age升序,按照servlet成绩升序排序
SELECT * FROM student ORDER BY age ASC,servlet ASC;

-- select * from student order by username asc;

-- 3.11 分组查询(group by)
-- 需求: 查询每个地区有多少人
-- 预期结果:
-- 广州天河 3
-- 广州越秀 1
SELECT address,COUNT(*) FROM student;

-- 1)对地区进行分组 2)在分组的基础可以进行统计,统计的是每组的数据
SELECT address,COUNT(*) FROM student GROUP BY address;
-- 需求: 统计男女的人数
-- 注意: where条件必须放在group by分组之前
SELECT gender,COUNT(*) FROM student WHERE gender IS NOT NULL AND gender<>'' GROUP BY gender;

-- 3.12 分组后筛选(having)
-- 需求: 查询哪些地区的人数大于2个的地区
-- 1)查询哪些地区多少人 2)筛选人数大于2的地区
-- 注意: having使用在group by分组之后的,对分组后的条件进行筛选
SELECT address,COUNT(*) FROM student GROUP BY address HAVING COUNT(*)>2 ;

-- 四、字段类型
-- char(20) vs varchar(20)
-- char(20): 固定长度的字符串。不管实际存储的数据的大小,一定占用20个字符空间
-- varchar(20): 可变长度的字符串。占用的空间大小就是实际存储的数据大小。

-- int vs int(4)
-- int: 默认最多11位,长度根据实际存储的数值的长度
-- int(4): 固定的数组长度
CREATE TABLE test(
id1 INT,
id2 INT(4) ZEROFILL -- zerofill: 零填充
)
INSERT INTO test VALUES(1,1);
SELECT * FROM test;

-- date vs datetime vs timestamp
-- date: 日期
-- datetime: 日期+时间
-- timestamp: 时间戳,用于记录当前数据的插入或更新的时间
CREATE TABLE test_date(
date1 DATE,
date2 DATETIME,
date3 TIMESTAMP
)

INSERT INTO test_date(date1,date2) VALUES('2015-06-17 17:35:45','2015-06-17 17:35:45');

SELECT * FROM test_date;

UPDATE test_date SET date2='2015-06-17 17:40:45';


SELECT * FROM student;

ALTER TABLE student CHANGE NAME username VARCHAR(20);


CREATE TABLE student2(
id INT,
NAME VARCHAR(20),
chinese FLOAT,
english FLOAT,
math FLOAT
);

INSERT INTO student2(id,NAME,chinese,english,math) VALUES(1,'张小明',89,78,90);
INSERT INTO student2(id,NAME,chinese,english,math) VALUES(2,'李进',67,53,95);
INSERT INTO student2(id,NAME,chinese,english,math) VALUES(3,'王五',87,78,77);
INSERT INTO student2(id,NAME,chinese,english,math) VALUES(4,'李一',88,98,92);
INSERT INTO student2(id,NAME,chinese,english,math) VALUES(5,'李来财',82,84,67);
INSERT INTO student2(id,NAME,chinese,english,math) VALUES(6,'张进宝',55,85,45);
INSERT INTO student2(id,NAME,chinese,english,math) VALUES(7,'黄蓉',75,65,30);

SELECT * FROM student2;

-- 练习:
-- 查询表中所有学生的信息。
SELECT * FROM student2;

-- 查询表中所有学生的姓名和对应的英语成绩。
SELECT NAME,english FROM student2;

-- 过滤表中英语成绩的重复数据
SELECT DISTINCT english FROM student2;

-- 使用别名表示学生分数。
SELECT NAME AS '姓名',chinese AS '语文',english AS '英语',math AS '数学' FROM student2;

-- 查询姓名为李一的学生成绩
SELECT * FROM student2 WHERE NAME='李一';

-- 查询英语成绩大于等于90分的同学
SELECT * FROM student2 WHERE english>=90;

-- 查询总分大于200分的所有同学
SELECT * FROM student2 WHERE (chinese+english+math)>200;

-- 查询所有姓李的学生英语成绩。
SELECT NAME,english FROM student2 WHERE NAME LIKE '李%';

-- 查询英语>80或者总分>200的同学
SELECT * FROM student2 WHERE english>80 OR (chinese+english+math)>200;

-- 统计每个学生的总分。
SELECT NAME AS '姓名',(chinese+english+math) AS '总分' FROM student2;

-- 在所有学生总分数上加10分特长分。
SELECT NAME AS '姓名',(chinese+english+math+10) AS '总分' FROM student2;


SELECT * FROM student;
-- 添加两个列 servlet mysql
ALTER TABLE student ADD COLUMN servlet INT;
ALTER TABLE student ADD COLUMN mysql INT;

UPDATE student SET servlet=75,mysql=80 WHERE id=1;
UPDATE student SET servlet=86,mysql=90 WHERE id=2;

-- 添加地址字段
ALTER TABLE student ADD COLUMN address VARCHAR(20);

UPDATE student SET address='广州天河' WHERE id=1;
UPDATE student SET address='广州越秀' WHERE id=2;

INSERT INTO student VALUES(3,'王五',30,85,65,'广州天河');
ALTER TABLE student ADD COLUMN gender VARCHAR(2);

转载于:https://www.cnblogs.com/oneapple/p/10694418.html

相关文章:

Intel Optane PMEM 概览

文章目录前言基本架构编程模型PMDK接口架构接口概览pmdk 安装开发文档汇总PMEM性能官方性能实测性能前言 随着以PCM 为存储单元的3D XPoint 非易失存储介质 不断精进的工艺&#xff0c;以及 上层硬件协议栈的飞速发展&#xff0c;为非易失内存这样硬件的出现提供了技术工艺基础…

Java项目:新闻发布系统(java+Springboot+ssm+mysql+maven)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能&#xff1a; 区分为管理员用户和普通用户&#xff0c;管理员用户能删除评论&#xff0c; 调整新闻显示/隐藏&#xff0c;修改新闻&#xff0c;删除普通用户&#xff0c;普通用户能 登陆浏…

Linux下搭建Lotus Domino集群

Linux下搭建Lotus Domino 集群本文内容是Linux平台下Lotus Domino服务器部署案例&#xff08;http://chenguang.blog.51cto.com/350944/1334595&#xff09;的另一个模块&#xff0c;所以大家首先要有以上基础之后然后继续实验。集群是 Lotus Domino Server 提供的最重要特性之…

Centos下卸载openjdk并安装自定义jdk

1、查看是否安装了openjdk java -version 2、查看需要卸载的openjdk信息&#xff0c;其中只需要删除红色框标记的地方 rpm -qa | grep java 3、删除openjdk rpm -e --nodeps 需要删除的java组件 4、创建文件夹java mkdir java 5、到官网下载linux版本的jdk&#xff08;如果不能…

pmdk -- libpmemlog 介绍

文章目录1. libpmemlog 应用背景2. libpmemlog 使用方式2.1 基本接口2.2 接口使用3. Libpmemlog 性能3.1 write sys call 性能3.2 libpmemlog 性能1. libpmemlog 应用背景 本文介绍的是英特尔 傲腾持久化内存 pmdk中 的一个持久化日志的库。 我们正常系统中会将日志 形成一个…

Java项目:家庭财务管理系统(java+Springboot+ssm+mysql+maven)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能&#xff1a; 家庭财务管理系统&#xff0c;具有收入统计&#xff0c;支出统计&#xff0c;汇总报 表&#xff0c;工资录入&#xff0c;其他收入等录入开支信息&#xff0c;echart图标插 …

(原创)c++primer(第五版)--1.3 注释简介

注释可以帮助人类读者理解程序。注释通常用于概述算法&#xff0c;确定变量的用途&#xff0c;或者结束晦涩难懂的代码段。编译器会忽略注释&#xff0c;因此注释对程序的行为或者性能不会有任何影响。 虽然编辑器会忽略注释&#xff0c;但读者并不会。即使系统文档的其他部分已…

BZOJ 1503 郁闷的出纳员(splay)

题目链接&#xff1a;http://www.lydsy.com/JudgeOnline/problem.php?id1503 题意&#xff1a;给出一个数列&#xff08;初始为空&#xff09;&#xff0c;给出一个最小值Min&#xff0c;当数列中的数字小于Min时自动删除。四种操作&#xff1a;&#xff08;1&#xff09;数列…

javascript ES6 新特性之 扩展运算符 三个点 ...

对于 ES6 新特性中的 ... 可以简单的理解为下面一句话就可以了&#xff1a; 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性&#xff0c;拷贝到当前对象之中。 作用类似于 Object.assign() 方法&#xff0c;我们先来看一下 Object.assign() 方法&#xff1a; Obje…

字符串匹配算法 -- BM(Boyer-Moore) 和 KMP(Knuth-Morris-Pratt)详细设计及实现

文章目录1. 算法背景2. BM&#xff08;Boyer-Moore&#xff09;算法2.1 坏字符规则(bad character rule)2.2 好后缀规则(good suffix shift)2.3 复杂度及完整代码3. KMP&#xff08;Knuth Morris Pratt&#xff09;算法3.1 好前缀 和 坏字符规则3.2 高效构建 失效函数3.3 复杂度…

Java项目:中小医院信息管理系统(java+Springboot+ssm+mysql+maven+jsp)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a;实现了挂号收费&#xff0c;门诊管理&#xff0c;划价收 费&#xff0c;药房取药&#xff0c;体检管理&#xff0c;药房管理&#xff0c;系统维护等各个模块功能&a…

DB2load遇到SQL3508N错误

SQL3508N装入或装入查询期间&#xff0c;当存取类型为 "<文件类型>" 的文件或路径时出错。原因码&#xff1a;"<原因码>"。路径&#xff1a;"<路径&#xff0f; 文件>"。 [more]解释: 装入或装入查询处理期间&#xff0c;在尝…

【cocos2d-x 手游研发小技巧(3)Android界面分辨率适配方案】

先感叹一下吧~~android的各种分辨率各种适配虐我千百遍&#xff0c;每次新项目我依旧待它如初恋 每家公司都有自己项目工程适配的方案&#xff0c;这种东西就是没有最好&#xff0c;只有最适合&#xff01;&#xff01;&#xff01; 这次新项目专项针对android&#xff0c;目的…

git submodule 使用场景汇总

文章目录1. 前言2. 基础命令介绍2.1 场景一&#xff1a;已有仓库&#xff0c;添加一个子模块2.2 场景二&#xff1a;已有仓库&#xff0c;添加一个子模块的特定分支2.3 场景三&#xff1a;已有仓库&#xff0c;更新子模块内容2.4 场景四&#xff1a;已有仓库&#xff0c;变更子…

Java项目:在线商城系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a; 前台展示后台管理&#xff0c;包括最基本的用户登录注册&#xff0c;下单&#xff0c; 购物车&#xff0c;购买&#xff0c;结算&#xff0c;订单查询&#xff0c…

自定义参数解析器,减少10%的代码

*** 赋值调用方法* 如果为空,默认调用name()方法* 该方法必须是一个不含参数的方法,否则将会调用失败* @return*/value() : value用于绑定请求参数和方法参数名一致时的对应关系。比如user?statusNo=1。方法的参数写法如下:getUser(@EnumParam(value=“statusNo”) int status) 或者 getUser(@EnumParam() int statusNo)valueMethod() : 赋值时调用枚举中的方法。

微服务全做错了!谷歌提出新方法,成本直接降9倍!

一位DataDog的客户收到6500万美元的云监控账单的消息,也再次让业界无数人惊到了。事实上有些团队在将集中式单体应用拆分为微服务时,首先进行的往往不是建立领域模型,而只是按照业务功能将原来单体应用的一个软件包拆分成多个所谓的“微服务”软件包,而这些“微服务”内的代码高度耦合,逻辑边界不清晰,长期以来,不管大厂还是小厂,微服务都被认为是云原生服务应用程序架构的事实标准,然而2023,不止那位37signals的DHH决心下云,放弃微服务,就连亚马逊和谷歌等这些云巨头,正在带头开始革了微服务的命。

简述nodejs、npm及其模块在windows下的安装与配置

nodejs的安装 登陆官网http://nodejs.org/&#xff0c;自行安装&#xff0c;不需配置环境变量&#xff0c;安装中自动配置了。 检测是否安装成功&#xff0c;使用cmd输入 node -v 即可查看。 npm的安装 如果是最新版nodejs其实不用装npm&#xff0c;它集成了npm&#xff0c;验证…

discuz,ecshop的伪静态规则(apache+nginx)

discuz(nginx): (备注&#xff1a;该规则也适用于二级目录) rewrite ^([^\.]*)/topic-(.)\.html$ $1/portal.php?modtopic&topic$2 last; rewrite ^([^\.]*)/article-([0-9])-([0-9])\.html$ $1/portal.php?modview&aid$2&page$3 last; rewrite ^([^\.]*)/forum-…

字符串匹配数据结构 --Trie树 高效实现搜索词提示 / IDE自动补全

文章目录1. 算法背景2. Trie 树实现原理2.1 Trie 树的构建2.2 Trie树的查找2.3 Trie树的遍历2.4 Trie树的时间/空间复杂度2.5 Trie 树 Vs 散列表/红黑树3. Trie树的应用 -- 搜索词提示功能1. 算法背景 之前我们了解过单模式串匹配的相关高效算法 – BM/KMP&#xff0c;虽难以理…

Java项目:成绩管理系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a; 超豪华成绩管理系统&#xff0c;学生&#xff0c;教师&#xff0c;管理员三类用户集 成&#xff0c;课程表管理&#xff0c;成绩查询&#xff0c;成绩详情数据统计…

NSThread 多线程相关

1.下面的代码&#xff0c;有2点需要注意&#xff0c;1>就是 就是thread:所传得参数&#xff0c;这里传得的是nsarray 当然也可以传其他的类型。2> [self performSelectorOnMainThread:selector(update) withObject:nil waitUntilDone:YES]; 这个函数的作用是通知主线程进…

Windows Phone 8初学者开发—第19部分:设置RecordAudio.xaml页面

原文地址: http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners/Part-19-Setting-up-the-RecordAudioxaml-Page 系列地址: http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners 源代码: http://aka.ms/abs…

9.path Sum III(路径和 III)

Level&#xff1a; Easy 题目描述&#xff1a; You are given a binary tree in which each node contains an integer value. Find the number of paths that sum to a given value. The path does not need to start or end at the root or a leaf, but it must go downwards…

字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法

文章目录1. 算法背景2. AC自动机实现原理2.1 构建失败指针2.2 依赖失败指针过滤敏感词3. 复杂度及完整代码1. 算法背景 之前介绍过单模式串匹配的高效算法:BM和KMP 以及 基于多模式串的匹配数据结构Trie树。 1. BM和KMP 单模式串匹配算法细节 2. Trie树 多模式串的高效匹配数…

Java项目:仿小米商城系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a; 基于vue Springboot前后端分离项目精简版仿小米商城 系统&#xff0c;注册登录&#xff0c;首页展示&#xff0c;商品展示&#xff0c;商品购买&#xff0c;下单…

vb socket的使用

说明:原本在 csdn 博客 写博客的&#xff0c;因为使用的移动宽带&#xff0c;csdn的 博客无法访问&#xff0c;所以先暂时到博客园写博客了 有能解决移动宽带 有部分网站不能访问的问题&#xff0c;请联系我&#xff0c;QQ 809775607 /***************************/ 下面写wins…

不吹牛会死!国内音乐平台进入“大逃杀”

日前&#xff0c;一篇《看看海洋与腾讯音乐将如何“血洗”独立音乐应用》的文章引起了广泛关注。文中海洋声称长期独家签约的音乐及版权代理公司达40多家&#xff0c;占市场份额超过15%&#xff0c;一时间名不见经传的海洋音乐仿佛成了一匹跃然网上的“黑马”。然而据音乐圈深喉…

leetcode网学习笔记(1)

https://leetcode-cn.com/problems/reverse-linked-list/submissions/ 206 反转链表 错误原因&#xff1a;没有考虑到链表为空以及链表只有一个元素的情况 https://leetcode-cn.com/problems/swap-nodes-in-pairs/comments/ 24 两两交换链表 原方法&#xff1a;使用4个指针遍历…

贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

1. 贪心算法概览 贪心算法是一种算法思想。希望能够满足限制的情况下将期望值最大化。比如&#xff1a;Huffman编码&#xff0c;Dijkstra单源最短路径问题&#xff0c;Kruskal最小生成树 等问题都希望满足限制的情况下用最少的代价找到解决问题的办法。 这个办法就是贪心算法…