自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Effective Java——第一条:用静态工厂方法代替构造器

总共讲述了静态工厂方法的五大优势和两个缺点优势1. 静态工厂方法有名称(用Boolean类来举例)java手册链接这是我常用的java手册,虽然有时候翻译很不好,但是看一些方法和属性很便捷上面两张图是Boolean类的构造方法和静态方法(返回值是Boolean的是其静态工厂方法),可以看到几点区别和相同点1.构造方法没有名称,静态工厂方法有名称2.构造方法和静态工厂方法返回的对象都是Boolean这时候就凸显了静态工厂的优点,我们可以通过名称看出来我们调用这个方法的要干嘛。2. 在

2021-04-16 17:43:20 256

原创 对Map排序涉及到Comparator的用法

Java语言利用Collections.sort对Map,List排序TreeMap排序Map<String, String> treeMap = new TreeMap<String, String>(new Comparator<String>() { public int compare(String o1, String o2) { // 升序排序 return o1.

2021-04-14 11:56:47 585

原创 springboot秒杀系统与架构(1)--建立工程

想记录一下这次整个工程的过程创建项目spring initializr添加依赖(主要是整理父工程的pom.xml)这是一个商品秒杀项目,技术栈 springboot+redis+RabbitMQ,先暂时添加这么多依赖,后面再添加其他需要的这是创建之后的工程,但是这个不行,应该是父工程、子工程,所以这个父工程最开始添加依赖也没有用,那需要在父工程做什么呢1、统一管理jar包的版本,其依赖需要在子工程中定义才有效2、统一的依赖管理3、控制插件的版本4、聚合工程POM关系

2021-04-10 20:04:19 169

原创 interceptor和filter的理解

Servlet是什么???servlet是一个接口,有五个方法,是一种规范servlet容器,比如Tomcat直接和request打交道,负责将request交给合适的servlet,比如DispatcherServlet,根据url负责mapping之类的。spring容器和Servlet容器?servlet容器,web容器,spring容器,springmvc容器的区别这个文章的意思就是request先到达servlet容器,servlet容器通过分发器分发到spring容器中,spr..

2021-04-03 22:22:43 108

原创 vue按钮不起作用

如果有一天你的按钮不起作用了,可能只是你的方法名和某些关键字重合了,哎

2020-11-22 21:41:02 2099

原创 优先队列的比较器

PriorityQueue<Map.Entry<Integer,Integer>> queue = new PriorityQueue<>(new Comparator<Map.Entry<Integer,Integer>>(){ @Override public int compare(Map.Entry<Integer,Integer> o1,Map.Entry<Integer.

2020-11-05 10:31:03 665

原创 LeetCode 347 前K个高频元素

class Solution { public int[] topKFrequent(int[] nums, int k) { HashMap<Integer,Integer> map = new HashMap<>(); PriorityQueue<Map.Entry<Integer,Integer>> queue = new PriorityQueue<>(new Comparator<Map.E.

2020-11-03 10:01:28 69

原创 LeetCode 394 字符串解码

1.class Solution { int index=0; public String decodeString(String s) { return analysis(s); } public String analysis(String s){ StringBuilder sb = new StringBuilder(); int num=0; String temp; while.

2020-11-01 12:10:37 142

原创 LeetCode 34 在排序数组中查找元素的第一个和最后一个位置

1.自己的解法,二分法,但是比较笨class Solution { public int[] searchRange(int[] nums, int target) { if(nums.length==0) return new int[]{-1,-1}; int left=0,right=nums.length-1; int[] res = new int[2]; while(left<right&&(nu

2020-10-20 11:23:38 62

原创 LeetCode 153 寻找旋转排序数组中的最小值

class Solution { public int findMin(int[] nums) { if(nums.length==1) return nums[0]; int left=0,right=nums.length-1; while(left<right){ int mid=(left+right)/2; if(nums[mid]<nums[right]){ .

2020-10-18 15:31:21 112

原创 java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present

ava.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117) ~[na:na] at java.base/sun.reflect.generics.visitor.Reifier.visitC.

2020-10-17 16:41:44 177

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

class Solution { public int search(int[] nums, int target) { if(nums.length==0) return 0; if(nums.length==1) return nums[0]==target?0:-1; int left=0,right=nums.length-1; while(left<=right){ int mid=(left+.

2020-10-17 16:24:23 71

原创 LeetCode 278 第一个错误的版本

public class Solution extends VersionControl { public int firstBadVersion(int n) { int left=1,right=n,mid; while(left<right){ mid=left+(right-left)/2; if(isBadVersion(mid)) right=mid; else left...

2020-10-16 11:28:29 57

原创 LeetCode 376 摆动序列

1.自己的解法class Solution { public int wiggleMaxLength(int[] nums) { if(nums.length==0) return 0; int count=1,up=1,down=1; for(int i=1;i<nums.length;i++){ if(nums[i]>nums[i-1]){ up=1;

2020-10-16 10:23:45 67

原创 LeetCode 75 颜色分类 283 移动零

1.双指针class Solution { public void sortColors(int[] nums) { int p0=0,p1=0; for(int i=0;i<nums.length;i++){ if(nums[i]==1){ int temp = nums[i]; nums[i] = nums[p1]; nums[p1]

2020-10-15 11:39:58 64

原创 LeetCode 228 汇总区间

class Solution { public List<String> summaryRanges(int[] nums) { List<String> res = new ArrayList<>(); if(nums.length==0) return res; int L=nums[0],R=nums[0],i; for(i=1;i<nums.length;i++){ ...

2020-10-14 10:27:39 67

原创 LeetCode 152 乘积最大子数组

1.动态规划数组class Solution { public int maxProduct(int[] nums) { int[][] dp = new int[nums.length][2]; dp[0][0]=nums[0]; dp[0][1]=nums[0]; for(int i=1;i<nums.length;i++){ if(nums[i]>=0){

2020-10-13 11:22:09 91

原创 LeetCode 238 除自身以外的数组乘积

1.左右乘积class Solution { public int[] productExceptSelf(int[] nums) { int n=nums.length,R=1; int[] res = new int[n]; res[0]=1; for(int i=1;i<n;i++){ res[i]=nums[i-1]*res[i-1]; } for(int i.

2020-10-12 10:35:16 71

原创 LeetCode 209 长度最小的子数组

1.题解 双指针class Solution { public int minSubArrayLen(int s, int[] nums) { int sum=0,start=0,end=0,max=Integer.MAX_VALUE; while(end<nums.length){ sum+=nums[end]; while(sum>=s){ max=Math.min(

2020-10-12 09:16:26 67

原创 LeetCode 53 最大子序和

1.贪心算法class Solution { public int maxSubArray(int[] nums) { int max=nums[0]; for(int i=1;i<nums.length;i++){ if(nums[i-1]>0) nums[i]+=nums[i-1]; max=Math.max(max,nums[i]); } return max;

2020-10-11 11:55:53 72

原创 LeetCode 239 滑动窗口最大值

1.暴露class Solution { public int[] maxSlidingWindow(int[] nums, int k) { int[] res = new int[nums.length-k+1]; if(nums.length==1||k==1) return nums; int n=0; for(int i=0;i<=nums.length-k;i++){ int max=nu

2020-10-11 11:48:20 51

原创 JavaWeb 为什么springboot查不出数据库的信息

因为我是初学,没用过这个springboot和通用mapper,没想到这个主键要自己加,我以为会自己识别哪个是主键,太天真了

2020-10-10 19:34:59 813

原创 LeetCode 56 合并区间

1.按首元素排序class Solution { public int[][] merge(int[][] intervals) { if(intervals.length==0) return new int[0][2]; Arrays.sort(intervals,new Comparator<int[]>(){ public int compare(int[] intervals1,int[] intervals2){

2020-10-10 11:48:16 76

原创 LeetCode 135 分发糖果

1.暴力解法class Solution { public int candy(int[] ratings) { int sum=0; int[] candies = new int[ratings.length]; Arrays.fill(candies,1); boolean flag=true; while(flag){ flag=false; for(int

2020-10-09 11:02:10 102

原创 LeetCode 287 寻找重复数

1.自己的做法class Solution { public int findDuplicate(int[] nums) { int i; for(i=0;i<nums.length;i++){ while(nums[i]!=i+1&&nums[i]!=nums[nums[i]-1]){ int temp=nums[i]; nums[i]=nums[te

2020-10-08 15:38:53 67

原创 LeetCode 164 最大间距

1.这个排序+比较class Solution { public int maximumGap(int[] nums) { if(nums.length<2) return 0; Arrays.sort(nums); int max=0; for(int i=1;i<nums.length;i++){ max=Math.max(max,nums[i]-nums[i-1]); }

2020-10-08 14:53:51 75

原创 LeetCode 334 递增的三元子序列

1.哎,出错了好多次class Solution { public int longestConsecutive(int[] nums) { if(nums.length==0) return 0; if(nums.length==1) return 1; Arrays.sort(nums); int max=0,pos=0,i,k=0; for(i=1;i<nums.length;i++){

2020-10-07 12:13:57 55

原创 LeetCode 334 递增的三元子序列

1.这个题看的题解class Solution { public boolean increasingTriplet(int[] nums) { if(nums.length<3) return false; int small=Integer.MAX_VALUE,mid=Integer.MAX_VALUE; for(int i=0;i<nums.length;i++){ if(nums[i]<small

2020-10-07 11:13:22 65

原创 LeetCode 42 接雨水

1.自己的解法class Solution { public int trap(int[] height) { if(height.length==0) return 0; int left=0,right=height.length-1,count=0,maxl=height[0],maxr=height[height.length-1]; while(left<right){ if(height[left]&lt

2020-10-06 11:21:57 59

原创 LeetCode 11 盛最多水的容器

1.双指针class Solution { public int maxArea(int[] height) { int left=0,right=height.length-1,max=0; while(left<right){ int count=(right-left)*Math.min(height[left],height[right]); max=Math.max(max,count);

2020-10-06 10:15:41 63

原创 LeetCode 714 买卖股票的最佳时机含手续费 + 309 最佳买卖股票时机含冷冻期

class Solution { public int maxProfit(int[] prices, int fee) { if(prices.length==0) return 0; int dp_i_0=0,dp_i_1=Integer.MIN_VALUE,temp; for(int i=0;i<prices.length;i++){ temp=dp_i_0; dp_i_0=Math.max(.

2020-10-05 16:41:58 65

原创 LeetCode 188 买卖股票的最佳时机|V

1.真的好烦了看见这个题,就其实是把“买卖股票的最佳时机III”的dp方法的k=2改为题上的k就OK但是,会报错,超内存然后,看了题解,一次交易由买入和卖出构成,至少需要两天。所以说有效的限制 k 应该不超过 n/2,如果超过,就没有约束作用了,相当于 k = +infinity。就是“买卖股票的最佳时机II”的情况 k=+无穷然后我就拼凑了两种方法在一起,也不知道其他大神怎么来的,但是这个系列把我折磨死了class Solution { public int maxP

2020-10-05 16:20:45 92

原创 LeetCode 123 买卖股票的最佳时机|||

1.根据前面两个题的动态规划思想做的class Solution { public int maxProfit(int[] prices) { if(prices.length==0) return 0; int[][][] dp = new int[prices.length][3][2]; for(int i=0;i<prices.length;i++){ for(int k=1;k<3;k++){ .

2020-10-05 16:02:33 55

原创 LeetCode 122 买卖股票的最佳时机||

1.自己的做法class Solution { public int maxProfit(int[] prices) { int out=0; for(int i=1;i<prices.length;i++){ if(prices[i]>prices[i-1]){ out+=prices[i]-prices[i-1]; } } return

2020-10-05 11:58:54 96

原创 LeetCode 121 买卖股票的最佳时机

1.自己的做法class Solution { public int maxProfit(int[] prices) { if(prices.length==0) return 0; int in=prices[0],out=0; for(int i=1;i<prices.length;i++){ if(prices[i]>in&&prices[i]-in>out){

2020-10-05 11:27:02 64

原创 LeetCode 45 跳跃游戏||

1.递归+贪心算法class Solution { public int jump(int[] nums) { if(nums.length==1) return 0; return cJ(nums,0,0); } public int cJ(int[] nums,int begin,int count){ if(begin+nums[begin]>=nums.length-1) return count+1;

2020-10-04 15:52:34 90

原创 LeetCode 55 跳跃游戏

1.自己的做法,递归class Solution { public boolean canJump(int[] nums) { return cJ(nums,0); } public boolean cJ(int[] nums,int begin){ int max=0,pos=begin; for(int i=begin+1;i<nums.length&&i<=begin+nums[begin];i+

2020-10-04 15:01:27 75

原创 LeetCode 220 存在重复元素|||

1.暴力class Solution { public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) { if(k==10000) return false; for(int i=0;i<nums.length;i++){ for(int j=i+1;j<nums.length&&j<=i+k;j++){ .

2020-10-03 16:22:00 63

原创 LeetCode 219 存在重复元素||

1.线性搜索class Solution { public boolean containsNearbyDuplicate(int[] nums, int k) { for(int i=0;i<nums.length;i++){ for(int j=i+1;j<nums.length&&j<=i+k;j++){ if(nums[i]==nums[j]) return true;

2020-10-03 13:44:46 52

原创 LeetCode 217 存在重复元素

1.第一种排序,循环class Solution { public boolean containsDuplicate(int[] nums) { Arrays.sort(nums); for(int i=1;i<nums.length;i++){ if(nums[i]==nums[i-1]){ return true; } } return f

2020-10-03 13:04:46 65

空空如也

空空如也

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

TA关注的人

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