自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

原创 Spring Cloud Alibaba 入门系列

文章目录介绍本系列使用的版本功能组件目录介绍Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。此外,阿里云同时还提供了 Spring Cloud Ali.

2022-04-27 10:22:45 598

原创 MyBatis系列 - 导读

MyBatis系列 - 导读该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对各位读者会不太友好,阅读前需要对 MyBatis 和 Spring 有一定的了解。比较适合刚接触,会使用但是一直没去探究底层的同学。MyBatis 版本:3.5.6MyBatis-Spring 版本:2.0.3MyBatis-Spring-Boot-Starter 版本:2.1.4MyBatis - 使用示例 (一)单独使用MyBatis - 使用示例(二)整合SpringMyBatis -

2021-01-04 17:35:16 24763

原创 Spring Cloud Alibaba - Sentinel(三)规则持久化

文章目录1. 原始模式2. Pull模式3. Push模式3.1 基于Nacos配置中心控制台实现推送3.1.1 添加依赖3.1.2 nacos中配置flow rule3.1.3 yml添加配置Sentinel规则推送分为 3 种模式,包括 “原始模式”、“Pull 模式” 和"Push 模式"推送模式说明优点缺点原始模式API 将规则推送至客户端并直接更新到内存中,扩展写数据源(WritableDataSource)简单,无任何依赖不保证一致性;规则保存在内存中,.

2022-05-11 15:39:44 544

原创 Spring Cloud Alibaba - Sentinel(二)熔断、热点、授权

文章目录一、熔断降级1. 熔断策略1.1 慢调用比例1.2 异常比例1.3 异常数2. 整合OpenFeign降级2.1 引入依赖2.2 添加bootstrap.yml2.3 在程序中使用配置二、热点参数限流三、系统规则四、授权控制规则一、熔断降级熔断降级是一种基于消费者报复自身的手段,在调用提供方的接口时,基于慢调用比例、异常比例、异常数进行熔断降级。1. 熔断策略1.1 慢调用比例慢调用比例 (SLOW_REQUEST_RATIO):选择以慢调用比例作为阈值,需要设置允许的慢调用 R.

2022-05-10 16:55:04 554

原创 Spring Cloud Alibaba - Sentinel(一)快速入门&流控配置

文章目录一、Sentinel 介绍二、Sentinel 快速入门2.1 获取控制台jar包2.2 启动控制台2.3 添加服务端三、流控配置3.1 快速入门3.2 BlockException统一处理3.3 配置讲解一、Sentinel 介绍随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十.

2022-04-29 17:08:34 870

原创 Spring Cloud Alibaba - Nacos(四)配置中心

文章目录一、Nacos配置中心使用1. 快速开始2. 搭建nacos-config服务**2.1 引入依赖****2.2 添加bootstrap.yml**2.3 在程序中使用配置3. Config相关配置一、Nacos配置中心使用官方文档: https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-configNacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用.

2022-04-27 16:10:22 716

原创 Spring Cloud Alibaba - Nacos(三)OpenFeign

文章目录一、什么是Feign1. Feign的优势2. Spring Cloud Alibaba快速整合OpenFeign**2.1 引入依赖****2.2 添加feign接口****2.3 在启动类上添加开启Feign的注解****2.4 在调用的地方使用feign调用**3.Spring Cloud Feign的自定义配置3.1 日志配置3.2 契约配置3.3 自定义拦截器实现认证逻辑3.4 超时时间配置3.5 客户端组件配置3.6 GZIP 压缩配置在Java项目中,我们是如何实现接口调用的呢.

2022-04-27 15:14:42 1267

原创 Spring Cloud Alibaba - Nacos(二)负载均衡器

文章目录一、简介二、使用LoadBnlancer三、切换策略四、自定义策略一、简介在Spring Cloud Nacos 2021以后就没有在默认使用Ribbon作为负载均衡器了,而且在Cloud官网中也推荐使用LoadBnancer作为负载均衡器,他实现了轮询和随机两种方式(RandomLoadBalancer、RoundRobinLoadBalancer),如果引入了NacosDiscovery的话里面还可以使用NacosLoadBnancer的方式。所以接下来我们就来实现一下如何使用LoadB.

2022-04-27 10:51:09 3573 5

原创 Spring Cloud Alibaba - Nacos(一)服务注册与发现

