自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode 329. 矩阵中的最长递增路径

package leetcode;/** * 329. 矩阵中的最长递增路径 * 给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 * <p> * 对于每个单元格,你可以往上,下,左,右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。 * <p> * <p> * <p> * 示例 1: * <p> * <p> * 输入:matrix = [[9.

2021-04-21 22:55:58 261 1

原创 leetcode 494. 目标和 三种方法 暴力递归 缓存 优化算法

package leetcode;import java.util.HashMap;/** * 494. 目标和 * 给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。 * <p> * 返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 * <p> * <p> * <p> * 示例: * <p.

2021-04-21 21:37:43 168

原创 leetcode 961. 重复 N 次的元素

package Algorithms;import java.util.HashMap;import java.util.Map;/*** 961. 重复 N 次的元素* 在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。* <p>* 返回重复了 N 次的那个元素。* <p>* <p>* <p>* 示例 1:* <p>* 输入:[1,2,3,3]* 输出:3...

2021-04-14 09:24:24 148

原创 leetcode 260. 只出现一次的数字 III

package leetcode;/** * 260. 只出现一次的数字 III * 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 * <p> * <p> * <p> * 进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现? * <p> * <p> * <p> * 示例 1: * <p&.

2021-04-13 22:52:12 111

原创 leetcode 137. 只出现一次的数字 II

package leetcode;/** * 137. 只出现一次的数字 II * 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 * * 说明: * * 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? * * 示例 1: * * 输入: [2,2,3,2] * 输出: 3 * 示例 2: * * 输入: [0,1,0,1,0,1,99] * 输出: 99 * 通过次数55,746提交次数81,.

2021-04-13 22:19:05 185

原创 leetcode 136. 只出现一次的数字

package leetcode;/** * 136. 只出现一次的数字 * 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 * * 说明: * * 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? * * 示例 1: * * 输入: [2,2,1] * 输出: 1 * 示例 2: * * 输入: [4,1,2,1,2] * 输出: 4 * 通过次数376,723提交次数528,896 */pu.

2021-04-13 21:44:29 92

原创 leetcode 590 N 叉树的后序遍历

