- 博客(23)
- 收藏
- 关注
原创 【Leetcode】【4. 寻找两个正序数组的中位数】
给定两个大小为 m 和 n 的正序(从小到大)数组nums1 和nums2。请你找出并返回这两个正序数组的中位数。 进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗? 示例 1: 输入:nums1 = [1,3], nums2 = [2] 输出:2.00000 解释:合并数组 = [1,2,3] ,中位数 2 示例 2: 输入:nums1 = [1,2], nums2 = [3,4] 输出:2.50000 解释:合并数组 = [1,2,3,4] ,中位数 (2 ...
2020-12-24 23:11:59
82
原创 【Leetcode】【3. 无重复字符的最长子串】
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: s = "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"p...
2020-12-24 23:05:04
83
原创 【Leetcode】【2. 两数相加】
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 /** * Definition for singly...
2020-12-24 22:58:26
88
原创 【Leetcode】【1. 两数之和】
给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] import java.util.*; public class Solution { // publi...
2020-12-24 22:56:05
86
1
原创 【读书笔记】大型网站技术架构
【读书笔记】大型网站技术架构关于大型网站核心要素大型网站追求的性能指标可用性 availability伸缩性 scalability扩展性 extensibility安全性 security大型网站的演化发展历程阶段 1阶段 2阶段 3阶段 4阶段 5阶段 6阶段 7阶段 8阶段 9阶段 10 关于大型网站 大型网站是相当于企业级应用来说的,特点有 高并发,大流量 高可用 海量数据 用户分布广泛...
2019-05-06 17:02:50
152
原创 【Redis】缓存穿透,缓存击穿,缓存雪崩
0、概述 最近在复习redis的时候,发现对redis的一些概念很模糊,今天来梳理一下缓存穿透,缓存击穿,缓存雪崩这三个概念。 1、缓存穿透 概念:所谓的缓存穿透,简单来讲就是查询某些不存在的key时,缓存和数据库查询结果都为空,而空的结果又不被缓存起来,而导致每次查询都去请求数据库层的情况。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。 ...
2019-04-28 11:04:26
115
转载 使用Guava cache构建本地缓存
什么是本地缓存 在我们的应用中,大部分的计算是昂贵的,而且是可复用的,并且计算结果不会经常发生改变。这时候我们就可以将这些昂贵的计算结果缓存到内存中,下次使用的时候直接取出即可,而不用重新计算。这样可以节省大量的cpu和内存资源,提高系统的吞吐量。 本地缓存作用就是提高系统的运行速度,是一种空间换时间的取舍。它实质上是一个做key-value查询的字典,但是相对于我们常用HashMap它又有以...
2019-03-08 09:43:58
541
转载 【JUC】JUC集合框架综述
一、前言 完成了JUC的锁框架的分析后,现在分析JUC集合框架,之前分析过的集合框架,很大程度上都不是线程安全的,其在多线程环境下会出现很多问题,为了保证在多线程环境下仍然能够正确安全的访问集合,出现了JUC下的集合框架,下面逐一进行介绍分析。 二、JUC集合框架图 下面给出JUC中的集合框架,之后我们会对其中的类进行详细的分析。 说明:由上图可以看到,JUC的集合框架也是从M...
2019-02-21 20:29:52
299
转载 java 泛型详解(转)
java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一 原文地址:https://www.cnblogs.com/coprince/p/8603492.html 对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。 本文参考java 泛型详解、Java中的泛型方法、 java泛型详解 1. 概述 泛型在java中有很重要的地...
2018-08-26 10:34:52
404
原创 Java集合类
Collection继承、实现关系如下(说明(I)表示接口,(C)表示Java类,<--表示继承,<<——表示实现): (I)Iterable |<--(I)Collection |<--(I)List ...
2018-08-25 10:15:25
170
原创 接口的作用
· 为什么需要接口?接口和抽象类的区别? 接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。 抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法。接口是完全面向规范的,规定了一批类具有的公共方法规范。 从接口的实现者角度看,接口定义了可以向外部提供的服务。 ...
2018-06-07 10:03:38
341
原创 交换机与路由器的区别
交换机: 交换机用来将一根网线变为多根,如果网络需要登录大家各自分别登录。 路由器: 路由器用来将一条网络变为多条,分出的多条网络共享主线的网络带宽。 总结: 路由器相对于交换机来说,是包含交换机的功能。 交换机常常的用途是用来扩展网络接口,比如一个情景是只有两个网口,但是却有四台电脑需要上网,这时候就面临网口不足的情况,这时候就可以买一台交换机来扩展...
2017-06-13 15:31:23
270
转载 进程与线程的一个简单解释
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。 2. 假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一...
2017-05-24 17:06:29
160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人