文章目录简介Nacos注册中心Nacos Discovery 核心功能Spring Cloud Alibaba Nacos 快速开始Nacos Server 部署将Order服务注册到Nacos Service简介Nacos 官方:一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理的平台。Nacos 的关键特性包括:服务发现和服务健康监测动态配置服务动态 DNS 服务服务及其元数据管理Nacos注册中心管.

2022-04-27 10:27:26 673 1

原创 【二】微信公众号之扫码关注后自动登录

【二】微信公众号之扫码关注后自动登录​ 原来公司的官网就支持账号密码、手机验证码、QQ扫码授权、微信扫码授权等多种登录方式。昨天分享了微信公众号之扫码登录,今天接到需求说要为了咋们的公众号涨粉,要扫码后关注公众号后才可以登录,我一想这不是耍流氓嘛,登个网站还非得我关注。。。算了,产品爸爸说了算。一、准备工作查阅了微信公众号开发文档,发现可以用微信生成带参数二维码实现。看看人家的介绍这不就是我们这个需求准备的接口嘛????二、整个流程说明先来看看整个流程的时序图然后咋们来捋一下整个流程

2021-04-22 11:12:03 3867 1

原创 【一】微信公众号之扫码登录

微信公众号之扫码登录​ 原来公司的官网就支持账号密码、手机验证码、QQ扫码授权、微信扫码授权等多种登录方式。今天要分享的就是关于微信扫码授权登录的原理。一、准备工作使用的是微信登录功能实现的,需要先在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。二、授权流程说明微信授权登录让微信用户使用微信身份安全登录第三方应用或网站,当微信用户授权登录接入微信的第三方应用后,第三方就可以获取到用户的接口调用

2021-04-20 11:07:28 3670

原创 分布式之Redis【二】高可用集群搭建

分布式之Redis【二】高可用集群搭建一、Redis集群方案比较哨兵模式在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态, 如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般,特别是在主从切换的瞬间存在访问瞬断的情况,而且哨兵模式只有一个主节点对外提供服务,没法支持很高的并发,且单个主节点内存也不宜设置得过大,否则会导致持久化文件过大,影响数据恢复或主从同步的效率

2021-03-06 20:37:09 211

原创 分布式之Redis【一】基础学习

分布式之Redis【一】基础学习一、Linux 源码安装# 官网 https://redis.io/# wget http://download.redis.io/releases/redis-5.0.2.tar.gz# tar xzf redis-5.0.2.tar.gz# cd redis-5.0.2# make# 修改配置文件 redis.conf daemonize yes# 启动redis服务端 ./src/redis-server redis.conf# 启动客服端 ./s

2021-03-05 14:57:26 146

原创 【每日一题】 1438. 绝对差不超过限制的最长连续子数组

【每日一题】 1438. 绝对差不超过限制的最长连续子数组避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。如果不存在满足条件的子数组,则返回 0 。提示:1 <= nums.length <= 10^51 <= nums[i] <= 10^90 <= limit &

2021-03-02 09:44:43 142

原创 【每日一题】 697. 数组的度

【每日一题】 697. 数组的度避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。提示:nums.length 在1到 50,000 区间范围内。nums[i] 是一个在 0 到 49,999 范围内的整数。示例 1:输入:[1, 2, 2, 3, 1]输出:2解

2021-02-27 18:12:29 207

原创 【每日一题】 1004. 最大连续1的个数 III