package Algorithms;import java.util.*;/*** 590. N 叉树的后序遍历* 给定一个 N 叉树,返回其节点值的 后序遍历 。* <p>* N 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。* <p>* <p>* <p>* 进阶:* <p>* 递归法很简单,你可以使用迭代法完成此题吗?* <p>* &...

2021-04-13 17:02:23 75

转载 RabbitMQ的消息确认ACK机制

RabbitMQ的消息确认ACK机制1、什么是消息确认ACK。  答:如果在处理消息的过程中,消费者的服务器在处理消息的时候出现异常,那么可能这条正在处理的消息就没有完成消息消费,数据就会丢失。为了确保数据不会丢失,RabbitMQ支持消息确定-ACK。2、ACK的消息确认机制。  答:ACK机制是消费者从RabbitMQ收到消息并处理完成后,反馈给RabbitMQ,RabbitMQ收到反馈后才将此消息从队列中删除。    如果一个消费者在处理消息出现了网络不稳定、服务器异常等现象,那么

2020-10-21 15:04:07 857 3

转载 IDEA 调试技巧,比 Eclipse 强太多了!

idea 高级调试技巧两年前写过一篇关于idea的高级用法,今天再来一篇关于调试方面的技巧讲解:一、条件断点循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值。参考上图,在断点的位置,右击断点旁边的小红点,会出来一个界面,在Condition这里填入断点条件即可,这样调试时,就会自动停在i=10的位置二、回到"上一步"该技巧最适合特别复杂的方法套方法的场景,好不容易跑起来,一不小心手一抖,断点过去了,想回过头看看刚才的变量值,如果不知道...

2020-10-13 11:30:55 118

原创 脱敏

package Sensitive;import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;import com.fasterxml.jackson.databind.annotation.JsonSerialize;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;@Retention(Retention

2020-09-24 17:25:08 267

原创 EXCEL 加入水印 亲测可用

import lombok.Data;import org.apache.commons.lang3.StringUtils;import java.awt.*;import java.awt.image.BufferedImage;import java.util.Date;public class FontImage { public static BufferedImage createBufferedImage(String name, Font font, int i, i..

2020-09-24 17:21:15 925

原创 自定义注解--测试方法消耗的时间

切面类:package com.taikang.pension.mall.aspect;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.Aspec...

2020-03-16 19:34:02 262

原创 无重复字符的最长子串

package leetcode;import java.util.HashMap;import java.util.Map;/** * 3. 无重复字符的最长子串 * 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 * * 示例 1: * * 输入: "abcabcbb" * 输出: 3 * 解释: 因为无重复字符的最长子串是 "abc",所以其长度...

2020-02-26 21:52:58 187 1

原创 模板方法模式

既然用了继承,并且肯定这个继承有意义,就应该要称为子类的模板。所有重要的代码都应该要上升到父类去。而不是让每个子类都去重复。当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定...

2019-09-26 08:23:06 94

原创 原型模式(未完成)

原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个/** * @Author: subd * @Date: 2019/9/19 8:27 * 原型模式 */public class PrototypeModel { /** * 原型类 */ static abstract c...

2019-09-19 08:48:52 107

原创 代理模式

代理模式:为其他对象提供一种代理以控制对这个对象的访问。代理模式适合的场合:1.远程代理:也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。2.虚拟代理:是根据需要创建开销很大的对象。通过它来存放实例化需要很长的时间的真实对象。3.安全代理:用来控制真实对象访问时的权限。4.智能指引:是指当调用真实的对象是,代理处理另外一些事。/...

2019-09-18 08:29:06 113

原创 装饰模式

动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式生成的子类更为灵活。装饰模式是为已有功能动态添加更多功能的一种方式。/** * @Author: subd * @Date: 2019/9/17 8:15 * 装饰模式 */public class DecorationMode { public static abstract class Component...

2019-09-17 08:49:18 132

原创 依赖倒转原则

依赖倒转原则(依赖倒置原则):抽象不应该依赖细节,细节应该依赖抽象,针对接口编程,不要对实现编程。依赖倒转原则:A高层模块不应该依赖低层模块。两个都应该依赖抽象。 B抽象不应该依赖细节。细节应该依赖抽象。里氏代换原则:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出来父类对象和子类对象的区别。也就是说,在软件...

2019-09-16 07:30:17 312

原创 耗子叔ARTS:第二十一周

Algorithm:/** * @Author: subd * @Date: 2019/9/15 11:15 * 9. Palindrome Number */public class Palindrome { /** * 9. Palindrome Number * Determine whether an integer is a palindrom...

2019-09-15 12:04:05 1081

原创 开放-封闭原则(The Open-Cloased Principle)

开放-封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。开放-封闭原则有两个特征:1、对于扩展是开放的.2、对于更改是封闭的怎样的设计才能面对需求的改变却可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新的版本呢?开放封闭原则可以给出答案。无论模块是多么的‘封闭’,都会存在一些无法对之封闭的变化。既不可能完全封闭,设计人员必须对于他设计的模块...

2019-09-12 07:36:53 360

原创 单一职责原则

单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离【ASD】,如果你能够想到多余一个的动机去改变一个类,那么这个类就具有多于一个的职责【ASD】。...

2019-09-12 07:16:33 77

原创 策略模式

** * @Author: subd * @Date: 2019/9/11 8:08 * 策略模式 */public class StrategyMode { /** * 现金收费抽象类 */ public static abstract class CashSuper { public abstract double acceptC...

2019-09-11 09:12:28 184

原创 删去k个数字后的最小值

给出一个整数,从该整数中去掉k个数字,要求剩下的数字形成的新整数尽可能小。应该如何选取被去掉的数字?/** * @Author: subd * @Date: 2019/9/10 7:48 * 删去k个数字后的最小值 */public class RemoveKDigits { public static String removeRemoveKDigits(String n...

2019-09-10 08:02:49 382

原创 判断一个数是否为2的整数次幂?

public static boolean isPowerof2(int num){ return (num&num-1)==0;}

2019-09-10 07:45:05 135

原创 全排列的下一个数

给出一个正整数,找出这个正整数所有数字全排列的下一个数。说通俗点就是在一个整数所包含数字的全部组合中,找到一个大于且仅大于原数的新整数。举几个例子:如果输入12345,则返回12354。如果输入12354,则返回12435。如果输入12435,则返回12453。获取全排列下一个数的3个步骤。1.从后向前查看逆序区域,找到逆序区域的前一位,也就是数字置换的边界。2.让...

2019-09-09 08:20:41 513

原创 大整数相加

给出两个很大的整数,要求实现程序求出两个整数之和。/** * @Author: subd * @Date: 2019/9/6 7:39 * 两个大整数相加 */public class BigNumberSum { public static String bigNumberSum(String bigNumberA, String bigNumberB) { ...

2019-09-06 07:58:12 349

原创 耗子叔ARTS:第二十周

Algorithm:/** * 7. Reverse Integer * Given a 32-bit signed integer, reverse digits of an integer. * <p> * Example 1: * <p> * Input: 123 * Output: 321 * Example 2: * <p> ...

2019-09-05 17:57:29 225

原创 用栈实现队列

/** * @Author: subd * @Date: 2019/9/5 8:38 * 用栈来实现队列 */public class StackImplementQueue { private Stack<Integer> stackA = new Stack<>(); private Stack<Integer> stackB =...

2019-09-05 08:48:34 109

原创 无序数组排序后的最大相邻差

有一个无须整形数组,如何求出该数组排序后的任意两个相邻元素的最大差值?要求时间和空间复杂度尽可能低。package Algorithm;/** * @Author: subd * @Date: 2019/9/5 8:05 * 无序数组排序后的最大相邻差 */public class MaxSortedDistance { public static void main(...

2019-09-05 08:23:56 308 3

原创 如何判断单向链表有环

有一个单向链表,链表中可能出现“环”,那么,如何用程序来判断该链表是否为有环链表呢?/** * @Author: subd * @Date: 2019/9/4 7:02 */public class SingleLinkNode { /** * 链表节点 */ private static class Node { int data...

2019-09-04 07:12:43 433

原创 耗子叔ARTS:第十九周

Algorithm:/** * 3. Longest Substring Without Repeating Characters * Given a string, find the length of the longest substring without repeating characters. * Example 1: * <p> * Input: "ab...

2019-09-03 16:02:56 208

原创 金矿问题

很久很久以前,有一位国王有5座金矿,每座金矿的黄金储量不同,需要参加挖掘的工人人数也不同。例如有的金矿储量是500Kg黄金,需要5个人来挖掘。有的金矿储量是200Kg。需要三个人来挖掘。如果参与挖矿的工人总数是10.每座金矿要么全挖,要么不挖。不能派出一半人挖取一半的金矿。要求用程序求出,要想得到尽可能多的黄金,应该选择挖取哪几座金矿?以下为可选条件:共10人 200Kg/3人 ...

2019-09-03 08:37:20 398

原创 求最大公约数

/** * @Author: subd * @Date: 2019/9/2 7:54 * 求最大公约数 */public class GreatestCommonDivisor { /** * 暴力枚举法 */ public static long getGreatestCommonDivisor(long a, long b) { ...

2019-09-02 08:29:42 271

原创 Bitmap算法

Bitmap 代码示例、/** * @Author: subd * @Date: 2019/8/30 7:41 * 位图算法 */public class MyBitmap { //每个word是一个long类型元素,对应一个64位的二进制数据 private long[] words; private int size; public MyBit...

2019-08-30 08:01:32 123

原创 A星寻路算法

以估值高低来决定搜索优先次序的方法,被称为启发式搜索。代码示例:/** * @Author: subd * @Date: 2019/8/29 7:38 */public class ASearch { //迷宫地图 public static final int[][] MAZE = { {0, 0, 0, 0, 0, 0, 0}, ...

2019-08-29 08:34:01 722

原创 LRU(末位淘汰)算法

/** * @Author: subd * @Date: 2019/8/28 8:22 * LRU * 末尾淘汰算法 线程不安全 * 手写linkedHashMap 进行书写 */public class LRU { private Node head; private Node end; //缓存上限设置 private int limit; ...

2019-08-28 08:56:28 659

原创 简单工厂模式

/** * @Author: subd * @Date: 2019/8/28 7:49 * 简单工程模式 */public class SimpleFactoryModel { /** * 运算类 */ public static class Operation { private double a = 0; priv...

2019-08-28 08:09:12 139

原创 耗子叔ARTS:第十八周

Algorithm:/** * 3. Longest Substring Without Repeating Characters * Given a string, find the length of the longest substring without repeating characters. * Example 1: * <p> * Input: "ab...

2019-08-27 10:53:32 166

原创 桶排序

桶排序是一种线性时间的排序算法。类似于计数排序所创建的统计数组,桶排序需要创建若干个桶来协助排序。代码示例:/** * @Author: subd * @Date: 2019/8/27 7:29 * 桶排序 */public class BuketSort { public static void main(String[] args) { double...

2019-08-27 07:57:45 392

原创 计数排序

线性排序初步代码实现:不稳定排序/** * @Author: subd * @Date: 2019/8/26 7:26 * @descrition 计数排序 */public class CountSort { public static int[] countSort(int[] array) { //1.得到数列的最大值 int ma...

2019-08-26 07:50:17 930

空空如也

空空如也

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

TA关注的人

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