自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mason97的博客

欢迎访问我的个人博客:http://118.126.90.35

  • 博客(344)
  • 收藏
  • 关注

原创 Enum

package Others.enumPractice02;/** * @Auther: Mason * @Date: 2021/05/04/10:39 * @Description: */public enum Color { RED("红色", 1), GREEN("绿色", 2); private String name; private int index; private Color(String name, int index) {

2021-05-04 10:46:57 194

原创 vscode go package总标红

2021-03-22 23:08:28 2139

原创 尚硅谷2020最新版宋红康JVM教程更新至中篇(java虚拟机详解,jvm从入门到精通)

1

2021-02-02 15:01:51 1303 1

原创 Kruskal算法 | 最小生成树

按照边权值从小到大排列:依次回填,如果没有形成环,就会被选中。如果形成了环,就舍弃【用并查集进行判断】直到选中了n-1个边,结束。

2021-01-20 09:49:57 171

原创 Integer 不能用 == 进行比较【比较的是地址】

这样就是对的如果用 != 就是错的;找了半天bug,以后注意

2021-01-19 17:48:05 399

原创 厄拉多塞筛法 | 找质数的方法

筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。...

2020-12-03 11:08:10 345

原创 Head First 设计模式 读书笔记

1. 策略模式例子:一个鸭子类的飞翔行为:不能飞;正常飞;火箭助推…(都实现飞翔接口)。我们在鸭子类中增加一个飞翔行为对象。通过设置具体鸭子(继承于鸭子类)的飞翔行为对象,描述它的具体飞翔方式定义:定义算法族,封装起来,可以相互替换,让算法的变化独立于使用算法的客户。2. 观察者模式...

2020-11-08 16:58:41 136

原创 java中protected访问权限修饰符

我在一个包中创建一个类在另外一个包中:不能访问但是另外包的子类可以访问

2020-10-09 00:01:40 113

原创 【leetcode】78. 子集

用动态规划:/** * @Auther: Mason * @Date: 2020/09/20/8:13 * @Description: *//*给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。用动态规划的方法进行解题。 */class Solution { public static void main(String[] args) { Solution s = new Solution(); .

2020-09-20 08:55:32 112

原创 Callable Future FutureTask

Callable接口只有一个call方法Future接口有get等方法FutureTask类实现了RunnableFuture接口RunnableFuture接口继承了Runnable和Future总之:Runnable可以想象成一个没有参数和返回值的异步方法,Callable与Runnable类似,但是有返回值。 public static void main(String[] args) throws InterruptedException, ExecutionException {

2020-09-19 14:53:26 100

原创 【leetcode】两数之和;三数之和;四数之和

两数之和可以排序,然后双指针;也可以用hashmap,记录数字和序号。遍历。三数之和升序排列,然后用三指针。第一个指针遍历。第二个指针遍历。第三个指针从后往前走。四数之和升序排列,用四指针。其实就是四层遍历。/** * @Auther: Mason * @Date: 2020/09/15/7:56 * @Description: */class Solution { public static void main(String[] args) { Soluti

2020-09-15 08:44:11 104

原创 【leetcode】77. 组合

我用的方法是 搜索回溯的方法。/** * @Auther: Mason * @Date: 2020/09/08/8:12 * @Description: */class Solution { public static void main(String[] args) { Solution s = new Solution(); List<List<Integer>> list = s.combine(4, 2); .

2020-09-08 09:02:44 135

原创 将Integer List 转换为int数组、将Integer Set转换为int数组

https://blog.csdn.net/gloriaied/article/details/103970729

2020-09-07 08:09:20 1471

原创 java简单日志

info日志:关闭日志:可以设置的显示等级:

2020-09-06 15:05:05 102

原创 printStackTrace 方法【打印方法栈轨迹】

public class Demo01 { public void method() { int[] arr = new int[2]; try { int a = arr[5]; } catch (Exception e) { e.printStackTrace(); } } public void method2() { method(); }

2020-09-06 14:45:28 2193

原创 finally 遮蔽返回值 甚至吞掉异常

public class Demo01 { public int method(){ int[] arr = new int[2]; try{ int a = arr[5]; }finally { return 999; } } public static void main(String[] args) { Demo01 d = new Demo01()

2020-09-06 11:12:41 148

原创 List<Integer> 转为 int[]

// List<Integer> 转 int[]int[] intArray2 = listInteger1.stream() //先把List<Integer>转成Stream<Integer> .mapToInt(Integer::valueOf) //把Stream<Integer>转成IntStream .toArray();

2020-09-04 08:37:53 575

原创 【LeetCode】486. 预测赢家

自己没有做出来,看了官方的解答,我用dp[i][j]表示,作为先手,数组的起止坐标为i和j,自己获得的积分和对手获取积分差值的最大值。有状态转移方程:dp[i][j] = max{nums[i]-dp[i+1][j], nums[j]-dp[i][j-1]},用动态规划的方式来解决这道题目。/** * @Auther: Mason * @Date: 2020/09/01/8:15 * @Description: */// [1,5,233,7] 并不是拿最大的就好。比如我先拿1,你不管拿哪.

2020-09-01 19:44:04 172

原创 final 修饰 成员变量 【修饰基本类型、不可变类、可变类】【内存地址不变而已】

必须在构造函数中初始化,并且以后“不能修改”修饰基本类型、不可变类没啥说的如果修饰可变类,比如int[],只是不能使其指向另外一个对象,而这个对象本身是可以修改的。换句话说,指针(内存地址)不变,但是指向的内容是可以进行修改的public class Person { private final int[] arr; public Person(int[] arr) { this.arr = arr; } public void setArr()

2020-08-29 19:22:08 302

原创 一个类的方法可以访问所属类的所有对象的私有数据

一个person类:public class Person implements Cloneable { private String name; public Person(String name) { this.name = name; } public void method(Person p) { p.name = "haha"; } public String getName() { retur

2020-08-29 19:18:05 657

原创 clone方法

clone会创建一个新的对象去引用,而不是共享一块内存/** * @Auther: Mason * @Date: 2020/08/29/18:00 * @Description: */public class Person implements Cloneable { String name; public Person(String name) { this.name = name; } public static void main(St

2020-08-29 18:05:49 188

原创 【leetcode】79. 单词搜索

搜索回溯/** * @Auther: Mason * @Date: 2020/08/25/20:30 * @Description: */class Solution { public boolean exist(char[][] board, String word) { // 我的思路是,建立一个map,key是字母,value是list,list中存储坐标值。 // 这样,当给一个word时,我就知道打头的坐标了。然后遍历word余下的字母。看是.

2020-08-25 21:12:05 112

原创 【leetcode】201. 数字范围按位与【先转化;然后是一道数学题目】

先转化问题,就是求出 m和n两个数字的公共二进制前缀是多少。可以利用 n&(n-1) 去除最右面的1来求出结果。class Solution { public int rangeBitwiseAnd(int m, int n) { // 思路是 找到 m 和 n 的公共前缀。就是结果。 // 方法一:同时右移,直到相等。然后恢复。 // 方法二:利用 n&(n-1) 能够 去除 最右位的 1,处理n,直到n<=m 就是结果.

2020-08-23 09:44:01 111

原创 docker

镜像是静态的定义,容器是镜像运行时的实体仓库用来保存镜像我们需要确认容器有在运行,可以通过 docker ps 来查看输入 docker 命令来查看到 Docker 客户端的所有命令选项获取镜像:查看所有的容器:docker ps -a使用 docker start 启动一个已停止的容器:==docker start b750bbbcfd88 ==停止一个容器:$ docker stop <容器 ID>停止的容器可以通过 docker restart 重启:$ dock.

2020-08-10 20:11:38 110

原创 206. 反转链表【cpp】

class Solution{public: ListNode *reverseList(ListNode *head) { ListNode *myHead = nullptr; while (head != nullptr) { ListNode *tmp = head->next; head->next = myHead; myHead = head.

2020-08-06 17:35:55 172

原创 1. 两数之和【cpp】

第一版:class Solution{public: vector<int> twoSum(vector<int> &nums, int target) { vector<int> res; map<int, int> myMap; for (int i = 0; i < nums.size(); i++) { if (myMap.fi

2020-08-06 17:07:14 216

原创 智能指针

内存泄露:第一次new的int就会发生内存泄露。(无用,但是占据内存)#include <iostream>using namespace std;int main(){ int *pTemp = new int(); cout << pTemp << endl; // 0x613c20 *pTemp = 1; pTemp = new int(); delete pTemp; cout << pT

2020-08-05 17:44:18 138

原创 vim 配置环境变量

2020-08-04 15:48:56 922

原创 BIO NIO AIO Netty 同步 异步 阻塞 非阻塞

目录1. BIO1.1 bio的服务端:1.2 bio的客户端:1.3 bio总结:2. 单线程NIO2.1 服务器端代码:2.2 总结单线程NIO3. 多线程NIO3.1 概念4. AIO4.1 代码4.2 AIO理解4.3 NIO AIO Netty 三者的关系5. Netty6. 同步 异步 阻塞 非阻塞7. 参考1. BIO1.1 bio的服务端:public class Server { public static void main(String[] args) throws IO

2020-07-29 12:07:24 206

原创 【LeetCode】6. Z 字形变换

思路一:计算下标序号。/** * @Auther: Mason * @Date: 2020/07/23/15:35 * @Description: *//*将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N之后,你的输出需要从左往右逐行读取,产生出一.

2020-07-23 18:11:23 122

原创 【LeetCode】33. 搜索旋转排序数组

就是二分查找的思路。稍加变式而已。/** * @Auther: Mason * @Date: 2020/07/23/9:45 * @Description: *//*假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。 */.

2020-07-23 11:06:07 147

原创 Jedis 事务操作

package com.mason;import com.alibaba.fastjson.JSONObject;import redis.clients.jedis.Jedis;import redis.clients.jedis.Transaction;/** * @Auther: Mason * @Date: 2020/07/22/17:13 * @Description: */public class TestTX { public static void main(S

2020-07-22 17:23:25 161

原创 【LeetCode】剑指 Offer 11. 旋转数组的最小数字

思路一遍历。复杂度为O(n)/** * @Auther: Mason * @Date: 2020/07/22/9:04 * @Description: */public class Solution { public int minArray(int[] numbers) { int len = numbers.length; if (len == 1) return numbers[0]; // 如果第一个数小于最后一个数,肯定第一.

2020-07-22 09:50:13 111

原创 redis 事务 乐观锁

模拟两个线程,数字是执行顺序。发现由于右边线程的参与。左边线程受到了影响。用watch命令 监视money 相当于乐观锁。在执行的时候,看看有没有人修改了这个值,没有的话,执行;被修改了的话,执行失败。...

2020-07-21 17:27:09 115

原创 【LeetCode】95. 不同的二叉搜索树 II

/** * @Auther: Mason * @Date: 2020/07/21/9:21 * @Description: */// 输入一个正整数n// 输出以1,2,3....n 为节点的二叉搜索树。// 左边的结点都小于根节点,右边的结点都大于根节点。public class Solution { public List<TreeNode> generateTrees(int n) { if (n == 0) return new LinkedL.

2020-07-21 10:17:05 87

原创 【LeetCode】1362. 最接近的因数

思路一我找出所有的相乘等于num+1或者num+2的 两个数。更新他们的距离。从而获得最终的结果。/** * @Auther: Mason * @Date: 2020/07/20/15:24 * @Description: */public class Solution { public int[] closestDivisors(int num) { int[] res = new int[2]; double range = Math.sqrt(.

2020-07-20 15:58:18 201

原创 【LeetCode】55. 跳跃游戏

第一种思路:使用深度优先遍历的方法。假设第一个数为3。我就去序号为3的位置。。。。,去序号为2的位置。。。,去序号为1的位置。。。 最后看看 能不能到最后一个位置。结果速度很慢。/** * @Auther: Mason * @Date: 2020/07/20/10:02 * @Description: */// 仍然是一道 深度优先遍历的题目。public class Solution { boolean[] mark; public boolean canJum.

2020-07-20 13:49:46 93

原创 【LeetCode】841. 钥匙和房间

思路:深度优先遍历即可。/** * @Auther: Mason * @Date: 2020/07/20/9:28 * @Description: */public class Solution { public int count; // 计数有几个房间现在可以打开 public boolean[] mark; // 标记某个房间是否可以被打开。 public int size; // 屋子的总个数。 public boolean canVisitAl.

2020-07-20 09:38:56 103

原创 【LeetCode】494. 目标和

第一种思路:全部遍历。复杂度为O(2^n)/** * @Auther: Mason * @Date: 2020/07/15/11:14 * @Description: */public class Solution { private int res = 0; public int findTargetSumWays(int[] nums, int S) { // 给定一个非负整数数组 // 对于数组中的任意一个整数,你都可以从 + 或 -中.

2020-07-15 16:01:59 139

原创 【LeetCode】560. 和为K的子数组

思路一:双层循环复杂度为O(n^2),复杂度比较高。/** * @Auther: Mason * @Date: 2020/07/15/10:10 * @Description: */public class Solution { // 找到该数组中和为 k 的连续的子数组的个数 // 直观的想法是,两层循环。第一层循环遍历 子数组的起始位置。 // 第二层循环遍历 子数组的中止位置。 public int subarraySum(int[] nums, in.

2020-07-15 10:56:25 139

空空如也

空空如也

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

TA关注的人

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