【每日一题】 1004. 最大连续1的个数 III避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。提示:1 <= A.length <= 300001 <= K <= A.length示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释: [1,1

2021-02-26 10:45:10 166

原创 【每日一题】 995. K 连续位的最小翻转次数

【每日一题】 995. K 连续位的最小翻转次数避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 困难在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0。返回所需的 K 位翻转的最小次数,以便数组没有值为 0 的元素。如果不可能,返回 -1。提示:1 <= A.length <= 300001 <= K <= A.length示例

2021-02-25 10:54:29 169

原创 【每日一题】 992. K 个不同整数的子数组

【每日一题】 992. K 个不同整数的子数组避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 困难给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续、不一定独立的子数组为好子数组。(例如,[1,2,3,1,2] 中有 3 个不同的整数:1,2,以及 3。)返回 A 中好子数组的数目。提示:1 <= A.length <= 200001 <= A[i] <= A.length1 <=

2021-02-24 09:28:25 10694

原创 【每日一题】 978. 最长湍流子数组

【每日一题】 978. 最长湍流子数组避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等当 A 的子数组 A[i], A[i+1], …, A[j] 满足下列条件时,我们称其为湍流子数组:若 i <= k < j,当 k 为奇数时, A[k] > A[k+1],且当 k 为偶数时,A[k] < A[k+1];或 若 i <= k < j,当 k 为偶数时,A[k] > A[k+1] ,且当 k 为奇数时, A[k] &lt

2021-02-23 09:37:25 10690

原创 【每日一题】 665. 非递减数列

【每日一题】 665. 非递减数列避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单给你一个长度为n的整数数组,请你判断在 最多 改变1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的:对于数组中所有的i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。提示:1 <= n <= 10 ^ 4- 10 ^ 5 <= nums[i] <= 10 ^ 5

2021-02-22 09:34:56 10723

原创 【每日一题】 1423. 可获得的最大点数

【每日一题】 1423. 可获得的最大点数避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。例如:[2,3,4],中位数是 3[2,3],中位数是 (2 + 3) /

2021-02-21 17:01:28 10859

原创 【每日一题】 1208. 尽可能使字符串相等

【每日一题】 1208. 尽可能使字符串相等避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等给你两个长度相同的字符串,s 和 t。将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最大预算是 maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将 s 的子字符串转化为它在 t 中对

2021-02-20 09:54:04 10896

原创 【每日一题】 480. 滑动窗口中位数

【每日一题】 480. 滑动窗口中位数避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 困难中位数是有序序列最中间的那个数。如果序列的大小是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。例如:[2,3,4],中位数是 3[2,3],中位数是 (2 + 3) / 2 = 2.5给你一个数组 nums,有一个大小为 k 的窗口从最左端滑动到最右端。窗口中有 k 个数,每次窗口向右移动 1 位。你的任务是找出每次窗口移动后得到的新窗口中元素的中位数,并输出

2021-02-19 10:06:11 10883

原创 【每日一题】 643. 子数组最大平均数 I

【每日一题】 643. 子数组最大平均数 I避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。提示:1 <= k <= n <= 30,000。所给数据范围 [-10,000,10,000]。示例 1:输入:[1,12,-5,-6,50,3], k = 4输出:12.75解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75二、题

2021-02-18 10:46:46 10847

原创 【每日一题】 424. 替换后的最长重复字符

【每日一题】 424. 替换后的最长重复字符避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。提示:字符串长度 和 k 不会超过 104。示例 1:输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B',反之亦然。示例 2:输入:s = "AABABBA", k =

2021-02-09 11:03:45 10811

原创 【四】彻底搞懂synchronized

【四】彻底搞懂synchronized废话不多说,我们先来看一个段代码,了解一个奇怪的现象public class Synchronized03 implements Runnable { private static int count = 0; public static void main(String[] args) { for (int i = 0; i < 10; i++) { Thread thread = new Threa

2021-02-08 11:04:34 26544

原创 【每日一题】 888. 公平的糖果棒交换

【每日一题】 888. 公平的糖果棒交换避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大小,B[j] 是鲍勃拥有的第 j 根糖果棒的大小。因为他们是朋友,所以他们想交换一根糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒

2021-02-08 09:55:21 11095

原创 【三】回避不了的面试问题 ==> volatile

【三】回避不了的面试问题 ==> volatile如果面试问到多线程高并发方面的话必然会问到volatile,很多小伙伴对于volatile的认知可能还不够清晰,今天我们一起来彻底的搞定它。我们先来看一个段代码,了解一个奇怪的现象public class VolatileTest { private static boolean flag = false; public static void main(String[] args) { A a = new A(

2021-02-07 14:27:01 25305

原创 【每日一题】 2. 两数相加

【每日一题】 7. 整数反转避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。提示:每个链表中的节点数在范围 [1, 100] 内0 <= Node.val <= 9题目数据保证列表表示的数字不含前导零示例 1:

2021-02-07 10:07:51 11974

原创 【二】Java线程池

【二】Java线程池一、线程池的优势降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;提高系统响应速度,当有任务到达时,通过复用已存在的线程,无需等待新线程的创建便能立即执行;方便线程并发数的管控。因为线程若是无限制的创建,可能会导致内存占用过多而产生OOM,并且会造成cpu过度切换(cpu切换线程是有时间成本的(需要保持当前执行线程的现场,并恢复要执行线程的现场))。提供更强大的功能,延时定时线程池。二、线程池的主要参数public ThreadPoolExecuto

2021-02-06 17:19:18 173

原创 【一】Java线程初步了解

Java线程一、进程与线程进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,即进程空间或(虚空间)。进程不依赖于线程而独立存在,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,线程没有自己的虚拟地址空间,与进程内的其他线程一起共享分配给该进程的所有资源。二、线程实现方式(一)继承 Thread 类public cla

2021-02-06 14:54:58 25708

原创 【每日一题】 7. 整数反转

【每日一题】 7. 整数反转避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。提示:-231 <= x <= 231 - 1示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-32

2021-02-06 09:44:23 12618

原创 【每日一题】 724. 寻找数组的中心索引

【每日一题】 724. 寻找数组的中心索引避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单给定一个整数类型的数组 nums,请编写一个能够返回数组 “中心索引” 的方法。我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。提示:nums 的长度范围为 [0, 10000]。任何一个 nums[i] 将会是一

2021-02-05 10:13:35 12298

原创 【每日一题】 1579. 保证图可完全遍历

【每日一题】 1579. 保证图可完全遍历避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 困难Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边:类型 1:只能由 Alice 遍历。类型 2:只能由 Bob 遍历。类型 3:Alice 和 Bob 都可以遍历。给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 A

2021-02-04 09:35:53 12537

原创 【每日一题】 1690. 石子游戏 VII

【每日一题】 1690. 石子游戏 VII避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。有 n 块石子排成一排。每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头,并获得与该行中剩余石头值之 和 相等的得分。当没有石头可移除时,得分较高者获胜。鲍勃发现他总是输掉游戏(可怜的鲍勃,他总是输),所以他决定尽力 减小得分的差值 。爱丽丝的目标是最大限度地 扩大得分的差值 。给你一个整数数组 stones ,

2021-02-03 09:37:39 173

原创 【每日一题】 1689. 十 - 二进制数的最少数目

【每日一题】 1689. 十-二进制数的最少数目避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。给你一个表示十进制整数的字符串 n ,返回和为 n 的 十-二进制数 的最少数目。提示:1 <= n.length <= 105n 仅由数字组成n 不含任何前导零并总是表示正整

2021-02-02 09:42:36 12262

原创 【每日一题】 1688. 比赛中的配对次数

【每日一题】 1688. 比赛中的配对次数避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述给你一个整数 n ,表示比赛中的队伍数。比赛遵循一种独特的赛制:如果当前队伍数是 偶数 ,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮。如果当前队伍数为 奇数 ,那么将会随机轮空并晋级一支队伍,其余的队伍配对。总共进行 (n - 1) / 2 场比赛,且产生 (n - 1) / 2 + 1 支队伍进入下一轮。返回在比赛中进行的配对次

2021-02-01 09:47:35 12441

原创 【每日一题】 1128. 等价多米诺骨牌对的数量

【每日一题】 1128. 等价多米诺骨牌对的数量避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述给你一个由一些多米诺骨牌组成的列表 dominoes。如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 a==c 且 b==d,或是 a==d 且 b==c。在 0 <= i < j < domin

2021-01-28 09:59:05 12405

原创 【每日一题】 1518. 换酒问题

【每日一题】 1518. 换酒问题避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。请你计算 最多 能喝到多少瓶酒。提示:1 <= grid.length == grid[0].length <= 30grid[i][j] 是 '/'、'\'、或 ' '。示例 1:输入:numBottles = 9,

2021-01-27 11:02:51 15701

原创 算法笔记【7】 最短路问题

算法笔记【7】 最短路问题最短路问题简介这篇文章应该会很长,因为我们要探讨图论中一个基本而重要的问题:最短路问题。如下图,我们想知道,某点到某点最短的路径有多长?最短路问题分为两类:单源最短路和多源最短路。前者只需要求一个固定的起点到各个顶点的最短路径,后者则要求得出任意两个顶点之间的最短路径。我们先来看多源最短路问题。Floyd算法(弗洛伊德算法)我们用Floyd算法解决多源最短路问题:public static int[][] floyd(int[][] e) { for (in

2021-01-26 22:54:43 19141

空空如也

空空如也

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

TA关注的人

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