自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (6)
  • 收藏
  • 关注

原创 二维数组按第一列升序,相同就按第二列降序

/*3 12 45 01 24 33 23 3 */public class ArrSort { public static void main(String[] args) { int[][] arr = new int[7][2]; arr[0][0] = 3; arr[0][1] = 1; arr[1][0] = 2; arr[1][1] = 4; arr[2][0] = 5;.

2022-04-11 20:04:29 730

原创 AQS与线程池

AQS是JUC包的一个基类,非常重要。ReentrantLock类中有一个抽象静态内部类Sync,它继承了AQS类。另外AQS有一个静态内部类Node,它有很多常量:static final class Node { /** Marker to indicate a node is waiting in shared mode */ static final Node SHARED = new Node(); /** Marker to indica

2022-03-29 21:50:57 602

原创 力扣518. 零钱兑换2

和零钱兑换1的区别就在于dp表存的值含义不同class Solution { public int change(int amount, int[] coins) { if(amount==0)return 1; int[] dp = new int[amount+1]; for(int i=1;i<dp.length;i++){ if(i%coins[0]==0)dp[i]=1; } .

2022-03-10 19:18:48 188

原创 力扣322. 零钱兑换

完全背包和0-1背包很像,只需要把内循环的逆序改为正序,因为每个物品可以重复拿了。class Solution { public int coinChange(int[] coins, int amount) { if(amount==0)return 0; int[] dp = new int[amount+1]; for(int i=0;i<coins.length;i++){ for(int

2022-03-10 19:01:41 219

原创 力扣1049. 最后一块石头的重量

二维数组版本: (和之前那到分割等和子集原理非常相似)class Solution { public int lastStoneWeightII(int[] stones){ //这道题其实是有两个背包,一个背包装x重量,另一个背包装sum-x重量,然后要使得两个背包装的重量尽可能多,这样剩下的就越少,也就是sum-x-x=sum-2x越趋于0越好,那么x就应该在不大于sum/2的情况下越大越好,也就是背包问题了,同理capacity = sum/2除不尽也不用管,自然下取整就

2022-03-10 16:58:29 176

原创 力扣416. 分割等和子集

class Solution { public boolean canPartition(int[] nums){ //数组要被分成两个,并且元素和相等,转化为背包问题:所有物品总重量为sum(数组元素和),现在有两个容量都为sum/2的背包,问这两个背包是否能被刚好装满,进一步简化:问其中一个背包能否被刚好装满(一个满了,另一个肯定也能刚好满) int sum = 0; for(int num: nums){ sum += .

2022-03-09 21:19:52 177

原创 力扣474. 一和零

class Solution { public int findMaxForm(String[] strs, int m, int n) { //两个背包,一个容量m只装0,一个容量n只装1,物品重量有0,1两个维度,每件物品价值为1 int[][] dp = new int[m+1][n+1]; //dp[j][k]:第一个背包能装j个0,第二个背包能装k个1,dp[j][k]就是在使用这两个背包的情况下能装的最大价值 for(i.

2022-03-09 20:48:37 107

原创 centos7环境下安装MySQL8.0.26

1. 首先去官网下载安装包2. 将下载的压缩包上传至linux服务器我这里是上传到了/home目录下3. 依次执行下列命令1. mkdir mysql2. cd mysql3. rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm4. rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm5. rpm -ivh mysql-...

2022-03-02 19:30:14 1049

原创 MySQL运维篇(日志、主从复制)

日志四种日志需要关注:错误日志、 二进制日志、查询日志、慢查询日志错误日志它记录了当mysqld启动和停止时 ,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议先查看此日志。该日志默认开启,默认存放于/var/log/,默认名为mysqld.log。#查看日志位置show variables like '%log_error%'二进制日志 二进制日志(BINLOG)记录了所有的DDL语句(库表结构的操作)和DML语句(增、删

2022-03-02 15:54:32 1023

原创 MySQL之视图(五)

视图是一种虚表,视图中的数据并不真实存在,也就是说视图只保存查询的SQL逻辑,不保存查询结果。创建视图语法:create or replace view myView as select id,name from tb_user where id<=10;查看视图数据时把视图当作普通表一样操作即可,比如select * from myView;修改视图可以用创建视图一样的语法,也可以用alter代替create or replace删除视图Drop view if e

2022-02-28 16:44:04 1024

原创 MySQL之索引(三)

什么是索引?索引是帮助MySQL高效获取数据的一种数据结构有什么用?索引可以提高MySQL数据查询效率。例如我们要找书名为"MySQL"的书籍,那么我们的筛选条件是where book_name = "MySQL",此时如果没有排序,那么我们不知道什么时候才会找到MySQL,反之若排了序,直接去M开头里面的数据找就行了。(非常像字典)简单理解就是增加where子句和order by子句的执行效率。也就是说数据库中除了存放数据之外,还会维护一个数据结构使得我们的查询效率提高,这种数据结构就是索

2022-02-28 10:16:22 498 1

原创 Redis系列之持久化与缓存淘汰(六)

RDBRDB持久化的方式是在一定的时间间隔后,将数据快照写入磁盘,恢复时是把磁盘中的快照文件读到内存中。详细步骤:Redis在执行RDB持久化时,会先创建(fork)出一个子进程,子进程负责把该时刻的数据快照写入一个临时文件temp中,写完后将temp文件替换掉原先的快照文件dump.rdb。整个过程主进程不涉及任何io操作,所有性能非常高,不过这种方式最后一次持久化后的数据可能会丢失。Forkfork出的子进程开始并不会独享一份物理空间,而是先共享父进程使用的那一片内存页,..

2022-02-22 11:37:09 320

原创 Redis系列之消息队列(三)

Redis能实现两种消息队列:生产者消费者模式、发布/订阅模式首先说说什么是消息队列。消息队列是指利用高效可靠的消息传递机制来进行与平台无关的数据交流,并基于数据通信来实现分布式系统的集成。为什么需要消息队列?1. 松耦合假设现在有A、B、C、D四个子系统,其中A系统要发数据到另外三个系统中,那么A需要分别调用B、C、D三个系统提供的接口,当某日需求变了要对应删除或增加相应的接口,这种情况如果过于频繁则会增加很大的工作量,同时也会增加不稳定因素,对于分布式系统来说,不稳定因素应该月少越好

2022-02-20 18:07:27 537

原创 Redis系列之五种数据类型(二)

Redis命令查询StringString是Redis最基本的类型,可以理解成与Memcached一模一样的类型,一个key对应一个value。String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。(二进制安全指只关心二进制化的字符串,不关心具体格式,不会对某种字符组合给予特殊含义,比如C语言的 \0 可作为字符串结尾标识,那么C语言就不是二进制安全的)Redis存储图片的两种方式:直接用String存,这样可以先把图片用..

2022-02-19 21:35:57 1251

原创 Redis系列之缓存穿透、缓存击穿、缓存雪崩、限流(八)

缓存穿透问题描述是指数据库中不存在的数据、redis缓存中不存在的key被大量请求。本来正常情况下请求先发给redis,而redis中没有所需要的key,那么又会去数据库中找,如果有这个key就把该key更新到redis中并把结果返回给用户,如果数据库也没有这个key就正常提示用户没有即可。问题就是当大量的请求都是去查询在数据库中压根就不存在的数据(比如一共5000用户,用户id1-5000,请求是查询5001号用户数据),这样所有请求都会去过一遍数据库,redis便没有发挥承担请求压力的作用。

2022-02-19 12:47:44 188

原创 通俗理解二分查找代码细节

本来以为挺简单的,结果并没有一次过。这里对其中的细节做一些总结(代码+图):

2021-06-26 16:11:54 157 1

20220720_113034.m4a

20220720_113034.m4a

2022-07-20

20220720_113011.m4a

20220720_113011.m4a

2022-07-20

20220720_112916.m4a

20220720_112916.m4a

2022-07-20

20220720_113224.m4a

20220720_113224.m4a

2022-07-20

20220720_113245.m4a

20220720_113245.m4a

2022-07-20

20220720_113157.m4a

20220720_113157.m4a

2022-07-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除