自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (1)
  • 收藏
  • 关注

原创 位运算基础

1 位运算概述与,有0则00 & 0=00 & 1=01 & 0=01 & 1=1或,有1则10 ∣ 0=00 ∣ 1=11 ∣ 0=11 ∣ 1=1异或,同0异10⊕0=00⊕1=11⊕0=11⊕1=0取反∼0=1∼1=02 移位运算移位运算按照移位方向分类可以分成左移和右移,按照是否带符号分类可以分成算术移位和逻辑移位。左移运算的符号是 <<。左移运算时,将全部二进制位向左移动若干位,高位丢弃,低位补 00。左

2021-09-28 11:43:12 499

转载 Java读取properties配置文件的几种方式

1 前言原文链接2 基于ClassLoader读取配置文件该方式只能读取类路径下的配置文件,有局限但是如果配置文件在类路径下比较方便。Properties properties = new Properties();// 使用ClassLoader加载properties配置文件生成对应的输入流InputStream in = PropertiesMain.class.getClassLoader().getResourceAsStream("config/config.properties

2021-05-17 16:34:24 238

原创 Nacos安装教程

文章目录前言下载启动验证前言为什么叫NacosNaming + Configuration + Service。服务注册+服务配置是什么一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台(官网)。说人话:Nacos拥有Eureka + Spring Cloud Config + Bus三者的功能。相关链接官网源码地址下载进入https://github.com/alibaba/nacos/tags,选择版本点进去,下载nacos-server即可。启动将下载的文件解压,

2021-05-14 10:05:59 169

原创 Zipkin Server安装教程

文章目录Zipkin Server安装教程下载启动Zipkin Server安装教程干什么分布式链路调用监控。下载从中央仓库下载最新版zipkin-server。打开cmd,输入 https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec 启动下载。启动进入jar包保存目录,打开cmd,执行jar包。执行完毕之后,浏览器访问 http://local

2021-05-13 22:00:54 251

原创 RabbitMQ安装教程(Windows)

文章目录安装Erlang安装RabbitMQ添加可视化插件进入RabbitMQ安装路径下的sbin目录启动管理功能启动RabbitMQ服务访问RabbitMQ可视化界面安装ErlangErlang下载地址傻瓜式安装,除了需要更改一下安装目录,一路next。安装RabbitMQRabbitMQ下载地址傻瓜式安装,除了需要修改一下安装目录,一路next。添加可视化插件进入RabbitMQ安装路径下的sbin目录启动管理功能在sbin目录下打开cmd,执行 rabbitmq-plugin

2021-05-11 17:39:25 214

原创 面经汇总

面向对象三大特性封装:客观事物抽象成类,暴露一些给外界使用的接口。对不可信的对象隐藏信息。继承:某个对象获得另一个对象的属性和方法。多态:父类的引用指向子类的对象,父对象可以根据当前赋值的子对象的特性以不同方式运行。编译时多态,重载。运行时多态,重写。面向对象和面向过程面向过程性能更高,面向对象类需要实例化,开销大。面向对象易维护、易复用、易扩展。封装、继承、多态,耦合度低,系统灵活,易维护。常用的集合类Map接口和Collection接口是所有集合框架的父接口:Collecti

2021-05-02 14:02:41 299

原创 最长回文子串长度

