- 博客(56)
- 问答 (1)
- 收藏
- 关注
原创 国庆节也来刷刷题!力扣:148. 排序链表
题目:力扣题目要求nlgn的时间复杂度完成排序。那么时间复杂度为nlgn的排序算法大概有三种:1.快排2.堆排3.归并快排不怎么合适,需要不停地交换结点,而且还需要维护双指针,可能不太合适堆排更不太合适了,也依赖于数组归并虽然也依赖于数组,但是依赖性没那么大,是一种分治的思想自顶向下:public class Solution1 { public ListNode sortList(ListNode head) { if (head =
2021-10-02 17:22:51 184
原创 力扣:146. LRU 缓存机制
题目转载自:力扣https://leetcode-cn.com/problems/lru-cache/解答:public class LRUCache { class CacheNode { Integer key; Integer value; CacheNode prePointer; CacheNode nextPointer; public CacheNode(Integer key, .
2021-09-18 12:52:52 219
原创 力扣:142. 环形链表 II
题目转载自:力扣分析:这一题题目要求使用O(1)的时间复杂度来解。然后大概有两种解法来做,下面分别来介绍一下:首先判断链表是否有环,如果有环的话,先将指针定位到环内(可以通过快慢指针来将两个指针在环内相遇,这样就能定位到环内的结点了)。在拿到环内结点的情况下有以下两种方法来解题:1.因为是一个环,所以我们可以分别指向环内的每个点,然后在确定了环内固定点之后这里用P1代表环内的固定点,声明一个指针指向链表头部这里用P2代表头结点,然后P2移动每次前移一步,P1不动,用一个整型变量.
2021-09-17 14:31:04 194
原创 力扣:96. 不同的二叉搜索树
初拿到这题时,很自然的就想到用递归来做。然后就有了下面的解法,最终执行没问题,只是超时了,明天优化一下。public class Solution { public int numTrees(int n) { if (n == 1) { return 1; } int res = 0; for (int i = 1; i <= n; i++) { // 把 i 当成...
2021-09-08 00:05:32 173
原创 力扣76:最小覆盖子串 深夜和刷题很配~
题目描述:https://leetcode-cn.com/problems/minimum-window-substring/public class Solution1 { public String minWindow(String s, String t) { if (s.equals(t)) { return s; } // s 字符串 t 目标串 Map<String, Integ
2021-09-01 01:36:35 116
原创 力扣62题:不同路径
题目转载自:https://leetcode-cn.com/problems/unique-paths/(如有侵权,将会删除)分析:刚看到题目的时候,内心os:这不就用回溯就可以做了吗,简单!然后就有了下面的代码:package lc.lc62;public class FirstSolution { public int uniquePaths(int m, int n) { if (m == n && m == 1) { ...
2021-08-17 17:36:03 169
原创 力扣:49.字母异位词分组
数据库一般有两个术语:1.数据库文件指的是数据库数据保存的文件2.数据库实例指的是用于处理数据库文件的进程,mysql为单进程多线程模型。mysql实例在操作系统中的表现就是一个实例。Mysql的组成部分:连接池组件管理服务和工具组件SQL接口组件查询分析器组件优化器组件缓冲组件插件式存储引擎物理文件...
2021-08-14 14:34:46 277
原创 力扣46.全排列
注:题目转载自leetcode,https://leetcode-cn.com/problems/permutations/dfs:package lc.lc46;import java.util.ArrayList;import java.util.List;public class FirstSolution { public List<List<Integer>> permute(int[] nums) { if (nums ==..
2021-08-12 20:53:13 111
原创 力扣42题:接雨水
给定n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9来源:力扣(LeetCode)链接:https://leetcode-...
2021-08-11 23:20:30 283
原创 剑指offer-20题
很久没写了。。废话不多说,写吧。题目描述:代码:public class Design { public static boolean isNumeric(String str) { if (str == null || str.isEmpty()) { return false; } char stage = 'a'; int len = str.length(); boo
2021-03-22 23:36:19 111
原创 剑指offer-19题
最近比较忙(忙个鬼),所以好几天没刷题,还是要勤奋~来张吃火锅拍的照片,辣椒粉看的很过瘾,有木有~题目描述:代码:public class Design { public static boolean match(String str, String pattern) { if (str.isEmpty() || pattern.isEmpty()) { return false; } return m
2021-03-03 00:56:59 180 2
原创 剑指offer-18题
上篇博客里,还说,每天至少一道题,看来我食盐了- -。反正,这又不是我第一次食盐,嘿嘿嘿。题目描述:代码:class ListNode { int val; ListNode next; public ListNode(int val, ListNode next) { this.val = val; this.next = next; }}public class Design { public stat
2021-02-24 01:02:56 131
原创 剑指offer-17题
很久没做题了,堕落了。给自己订个计划,尽量每天做一题力扣或者一道剑指offer的题目。题目描述:代码:public class Design { /** * 全排列递归法 * @param n */ public static void print1ToMaxOfNDigits(int n) { if (n <= 0) { return; } char[] num
2021-02-21 16:03:45 212 2
原创 剑指offer-16题
题目描述:代码:public class Design { static double PowerWithExponent(double base, int exponent) { // base为0的处理 if (base == 0) { if (exponent < 0) { return 0; } else { return 1;
2021-02-13 10:07:09 129 2
原创 剑指offer-15题
又是一年过年时,好几天没做题了,今天做一下吧,不能颓废。题目描述:代码:public class Design { public static int numberOfOne(int num) { int count = 0; int flag = 1; while (flag != 0) { if ((num & flag) != 0) { count++; .
2021-02-09 16:59:21 143 1
原创 一些比较容易搞混的java概念
关于java函数传参的问题:两种参数方式:1.非对象2.对象对于第一种传参,就直接传一个值的拷贝即可低于第二种传参,就是传对象的地址的副本拷贝即可看一个例子:class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int val, TreeNode left, TreeNode right) { t
2021-02-07 21:08:01 135 1
原创 剑指offer-位运算示例题
题目描述:在微软产品Excel中,用A表示第1列,B表示第2列...,Z表示第26列,AA表示第27列,AB表示第28列...以此类推。 现在给你一个数,输出它的列编码解答:(26进制转换题,需要注意的是这里没有0这个数字了)public class DesignExtra { private static final Integer HEX = 26; private static final Character BEGIN = (char) ('A' - 1);..
2021-02-07 10:22:56 118
原创 剑指offer-14题
前两天有点小事情,所以就断更了两天,其实还是懒。今天来继续刷刷剑指offer吧。今天需要用到的知识点是动态规划跟贪心算法。首先能用动态规划来解决的问题一般有如下四个特点:1.问题的目的是求最优解。2.问题可以被拆分位若干个小问题,整体的最优解依赖其子问题的最优解,也可以说整体最优解可以由子问题的最优解组合得来。3.大问题可以被拆分为若干个子问题,子问题之间还有重叠的子问题。4.由于有共同的子问题,那么在求大问题最优解的时候可以从上往下分析,求解的时候可以从下往上求解,可以复用子问
2021-02-06 21:31:58 117
原创 剑指offer-13题
又是忙碌的一天过去了(太虚伪了,好像并不忙),回来先把衣服洗一洗。然后做一下题目吧,接着昨天的开始做,今天要做第13题了。首先是,题目描述:然后是解法(还是DFS):public class Design { public static int movingCount(int m, int n, int k) { boolean[][] visited = new boolean[m][n]; return deepMoveFirst(m, n,
2021-02-02 22:52:34 165
原创 剑指offer-12题
今天下班回到住的地方还算早,九点多一丢丢就到住的地方了,然后趁机洗了个香香,整个人神清气爽。然后打开电脑,想着还是写一道题吧,那就剑指offer从昨天的地方接着看吧。OK,第12题,是一道回溯法相关的题,一般也都是用dfs深度优先遍历来解题的。题目描述:代码:public class Design { public static boolean hasPath(char[][] matrix, String str) { int len = matrix.len
2021-02-02 00:03:23 121
原创 剑指offer-11题
由于工作比较忙,就趁着工作间隙刷刷剑指offer和leetcode吧。尽量每天打卡题目描述:题目解答:public class Design { public static int getMinNumFromNums(int[] nums) { if (nums == null || nums.length == 0) { return Integer.MIN_VALUE; } int begin = 0;.
2021-01-31 22:59:38 105
原创 【java多线程】线程模型中的waiting跟blocked有何区别?
这张图描述的比较正确,java同步的方法常用的有两种,一种是synchronized关键字,另一种是Lock类。在去获取synchronized的锁时,线程往往会经历一个Blocked的阶段。同样,在使用Lock的时候,线程可以主动将自己waiting起来,那么稍后可以由其他线程notify唤醒,这个时候仅仅是通知该线程它可以重新去竞争锁了,所以也很有可能会经历一个Blocked的阶段。所以Waiting跟Blocked是有着紧密关联的。...
2021-01-24 22:33:58 350
原创 leetcode617.合并二叉树
class Solution { public TreeNode mergeTrees(TreeNode t1, TreeNode t2) { TreeNode node = DFS(null, t1, t2, 0); return node; } public TreeNode DFS(TreeNode res, TreeNode resChild, TreeNode followChild, int leftOrRightFlag) { .
2020-12-26 13:38:32 113 3
转载 【转载】理解spark闭包
转载自https://blog.csdn.net/liangyihuai/article/details/56840473什么叫闭包: 跨作用域访问函数变量。又指的一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。Spark闭包的问题引出:在spark中实现统计List(1,2,3)的和。如果使用下面的代码,程序打印的结果不是6,而...
2020-02-11 22:21:48 182
转载 【转载】分布式系统为何不能同时满足CAP?
前两天看到其他博主写的一篇文章,写的很好,就把那位博主的文章转过来吧~以下文字均摘自于https://blog.csdn.net/yeyazhishang/article/details/80758354在弄清楚这个问题之前,我们先了解一下什么是分布式的CAP定理。根据百度百科的定义,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availab...
2019-11-07 12:01:54 633
原创 更快的求幂方法
利用幂的性质:public class P10e1 { public static long myPow(long num,long n){ if(n==0){ return 1; } if(n==1){ return num; } long ans=1...
2019-10-06 01:07:05 153
原创 简单的01背包问题,空间优化代码
import java.util.Scanner;public class acm2$01_yh { public static void main(String[] args) { //优化的01背包 Scanner sc=new Scanner(System.in); int N=sc.nextInt(),V=sc.nextInt(...
2019-09-16 02:57:22 267 2
原创 58同城 走棋盘题
package fiveEightTongcheng;/*题目描述: 现有一个地图,由横线与竖线组成(参考围棋棋盘),且左上角为起点,终点为右下角 每次行走只能沿线移动到临近的点,并累加路径计算一个人从地图的起点走到终点的最 小路径为多少 输入 m*n 代表m行n列 输入矩阵 dp递推方程比较容易想出 */import java.u...
2019-09-13 16:11:22 597
原创 顺丰笔试-学习机
package Shunfeng; import java.util.HashSet;import java.util.Scanner;import java.util.Set; public class FirstPro { public static void main(String[] args) { Scanner sc=new Scanner(S...
2019-08-31 11:20:17 252
原创 leetcode15. 三数之和
题目这里就不贴出来了,可以去力扣中文站去找题目描述。(代码是参考网友的回答,如有侵权,请底下留言,我一定会删除)这里是参考网友的双指针法,固定元素为最左侧的元素,明天我试一下固定元素为中间元素的解法,自己想了一下,觉得也可行。PS:更新。如果选择固定元素为中间元素的话,将十分难以去重,如果想要去重就会丢失结果集。比方说:[-4,-2,-2,-2,0,1,2,2,2,3,3,4,...
2019-07-24 21:04:30 76
原创 leetcode10. 正则表达式匹配
题目来源:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/regular-expression-matching------------------------------------------------------------------------------------------题目描述:给你一个字符串s和一个...
2019-07-23 20:12:22 226
原创 zookeeper为什么要选用apache curator客户端
zookeeper的客户端有java api原生客户端和apache curator。java api用起来很方便,但是也有一些美中不足。它有一些缺点:1.我们用java api去连接zookeeper服务器的时候,可能会碰到超时现象,原生的api只给我们提供了连接zookeeper服务器的api,却没给我们超时重连的api,这就只能让我们程序猿自己动手丰衣足食了。2.Watch事...
2019-07-16 16:19:46 285
原创 linux内核版本和发行版本有何区别
内核版本:原生态的linux发行版本:各个公司或者个人拿来内核版本作了私人处理,比如加上自己喜欢的界面、对内核版本微调整等。
2019-07-05 22:35:21 9738
原创 GC收集器:Parallel Scavenge收集器和CMS收集器
Parallel Scavenge收集器是针对青年代的垃圾收集器。这个收集器可以自己调整参数,从而控制吞吐量。吞吐量:在java程序背景环境下,CPU执行用户程序代码的时间占CPU总执行时间的比值。停顿时间:GC过程中,STW的时间。其中吞吐量和停顿时间是有千丝万缕的关系的,它们之间相互影响着。我觉得这个收集器最大的优点就是,可以自调整收集器的一些参数配置,如青年代内存大小或者...
2019-06-25 11:14:23 1052
原创 为什么会有stop the world
首先,我们知道java中的引用主要存在于方法区和堆栈区。当jvm运行对象存活判定算法的时候,如果当前环境下,对象之间的引用还在发生变化,那么这个算法几乎没法执行,所以常常需要STW来维持秩序。...
2019-06-17 11:04:52 2145
原创 为什么JVM规范中,程序计数器不会发生OutOfMemoryError
首先,我们熟悉的栈和堆,都是可以通过运行时对内存需求的扩增导致内存不够用的情况比如某个线程递归调用,随着调用层次的加深,可能会出现栈空间不足的情况,这时候如果可以动态扩增,jvm就会向申请更多的内存空间来扩充栈,当没有更多的内存空间得以申请的时候,就会发生OutOfMemoryError。但是,程序计算器仅仅只是一个运行指示器,它所需要存储的内容仅仅就是下一个需要待执行的命令的...
2019-06-11 16:59:19 6615 4
空空如也
Java原生api连接zookeeper特别慢,求问什么原因
2019-07-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人