java设计模式
文章平均质量分 70
一梦花海
大学生学习计算机
展开
-
java设计模式-单例模式
单例模式懒汉模式public class Singleton_01 { //懒汉模式(线程不安全) public static Singleton_01 instance; private Singleton_01() { } public static Singleton_01 getInstance(){ if(instance!=null){ return insta原创 2021-06-01 16:04:43 · 184 阅读 · 2 评论 -
java 面试系列-线程池
java 面试-线程池的理解java 线程池的理解?1.使用线程池的好处?降低系统资源消耗,通过重用已经存在的线程,降低线程和销毁造成的的消耗。提高系统响应速度,当有任务到达时,通过复用已经存在的线程,无需等待新线程的创建。方便线程并发数的管控。因为线程若是无限制的创建,可能会导致内存占用过多而产生OOM,并且会造成cpu过度切换(cpu切换线程是有时间成本的(需要保持当前执行线程的现场,并恢复要执行线程的现场)。提供更强大的功能,延时定时线程池。2.线程池的主要参数public Th原创 2021-05-08 08:55:59 · 834 阅读 · 0 评论 -
Leetcode- 打家劫舍
1.问题描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 ..原创 2021-03-30 21:58:05 · 152 阅读 · 0 评论 -
Leetcode-滑动窗口之字符串的排列
1.题目描述给定两个字符串s1和s2,写一个函数来判断 s2 是否包含 s1的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例 1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例 2:输入: s1= "ab" s2 = "eidboaoo"输出: False2.解题思路滑动窗口 + 字典分析一: 题目要求 s1的排列之一是 s2的一个子串。而子...原创 2021-03-01 20:27:20 · 178 阅读 · 0 评论 -
leetcode-1248. 统计「优美子数组」
1. 题目描述给你一个整数数组nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。示例 1:输入:nums = [1,1,2,1,1], k = 3输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。示例 2:输入:nums = [2,4,6], k = 1输出:0解释:数列中不包含任何奇数,所以不存在优美子数组。示例 3:...原创 2021-02-08 19:34:23 · 480 阅读 · 0 评论 -
Leetcode-完全平方数
1.题目描述给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例1:输入:n = 12输出:3 解释:12 = 4 + 4 + 4示例 2:输入:n = 13输出:2...原创 2021-02-04 20:55:14 · 448 阅读 · 0 评论 -
Leetcode-组合总和IV
1.题目描述给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。示例:nums = [1, 2, 3]target = 4所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。因此输出为 7。2.题意解析读完题目,这个题目的本质就是一个完全背包问题。但是这个题目的深层意思就是求排列不是 组合,所以在遍历背包的顺序原创 2021-02-02 20:22:58 · 216 阅读 · 1 评论 -
Leetcode-单词拆分
1.题目描述给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2:输入: s = "applepenapple", .原创 2021-01-30 21:27:00 · 330 阅读 · 0 评论 -
二分查找详解
文章目录二分查找详解1.基本介绍2.寻找一个数(基本的二分搜索)二分查找详解1.基本介绍二分查找是什么呢?其实二分查找就是我们平时生活中为了搜索一个数用的一个最具有效率的方法。比如你不知道你支付宝里有多少钱,但是你大致记得在什么范围内,这个时候你就可以用二分查找的方法去确定这个数更加准确的范围。本文就来探究几个最常用的二分查找场景:寻找一个数、寻找左侧边界、寻找右侧边界。而且,我们就是要深...原创 2020-04-10 16:22:54 · 419 阅读 · 0 评论 -
组合模式读书笔记
组合模式读书笔记文章目录模式定义模式结构通用源代码实现应用场景和具体实现组合模式的优缺点:1.组合模式的优点2.组合模式的缺点适用场景2.组合模式的缺点适用场景模式定义组合模式组合多个对象形成树形结构以表示“整体-部分”的结构层次。组合模式对单个对象(叶子对象)和组合对象(组合对象)具有一致性,它将对象组织到树结构中,可以用来描述整体与部分的关系。同时它也模糊了简单元素(叶子对象)和复杂元...原创 2019-11-19 20:32:11 · 326 阅读 · 0 评论