1 题目链接最长回文子串长度2 题目描述描述对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。给定字符串A以及它的长度n,请返回最长回文子串的长度。示例输入:"abc1234321ab",12返回值:73 代码实现public class Solution { public int getLongestPalindrome(String A, int n) { boolean[][] dp = new boolean[n][n]; // 记

2021-04-02 15:38:54 1068

排序算法代码-java版本

1 堆排序解析参考:快速入门堆排序public class HeapSort { public static void sort(int []arr){ for(int i = (arr.length - 1) / 2; i >= 0; i--){ downAdjust(arr, i, arr.length); } for(int i = arr.length - 1; i >= 0; i--){

2021-04-01 15:34:54 54

转载 tok-K问题详解

1 前言转自作者huan-yong原文链接 top-K问题详解腾讯面试被面试官“羞辱”之后,脸红如饮酒,抓紧时间学一波。2 思路解析什么是top-k问题top-K 问题是一类经典的问题,它能解决许多海量数据处理相关的问题,例如在1亿个数据中找出访问次数前1000的热点数据,在海量搜索字符串中找出搜索频率排在前十的搜索字符串等等。思路有哪些我们可以将这类问题分为三个方向考虑:1.将输入内容(假设用数组存放)进行 完全排序 ,从中选出排在前K的元素即为所求。有了这个思路,我们可以选择相

2021-04-01 13:53:47 1712

原创 数组中相加和为0的三元组

1 题目链接数组中相加和为0的三元组2 题目要求描述给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。注意:三元组(a、b、c)中的元素必须按非降序排列。(即a≤b≤c)解集中不能包含重复的三元组。例如,给定的数组 S = {-10 0 10 20 -10 -40},解集为(-10, 0, 10) (-10, -10, 20)3 代码思路A[i] + A[j] + A[k] = 0,固定A[i],使用双指针左右同时探测 A[

2021-03-31 15:58:34 121

原创 约翰的后花园

1 题目链接约翰的后花园2 题目描述描述约翰想在他家后面的空地上建一个后花园,现在有两种砖,一种3 dm的高度,7 dm的高度。约翰想围成x dm的墙。如果约翰能做到,输出YES,否则输出NO。X是一个整数,取值范围为 [3, 1000]。示例样例 1:输入 : x = 10输出 : "YES"解释:x = 3 + 7 : 即需要1匹3 dm高度的砖和1匹7 dm 高度的砖。样例 2:输入 : x = 5输出 : "NO"解释:不能用高度为3 dm的砖和高度为7 d

2021-03-31 13:11:03 144

原创 栅栏染色 lintcode514

1 题目链接栅栏染色 lintcode5142 题目描述描述我们有一个栅栏,它有n个柱子,现在要给柱子染色,有k种颜色可以染。必须保证不存在超过2个相邻的柱子颜色相同,求有多少种染色方案。示例例 1:输入: n=3, k=2 输出: 6Explanation: post 1, post 2, post 3 way1 0 0 1 way2 0 1 0 way3

2021-03-31 11:55:19 176

原创 3月30日百度笔试

1 前言总时长两小时:19:00-21:00,总分121分。2 试题2.1 单项17个单项选择,涵盖较广,语言基础、数据库、jvm等,每个3分2.2 不定项3个不定项选择,全部linux命令,进程管理、内存管理、cpu管理等,每个4分,错选不得分。2.3 编程3个编程题,每个20分第一题:给定一个数组,数组索引从1开始,一个人站在索引1这个位置,每次能够往右走一个位置,或者可以往右走到下一个与当前索引对应值相等的位置。问何时才能走到终点。输入 5 // 终点索引,也是数组容量1 2

2021-03-31 09:18:12 338

原创 买卖股票的最好时机

1 题目链接买卖股票的最好时机2 题目要求描述假设你有一个数组,其中第\ i i 个元素是股票在第\ i i 天的价格。你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。示例输入:[1,4,2]返回值:33 代码思路买卖股票,买的价越低,卖的价越高,赚取的差价越多。遍历数组,使用一个变量记录卖之前的最小值,每次使用当前价格减去最小价格,和当前记录的最大差价做对比,取较大的即为利润。4 代码实现public class Sol

2021-03-31 00:26:08 45

原创 最长回文子串

1 题目链接最长回文子串2 题目要求描述对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。给定字符串A以及它的长度n,请返回最长回文子串的长度。示例输入:"abc1234321ab",12返回值:73 代码思路暴力法破解相对简单,但是时间复杂度很高,为O(n3)。之所以是O(n3),因为我们要使用两个循环去寻找从i到j的子串,找到这个子串之后,还需要使用一个循环去判断这个子串是否回文。暴力算法中在回文的判断上是可以简化的,因为回文的计算有很多重复部分,比如给一个

2021-03-31 00:05:17 56

原创 爬楼梯2 lintcode272

1 题目链接爬楼梯2 lintcode2722 题目要求描述一个小孩爬一个 n 层台阶的楼梯。他可以每次跳 1 步, 2 步 或者 3 步。实现一个方法来统计总共有多少种不同的方式爬到最顶层的台阶。说明对于n=0,我们认为答案是1。示例样例1:输入: 3输出: 4解释: 1 + 1 + 1 = 2 + 1 = 1 + 2 = 3 = 3 , 一共4种方法。样例2:输入: 4输出: 7解释: 1 + 1 + 1 + 1 = 1 + 1 + 2 = 1 + 2 + 1

2021-03-30 17:40:57 67

原创 不同的路径2 lintcode115

1 题目链接不同的路径2 领扣1152 题目要求描述“领扣114不同的路径” 的跟进问题:现在考虑网格中有障碍物,那样将会有多少条不同的路径?网格中的障碍和空位置分别用 1 和 0 来表示。3 代码思路大致实现思路基本相同,路径添加了障碍物,有障碍物的地方无法到达,我们将其对应的 dp[i][j] 设置为0即可。较大的不同是在第一行和第一列,如果遇到障碍物,那么障碍物和障碍物以后的结点都不可达,对应的 dp[i][j] 设置为0。4 代码实现public class Solutio

2021-03-30 17:20:30 114

原创 不同的路径 lintcode114

1 题目链接不同的路径 领扣2 题目要求有一个机器人的位于一个 m × n 个网格左上角。机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。问有多少条不同的路径?3 代码思路4 代码实现public class Solution { public int uniquePaths(int m, int n) { int [][]dp = new int[m][n]; for(int i = 0; i < m; i++){ for(int

2021-03-30 16:38:12 126

原创 爬楼梯 lintcode111

1 题目链接爬楼梯2 题目要求描述假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?示例样例 1:输入: n= 3输出: 3样例解释:1) 1, 1, 12) 1, 23) 2, 1共3种样例 2:输入: n = 1输出: 1解释:只有一种方案3 代码思路简单的斐波那契数变形。常用三种方法:递归法:时间复杂度较大,非常多重复性计算。动态规划法:需要一个数组来记录,空间复杂度较大。变量记录法:使

2021-03-30 15:07:40 78

原创 子数组的最大累加和问题

1 题目链接子数组的最大累加和问题2 题目要求描述给定一个数组arr,返回子数组的最大累加和例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.题目保证没有全为负数的数据要求时间复杂度为O(n),空间复杂度为O(1)示例输入:[1, -2, 3, 5, -2, 6, -1]返回值:123 代码思路题目如果不加时间复杂度为O(n),那么很容易想到用两层循环遍历数组,计算索引从i

2021-03-30 14:10:02 178

原创 判断回文串

1 题目链接判断回文串2 题目描述描述判断题目给出的字符串是不是回文,仅考虑字符串中的字母字符和数字字符,并且忽略大小写例如:"nowcoder Is Best tesbsi: redoc won"是回文"race a car"不是回文注意:你有没有考虑过字符串可能为空?这是面试时应该提出的一个好问题。针对这个问题,我们定义空字符串是回文示例示例1输入:"nowcoder Is Best tesbsi: redoc won"返回值:true示例2输入:"race a c

2021-03-30 10:35:54 174

原创 出现一次的数字

1 题目链接出现一次的数字2 题目描述描述现在有一个整数类型的数组,数组中素只有一个元素只出现一次,其余的元素都出现两次。你需要给出一个线性时间复杂度的算法,你能在不使用额外内存空间的情况下解决这个问题么?3 代码思路考察异或运算符的特点:(1) 异或满足交换律。A^B = B^A(2) 两个相同的数异或为0。(3) 0异或一个数为这个数本身。4 代码实现public class Solution { public int singleNumber (int[] A) {

2021-03-30 09:45:09 48

原创 拷贝有随机指针的链表

1 题目链接拷贝有随机指针的链表2 题目描述描述现在有一个这样的链表:链表的每一个节点都附加了一个随机指针,随机指针可能指向链表中的任意一个节点或者指向空。请对这个链表进行深拷贝。涉及到的链表结构// 普通链表class RandomListNode{ int val; ListNode next; ListNode random; public RandomListNode(x){ this.val = x; }}3 代码思

2021-03-30 09:34:34 141

原创 判断链表中是否有环

1 题目链接判断链表中是否有环2 题目描述描述判断给定的链表中是否有环。如果有环则返回true,否则返回false。你能给出空间复杂度[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7EHfyn9Z-1616998608018)(https://www.nowcoder.com/equation?tex=O(1)])的解法么?3 代码思路快慢指针的经典用法。快指针每次走两步,慢指针每次走一步,相遇即有环。无环,快指针最终指向null结点。4 代码实现pub

2021-03-29 14:17:13 53

原创 链表中环的入口结点

1 题目链接链表中环的入口结点2 题目要求对于一个给定的链表,返回环的入口节点,如果没有环,返回null拓展:你能给出不利用额外空间的解法么?3 代码思路人傻了,不利用额外空间意思是O(1)也不能用?这个是我钻牛角尖呢,还是题目描述不清楚呢?暂时理解为空间复杂度要求O(1)吧。图中的思路理一下,清楚之后我们考虑,代码怎么写呢?倒走n,在单向链表上是不合理的,因此要转换为正向走过多少距离。通过慢指针我们能够清楚的看到,如果慢指针只走了m,那么不正是入口结点吗。因此我们只需要让慢指针从起点重新

2021-03-29 13:57:44 86

原创 重排链表

1 题目链接重排链表2 题目要求描述将给定的单链表 L: L0→L1→…→Ln-1→Ln重新排序为:L0→Ln →L1→Ln-1→L2→Ln-2→…要求使用原地算法,不能只改变节点内部的值,需要对实际的节点进行交换。例如:对于给定的单链表{10,20,30,40},将其重新排序为{10,40,20,30}。3 代码思路单链表查找只能顺着链表方向,读完题目之后,我们发现偶数结点的n、n-1这部分是逆序的,为了挨个遍历这部分并插入,我们需要找到这些结点,并将其翻转。从哪里开始翻转呢,奇

2021-03-29 13:11:09 942

原创 二叉树的前序遍历-迭代法实现

1 题目链接二叉树的前序遍历2 题目要求描述求给定的二叉树的前序遍历。例如:给定的二叉树为{1,#,2,3},返回:[1,2,3].备注;用递归来解这道题很简单,你可以给出迭代的解法么?示例输入:{1,#,2,3}返回值:[1,2,3]3 代码思路树的前序遍历等同于深度遍历,深度遍历使用迭代来实现考虑使用栈结构。访问每一个树的节点,如果右子树不为空,加入到栈中,左子树不为空,加入到栈中。注意栈的特点是后进先出,我们希望左子树的遍历在前,右子树的遍历在后,因此加入栈的顺序

2021-03-29 10:28:24 242

原创 链表的插入排序

1 题目链接链表的插入排序2 题目描述描述使用插入排序对链表进行排序。示例输入:{30,20,40}返回值:{20,30,40}3 代码思路牛客网关于链表的题目,传入的参数都是不带表头结点。因此我们为了第一个结点和后边结点插入方法相同,创建一个新的带表头结点的链表。每次取原链表中的一个值,然后在新链表中找到该值的插入位置。此时应注意,我们采用后插法,需要找到小于当前值的最后一个。找到之后,将当前值插入到新链表,直到原链表为空。4 代码实现public class Solut

2021-03-29 10:09:13 139

原创 后缀表达式求值

1 题目链接后缀表达式求值2 题目要求描述计算逆波兰式(后缀表达式)的值运算符仅包含"+","-","*“和”/",被操作数可能是整数或其他表达式["20", "10", "+", "30", "*"] -> ((20 + 10) * 30) -> 900["40", "130", "50", "/", "+"] -> (40 + (130 / 50)) -> 42示例输入:["20","10","+","30","*"]返回值:9003 代码思路

2021-03-28 21:31:10 662

原创 面经汇总-数据库

1. 事务的特性和隔离级别 牛客458611235号特性:ACID。原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)原子性:事务中进行的操作是一个不可分割的单元,要么全部执行,要么全不执行。一致性:事务完成时,所有数据保持一致。完整性约束,比如外键约束、程序员设定的外界约束(银行转账金额不能为负)等。隔离性:一个事务的执行不能被其他事务干扰。持久性:事务一旦提交,对数据库中的数据改变是永久性的。并发问题:脏读:事务A修改了一

2021-03-27 14:58:18 185

原创 面经汇总-计算机网络

1. TCP和UDP的区别 牛客269000345号 - 美团实习一面TCP面向连接,传输数据之前需要三次握手连接。UDP无连接,发送数据之前不需要建立连接。TCP提供可靠的传输,通过TCP传输的数据,无差错,无丢失,无重复,按序到达。UDP尽最大努力传输,但不保证可靠交付。TCP传输效率相对较低。UDP传输效率高。TCP面向字节流,UDP基于数据报。适用领域:TCP适用于对数据传输质量要求较高,但对实时性要求不高的环境。比如:HTTP、HTTPS、FTP等传输文件协议,POP、SMTP等

2021-03-27 14:47:32 159

原创 面经汇总-操作系统

1. 进程与线程通信上的区别 windwj000 - 阿里AE部门春招一面2. 操作系统中的调度算法 windwj000 - 腾讯看点春招一面3. CFS调度算法 windwj000 - 腾讯看点春招一面4. 任务调度中如何控制进入某一节点的流量。使用消息队列,或者设计一个调度中心 windwj000 - 腾讯看点春招一面5. java中的线程有没有对应os上的线程 windwj000 - 网易互联网杭州研究院春招二面...

2021-03-26 22:59:58 139

原创 面经汇总-Readme

汇总牛客网面经问题,总结答案持续更新到找到实习各位大佬多指教

2021-03-26 22:57:24 76

原创 腾讯微信事业部后端开发一面凉

1 思考效率:有一说一,腾讯是真的效率。3月24号下午六点左右投了实习,晚上7点半发来邮件,约第二天下午两点半开始面。毕竟第一次,紧张又激动,考虑再三还是接手了第二天的面试。此前投了华为、字节,时间隔得较久,华为公共事业部打了电话问武汉的测试岗,只说先准备笔试,还没有约具体时间。其他单位投的较晚,还没有接到电话。另外,腾讯实习似乎没有笔试,直通面试。面试内容:这方面准备做的不够,不是说知识技术做的不够,是指对每个公司了解不够。腾讯这边主要开发语言是c++和c,我主要准备的是java,因此面试的时候面试官

2021-03-26 18:13:27 883

原创 寻找第K大

1 题目链接寻找第K大2 题目要求描述有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。示例输入:[1,3,5,2,2],5,3返回值:23 代码思路题目要求寻找第K大的数,且要使用快排的思路。首先,拿到题目,要注意一个坑,怎么理解第K大?假设给我们一个数组{1,2,3,4,5},第一大的数是谁,很好判别,是5对吧,第二大的数呢,很容易犯迷糊是吧,答案是4,而不是2,

2021-03-23 22:00:38 46

原创 二叉树的最小深度

1 题目链接二叉树的最小深度2 题目要求描述求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。示例输入:{1,2,3,4,5}返回值:23 代码思路法一:使用递归完成。分为三种情况:空树、左子树或右子树为空、左右子树都不为空。如果当前树是空树,则返回高度0即可。如果左子树或右子树为空。左子树为空时,如我们要计算{F,#,I}的最小高度,我们只需要计算右子树{I}的最小高度加上当前节点{F}的高度即可。右子树为空时,如我们要计算{C,F,#,#

2021-03-23 20:52:18 2456

原创 输出二叉树的右视图

1 题目链接输出二叉树的右视图2 题目要求描述请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图。示例输入:[1,2,4,5,3],[4,2,5,1,3]返回值:[1,3,5]备注二叉树每个节点的值在区间[1,10000]内,且保证每个节点的值互不相同。3 代码思路首先如何理解右视图。右视图即二叉树从上到下,每一层最右边的节点组成的集合。想要输出二叉树的右视图,首先应该根据前序和中序序列创建出二叉树。我们知道前序遍历二叉树顺序是:根节点、遍历左子树、

2021-03-23 13:40:41 875 1

原创 容器盛水问题

一 题目链接容器盛水问题二 题目要求描述给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。示例输入:[3,1,2,5,2,4]返回值:5输入:[4,5,1,3,2]返回值:2备注1≤N≤106三 代码思路题目的难点在于如何理解题目的意思。一张图读懂题目的意思。将数组看成一个凹凸不平的盆子,只有中间的槽可以用来放水。不难理解,我们只需要找到桶的边界,然后利用较短的边减去盆底高度,将所得的结果加起来即可。利用双指针同时

2021-03-23 09:31:42 237

原创 平衡二叉树

1 题目链接平衡二叉树2 题目要求描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。示例输入:{1,2,3,4,5,6,7}返回值:true3 代码思路根据平衡二叉树的性质,我们知道判断一棵二叉树是平衡二叉树,必须满足三个条件 :左右子树高度差不超过1、左子

2021-03-22 17:25:40 401

原创 栈和队列API

1 栈Stack实现 : Stack<E> stack = new Stack<E>()boolean empty() : 判断当前栈是否为空E peek() : 获取当前栈顶元素E pop() : 获取当前栈顶元素并删除E push(e) : 将元素加入栈顶int search(Object o) : 查找元素在栈中的位置。由栈低向栈顶数。2 队列java中虽然由Queue接口,但是java并没有给出具体的队列实现类。java中让LinkedList类实现了Qu

2021-03-21 18:13:35 105

IDEA下通过maven整合spring、spring mvc、mybatis三大框架

在IDEA环境下使用maven创建web项目,并整合spring、spring mvc、mybatis三个框架。实现前端点击超链接,访问数据库功能。注释比较全面。 拿到项目之后,找到resources文件夹下的account.sql执行一下,创建数据库表。 随后将同目录下的mysql.properties中的url、username、password改为自己数据库的url、username、password。 配置tomcat服务器,运行即可。

2020-12-04

空空如也

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

TA关注的人

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