自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java死锁的一个简单的例子

public class DeadLock { public static String obj1 = "obj1"; public static String obj2 = "obj2"; public static void main(String[] args){ Thread a = new Thread(new Lock1()); Thread b = new Thread(new Lock2()); a.start();

2021-03-03 12:33:16 144

原创 单例模式双重检查

public class Singleton { private volatile Singleton instance = null; public Singleton getInstance() { if (instance == null) { synchronized(this) { if (instance == null) { instance = new Singleton(); } }

2021-03-03 12:32:05 131

原创 Leetcode 题解 - 数学

Leetcode 题解 - 数学素数分解整除最大公约数最小公倍数1. 生成素数序列2. 最大公约数3. 使用位操作和减法求解最大公约数进制转换1. 7 进制2. 16 进制3. 26 进制阶乘1. 统计阶乘尾部有多少个 0字符串加法减法1. 二进制加法2. 字符串加法相遇问题1. 改变数组元素使所有的数组元素都相等多数投票问题1. 数组中出现次数多于 n / 2 的元素其它1. 平方数2. 3 的 n 次方3. 乘积数组.

2021-02-22 10:36:10 600

原创 Leetcode 题解 - 栈和队列

Leetcode 题解 - 栈和队列1. 用栈实现队列2. 用队列实现栈3. 最小值栈4. 用栈实现括号匹配5. 数组中元素与下一个比它大的元素之间的距离6. 循环数组中比当前元素大的下一个元素1. 用栈实现队列232. Implement Queue using Stacks (Easy)Leetcode / 力扣栈的顺序为后进先出,而队列的顺序为先进先出。使用两个栈实现队列,一个元素需要经过两个栈才能出队列,在经过第一个栈时元素顺序被反转,经过第二个栈时再次被反转,此时就.

2021-02-21 11:39:04 291

原创 Leetcode 题解 - 哈希表

Leetcode 题解 - 哈希表1. 数组中两个数的和为给定值2. 判断数组是否含有重复元素3. 最长和谐序列4. 最长连续序列哈希表使用 O(N) 空间复杂度存储数据,并且以 O(1) 时间复杂度求解问题。Java 中的 HashSet 用于存储一个集合,可以查找元素是否在集合中。如果元素有穷,并且范围不大,那么可以用一个布尔数组来存储一个元素是否存在。例如对于只有小写字符的元素,就可以用一个长度为 26 的布尔数组来存储一个字符集合,使得空间复杂度降低为 O(1)。.

2021-02-21 10:44:33 197

原创 Leetcode 题解 - 数组与矩阵

Leetcode 题解 - 数组与矩阵1. 把数组中的 0 移到末尾2. 改变矩阵维度3. 找出数组中最长的连续 14. 有序矩阵查找5. 有序矩阵的 Kth Element6. 一个数组元素在 [1, n] 之间,其中一个数被替换为另一个数,找出重复的数和丢失的数7. 找出数组中重复的数,数组值在 [1, n] 之间8. 数组相邻差值的个数9. 数组的度10. 对角元素相等的矩阵11. 嵌套数组12. 分隔数组1. 把数组中的 0 移到末尾283. Move Zer.

2021-02-19 20:05:01 242

原创 Leetcode 题解 - 字符串

Leetcode 题解 - 字符串1. 字符串循环移位包含2. 字符串循环移位3. 字符串中单词的翻转4. 两个字符串包含的字符是否完全相同5. 计算一组字符集合可以组成的回文字符串的最大长度6. 字符串同构7. 回文子字符串个数8. 判断一个整数是否是回文数9. 统计二进制字符串中连续 1 和连续 0 数量相同的子字符串个数1. 字符串循环移位包含编程之美 3.1s1 = AABCD, s2 = CDAAReturn : true给定两个字符串 s1 和 s2,要.

2021-02-19 20:01:51 479

原创 Leetcode 题解 - 双指针

Leetcode 题解 - 双指针1. 有序数组的 Two Sum2. 两数平方和3. 反转字符串中的元音字符4. 回文字符串5. 归并两个有序数组6. 判断链表是否存在环7. 最长子序列双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。1. 有序数组的 Two Sum167. Two Sum II - Input array is sorted (Easy)Leetcode / 力扣Input: numbers={2, 7, 11, 15}, targe.

2021-02-19 16:48:46 240

原创 Leetcode 题解 - 排序

Leetcode 题解 - 排序快速选择堆1. Kth Element桶排序1. 出现频率最多的 k 个元素2. 按照字符出现次数对字符串排序荷兰国旗问题1. 按颜色进行排序快速选择用于求解 Kth Element 问题,也就是第 K 个元素的问题。可以使用快速排序的 partition() 进行实现。需要先打乱数组,否则最坏情况下时间复杂度为 O(N2)。堆用于求解 TopK Elements 问题,也就是 K 个最小元素的问题。使用.

2021-02-16 20:29:19 420

原创 Leetcode 题解 - 分治

Leetcode 题解 - 分治1. 给表达式加括号2. 不同的二叉搜索树1. 给表达式加括号241. Different Ways to Add Parentheses (Medium)Leetcode / 力扣Input: "2-1-1".((2-1)-1) = 0(2-(1-1)) = 2Output : [0, 2]public List<Integer> diffWaysToCompute(String input) { List<I.

2021-02-15 22:49:15 113

原创 Leetcode 题解 - 二分查找

Leetcode 题解 - 二分查找1. 求开方2. 大于给定元素的最小元素3. 有序数组的 Single Element4. 第一个错误的版本5. 旋转数组的最小数字6. 查找区间正常实现Input : [1,2,3,4,5]key : 3return the index : 2public int binarySearch(int[] nums, int key) { int l = 0, h = nums.length - 1; while (l &.

2021-02-15 19:25:31 323

转载 动态规划背包问题解题技巧

解题思路常见的背包问题有1、组合问题。2、True、False问题。3、最大最小问题。以下题目整理来自大神CyC,github地址:github在大神整理的基础上,又做了细分的整理。分为三类。1、组合问题:377. 组合总和 Ⅳ494. 目标和518. 零钱兑换 II2、True、False问题:139. 单词拆分416. 分割等和子集3、最大最小问题:474. 一和零322. 零钱兑换组合问题公式dp[i] += dp[i-num]True、False问题公式dp

2021-01-06 23:35:56 94

原创 DFS中关于全排列、组合、子集中有重复数字去重的问题

写在前面:关于何时用used数组储存是否访问过以及何时用begin作为循环的起始值,请参考前一篇博客一、全排列1.没有重复数字Leetcode46.全排列:给定一个没有重复数字的序列,返回其所有可能的全排列。解法很简单,画出树状结构,经典的dfs问题,代码如下。import java.util.ArrayList;import java.util.List;public class Solution { public static List<List<Integer&.

2021-01-06 23:26:25 625

原创 回溯算法的题型以及相应解题技巧

下面提供一些我做过的「回溯」算法的问题,以便大家学习和理解「回溯」算法。题型一:排列、组合、子集相关问题。提示:这部分练习可以帮助我们熟悉「回溯算法」的一些概念和通用的解题思路。解题的步骤是:先画图,再编码。去思考可以剪枝的条件, 为什么有的时候用 used 数组,有的时候设置搜索起点 begin 变量,理解状态变量设计的想法。全排列(中等)全排列 II(中等):思考为什么造成了重复,如何在搜索之前就判断这一支会产生重复;组合总和(中等)组合总和 II(中等)组合(中等)

2021-01-06 23:05:25 232

原创 01背包逆序为什么能优化空间复杂度

最近学习动态规划,看了背包九讲,对刚开始01背包的空间复杂度优化的问题,把一维dp优化为二维dp,为什么逆序就可以优化空间复杂度的问题,一开始没搞懂,看了几篇博客后,有一些个人的理解。原文章是这样写的:有 N 件物品和一个容量为 V 的背包。放入第 i 件物品耗费的费用是 Ci1,得到的价值是 Wi。求解将哪些物品装入背包可使价值总和最大。这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即 F[i, v] 表示前 i 件物品恰放入一个容量为 v 的背包可以获得的最.

2021-01-05 19:05:44 157

空空如也

空空如也

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

TA关注的人

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