自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 子串+序列:无重复最长子串+最长递增子序列+最长连续序列

一、无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。(请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。)//思路:用双指针,遇到重复的,左指针就到重复的下标处class Solution { public int lengthOfLongestSubstring(String s) { int left=0; int right=0; int max=0; cha

2020-08-31 19:41:21 314

原创 重建二叉树Java(前序和中序+中序和后序)

输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。LeetCode面试题07例如,给出:前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left;

2020-06-11 15:16:07 401

原创 二叉树的遍历 + 深度与高度 + 树的直径 +二叉树转单链表

二叉树的层序遍历给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNo...

2020-05-08 11:58:56 308

原创 二叉搜索树的基本操作汇总

一、什么是二叉搜索树?对于其每个结点K,其左子树都小于K的值,右子树都大于K的值可以得出一个性质:——如果一个二叉树的中序遍历是单调递增的,那么它就是二叉搜索树!二、验证是否为二叉搜索树——先对二叉树进行中序遍历,看它是不是单调递增的/** * Definition for a binary tree node. * public class TreeNode { * ...

2020-05-07 23:57:57 232

原创 用两个栈实现队列 + 用两个队列实现栈

【代码】用两个栈实现队列 + 用两个队列实现栈。

2023-06-08 21:35:41 297

原创 数组查找操作:寻找第二大

一、找出数组中第二大的数字public class Main { public static void main(String[] args) { int max = 0; int smax = 0; int[] arr = {1,2,3,4,6,8,7}; if(arr[0] < arr[1]){ max = arr[1]; smax = arr[0]; }else{ max = arr[0]; smax = arr[1]; } f

2020-09-15 13:37:05 250

原创 9.9+9.14字节三轮面试手撕代码记录

import java.util.Scanner;import java.util.List;import java.util.ArrayList;public class Main { public static void main(String[] args) { int n1 = 989865489; List<Integer> list = numToList(n1); int len = list.size();

2020-09-15 11:01:21 316

原创 面试题:截取最长的K块木材

【题目】给定数组,每个元素代表一个木头的长度,木头可以任意截断,从这堆木头中截出至少k个相同长度为m的木块,已知k,求max(m)https://blog.csdn.net/gzy13269561397/article/details/50810882?utm_source=blogxgwz0public class Main{ public static void main(String[] args){ int[] L = {232,124,456}; int k =

2020-09-13 23:14:05 549

原创 求平方根(整数和小数)Java

一、平方根结果为整数求平方根,返回类型是整数,结果只保留整数的部分,小数部分将被舍去。class Solution { public int mySqrt(int x) { int l = 0; int r = x; int mid = 0; int res = 0; while(l<=r){ mid = (l+r)/2; if((long)mid*mid<

2020-09-12 15:03:30 1644

原创 进制转换Java:静态方法和逻辑方法

一、直接调用Integer类的静态方法(1)十进制转二进制字符串:int n = sc.nextInt();String s = Integer.toBinaryString(n);(2)十进制转十六进制字符串int n = sc.nextInt();String s = Integer.toHexString(n);(3)十进制转八进制字符串int n = sc.nextInt();String s = Integer.toOctalString(int i);(4)十六进制转十

2020-09-12 10:24:40 164

原创 超出范围解决方案:最小差

一、最小差给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差。实例:输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8}输出: 3,即数值对(11, 8)提示:1 <= a.length, b.length <= 100000-2147483648 <= a[i], b[i] <= 2147483647正确结果在区间[-2147483648, 2147483647]内【注意】正负相减可能

2020-09-11 10:04:12 256

原创 面试:逻辑题与思考题整理

一、红帽子、黑帽子、白帽子问题有3顶红帽子,4顶黑帽子,5顶白帽子。让10个人从矮到高站成一队,给他们每个人头上戴一顶帽子。每个人都看不见自己戴的帽子的颜色,却只能看见站在前面那些人的帽子颜色。(所以最后一个人可以看见前面9个人头上帽子的颜色,而最前面那个人谁的帽子都看不见)。现在从最后那个人开始,问他是不是知道自己戴的帽子颜色,如果他回答说不知道,就继续问他前面那个人。假设最前面那个人一定会知道自己戴的是黑帽子。为何?(1)先分析第10个人的情况:第10个人说不知道,说明前面9个人不可能是两种颜色全

2020-09-10 13:25:04 2179

原创 替换字符串指定单词的所有异位词(回溯,全排列,字符串替换)

把字符串中的单词替换掉,单词可以是异位形式的,如:要替换you,需要把ouy,uyo,等等都替换掉。输入:youi love you,ouy love mejack输出:i love jack,jack love me.思路:全排列!import java.util.*;public class Main1{ public static void main(String[] args){ Scanner sc = new Scanner(System.in)

2020-09-08 21:21:48 202 1

原创 网格问题(回溯/DP):最短路径(排除障碍物)+路径数量+路径最大/小和+判断路径存在

一、网格中的最短路径——回溯LeetCode1293:网格中的最短路径给你一个 m * n 的网格,其中每个单元格不是 0(空)就是 1(障碍物)。每一步,您都可以在空白单元格中上、下、左、右移动。如果您 最多 可以消除 k 个障碍物,请找出从左上角 (0, 0) 到右下角 (m-1, n-1) 的最短路径,并返回通过该路径所需的步数。如果找不到这样的路径,则返回 -1。class Solution { public int shortestPath(int[][] grid, int k)

2020-09-02 20:38:40 11713 3

原创 第n大的2,3,5组合数

只用2,3,5组成数字,可以重复,问第n个数是多少?2,3,5,22,23,25,32,33,35,52,53,55import java.util.Scanner;import java.util.Deque;import java.util.ArrayDeque;public class Main1{ public static void main(String[] args){ Scanner sc = new Scanner(System.in);

2020-08-27 22:56:48 205

原创 设计模式——网课学习总结

面向对象/设计模式七大基本原则:①单一职责原则(SRP):一个类的功能要单一,提高内聚性,方法要原子性;②开放封闭原则(OCP):对扩展性开放,对修改封闭(最重要,总纲);③里氏替换原则(LSP):子类继承父类,子类不要改变父类原有的方法,完成新的功能需添加新的方法(正方形不是长方形,企鹅鸵鸟不能成为鸟的子类);④依赖倒置原则(DIP):面向接口编程,而非面向实现编程。即B要用到A,B应当定义抽象接口,A实现这个接口。减少类间的耦合性,提高系统的稳定性;⑤接口分离原则(ISP):模块间要通过抽象

2020-08-27 00:48:52 279 1

转载 平衡二叉查找树(AVL)的构建——左旋右旋

原文链接:https://www.cnblogs.com/ZhaoxiCheung/p/6012783.html平衡二叉树,又称AVL(Adelson-Velskii和Landis)树,是带有平衡条件的二叉查找树。这个平衡条件必须要容易保持,而且它必须保证树的深度是 O(log N)。一棵AVL树是其每个节点的左子树和右子树的高度最多差1的二叉查找树( 空树的高度定义为 -1 )。查找、插入和删除在平均和最坏情况下都是 O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。1、LL

2020-08-25 12:45:07 547

原创 打印旋转方阵Java

输入一个整数n,从右上角开始打印出旋转方阵:import java.util.Scanner;public class Main1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] arr = create(n); print(arr,n); }

2020-08-23 19:41:22 282

原创 Redis分布式锁解决并发超卖问题——Jedis和Redisson

一、基本介绍1.1 超卖场景不同用户在读请求的时候,发现商品库存足够,然后同时发起请求,进行秒杀操作,减库存,导致库存减为负数。——主要解决方案:Redis分布式锁、MQ队列1.2 普通加锁如果直接对减库存代码加同步锁,由于分布式系统有多个Tomcat,前端请求会被分发到不同的Tomcat上去,Tomcat会各自访问数据库,这样加锁就控制不了。1.3 解决方案用分布式锁,用Redis中的setnx命令:setnx key value可实现分布式锁1.4 Redis操作的封装——Jedis和R

2020-08-22 21:48:40 4709

原创 商汤8.20软开笔试题:统计某个单词数量 + 矩阵中的最长递增路径

第一题题目:给定一行输入,包括空格,字符,符号等,求有多少个Good,符号顺序不可改变,区分大小写import java.util.Scanner;public class Main1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { String s = sc.nextLine()

2020-08-20 22:04:23 119

原创 括号生成(DFS) + 括号匹配 +最长括号子串 + 24点

括号匹配给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效import java.util.Scanner;import java.util.Stack;public class Solution{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){

2020-08-14 12:24:28 165

原创 8.11贝壳笔试Java

【第一题】变成回文字符串给定一个字符串,问最少改变多少个字符,会变成回文字符串?第一个输入是字符串长度,第二个输入是字符串输出改变次数;如:输入4 acac,输出2import java.util.Scanner;public class Main1{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){

2020-08-11 21:22:03 294 1

原创 Redis入门基础整理

一、NoSQL(——泛指非关系型数据库)1.1为什么会出现NoSQL?(1)传统单机数据库结构:客户端——Web——Service——DAO层——数据库传统的数据存储的瓶颈:1、数据量的总大小一个机器放不下;2、数据的索引(B+树)一个机器的内存放不下;3、访问量(读写混合)一个实例不能承受。(2)后来的演变:Memcached(缓存)+MySQL+垂直拆分客户端——Web——Service——DAO层——Cache(缓存)——多个数据库(垂直拆分,不同类数据放不同库)(**频繁操作的数

2020-08-10 22:44:38 157

原创 Java接口与继承的选择题分析汇总

interface InterfA { String S = "good "; void f(); } abstract class ClassA { abstract void g();} class ClassB extends ClassA implements InterfA { //B是A的子类和接口A的继承 void g() { System.out.print(S); //good } public void f() { System.out.print

2020-08-07 16:44:02 376

原创 2Sum,3Sum,4Sum问题(Java)

【问题】知道nums[ ] ={ }和target,返回nums中能够得出target的两个元素一、2Sum问题1.1 nums中只有一对元素满足时eg: 只有唯一解的情况,如:[5,3,1,6],target=9,结果为[3,6]import java.util.*;public class Solution { public static void main(String[] args){ int[] nums = {5,3,1,6}; int target = 9; in

2020-08-01 20:49:00 241

原创 使用【快速幂】优化大数幂

【问题】求a^n,其结果可能会很大import java.util.*;public class Solution { public static void main(String[] args){ int a = 40; int n = 4; long res = 0; res = (long)Math.pow(a,n); System.out.println(res); }}要把a乘n次,时间复杂度较高。快速幂——时间复杂度变为O(log n)import

2020-07-31 23:00:00 116

原创 7.22广联达笔试题代码记录

【第一题】输入一个数组,找出数组中的四个元素,构成一个平行四边形,求平行四边形最大面积。import java.util.Scanner;import java.util.Arrays;import java.util.Set;import java.util.HashSet;public class Main2{ public static void main(String[] args){ Scanner sc = new Scanner(System.in);

2020-07-23 21:15:09 775

原创 整型转 Excel 表列序

给定一个正整数,返回它在 Excel 表中相对应的列名称。class Solution { public String convertToTitle(int n) { String s =""; while(n>0){ n--; char c = ((char)(n % 26 + 'A')); n = n / 26; s = String.valueOf(c)+s; } return s; }}...

2020-07-19 19:33:43 133

原创 摩尔投票法寻找众数

【题目】:LeetCode169:https://leetcode-cn.com/problems/majority-element/给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。思路:由于众数的个数是 > n/2 的,所以等于某个数就count+1,不等于就-1,减到零后换一个候选人num,最终众数肯定是最终的候选人。/*如果我们把众数记为 +1,把其他数记为 −1,将它们

2020-07-19 15:05:36 95

原创 JavaEE——XML基础(XML、DTD、dom4j解析)

一、认识XML1.1 XML简介(1)xml:可扩展标记语言,是一种标记语言 (拿<>括起来的语言);(2)xml是一种灵活的语言,没有固定的标签,所有的标签都可以自定义(可扩展);(3)通常,xml被用于信息的记录和传递。——因为是一个普通的文本文件,通用性强,因此经常被用于充当配置文件。1.2 XML的作用(1)数据存储(2)数据交换(3)数据配置1.3 XML的基本格式<?xml version="1.0" encoding="UTF-8"?> <

2020-07-18 12:43:12 203

原创 Java集合遍历汇总(HashMap,ArrayList)

一、HashMap遍历1.1 foreach遍历,——keySet() + get(key)import java.util.*;public class Main { public static void main(String[] args) { Map<Integer,String> map = new HashMap<>(); map.put(1,"asd"); map.put(2,"dgh"); map.put(3,"awe"); map

2020-07-18 12:42:50 157

原创 单体应用与前后端分离应用

单体应用:传统的JavaWeb开发中,前端使用JSP开发,JSP不是由后端开发者独立完成的,而是前端人员先完成HTML静态页面,交给后端人员,改成JSP,如果后面要修改,前后端人员要经常沟通,很麻烦。——因此,这种开发方式效率极低。前后端分离应用:可以使用前后端分离的方式开发,就可以完美解决这一问题。前端编写客户端代码,后端编写服务器代码,提供数据接口即可。前端通过Ajax请求来访问后端的数据接口,将Model展示到View中即可。前后端开发者只需要提前约定好接口文档(URL、参数、数据类型…)

2020-07-16 17:48:15 2166

原创 字符串压缩(HashSet+StringBuffer)

字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。class Solution { public String compressString(String S) { StringBuffer sb = new StringBuffer(); Set<Character>

2020-07-14 17:06:29 247

原创 汉诺塔问题——Java分治递归解决

【题目】:在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制:(1) 每次只能移动一个盘子;(2) 盘子只能从柱子顶端滑出移到下一根柱子;(3) 盘子只能叠在比它大的盘子上。请编写程序,用栈将所有盘子从第一根柱子移到最后一根柱子。题解:分治思想: 拿只有A只有两个盘子的时候做模拟,发现步骤如下:第一步, 把A上面的盘子放到B第二步, 把A

2020-07-14 15:01:50 126

原创 Java反射机制基础

反射:框架设计的灵魂(1)反射机制:将类的各个组成部分——>封装为其它对象。Class类对象:将字节码文件通过类加载器加载到内存中,将其中的成员变量封装为field对象,将构造方法封装为Constructor对象,将成员方法封装为Method对象(方法都放在method[]中),这些统一为Class类对象(Class class;)。——本质:获取Class对象后,反向获取Person对象的各种信息。好处:1.可以在程序的运行过程中去操作这些对象2.可以解耦(通过降低程序的耦合性,来提

2020-07-08 21:52:22 227

原创 JavaWeb之Servlet基础(更新中)

一、概念Servlet是JavaEE规范之一,规范就是接口;Servlet是JavaWeb三大组件之一,分别是Servlet程序、Filter过滤器、Listener监听器;Servlet是运行在服务器上的一个Java小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。二、具体实现1、编写一个类去实现Servlet接口;2、实现Servlet方法,处理请求,并响应数据;3、到web.xml中去配置Servlet程序的访问地址。/:斜杆在服务器解析的时候,表示地址为http://i

2020-07-05 00:19:23 220

原创 JavaWeb之Tomcat

一、JavaWeb概念——JavaWeb是指,所有通过Java语言编写的可以通过浏览器访问的程序的总称。JavaWeb是基于请求和响应来开发的。(1)请求——是指客户端给服务器发送数据(2)响应——服务器给客户端回传数据(3)关系——请求和响应是成对出现的请求:客户端(浏览器)——>服务器(Tomcat)响应:服务器(Tomcat)——>客户端(浏览器)(回传数据)(3)Web资源分类web资源按实现的技术和呈现的效果不同,又分为静态资源和动态资源两种。静态资源:HTM

2020-07-03 21:02:10 211

原创 JavaWeb之XML文档基础

一、简介XML:可扩展标记性语言XML的主要作用:1、用来保存数据,而且这些数据具有自我描述性2、它还可以作为项目或者模块的配置文件3、还可以作为网络传输数据的格式(JSON)(1)第一个XML程序<?xml version="1.0" encoding="utf-8" ?><!--version是xml的版本(没有更新过),encoding是xml文件本身的编码--><books> <!--books表示多个图书信息 -->

2020-07-03 00:22:14 990

原创 JavaWeb之jQuery基本技术

一、jQuery介绍——JavaScript和查询(Query),是辅助JavaScript开发的js类库。核心思想:write less, do more(写的更少,做的更多),所以解决了很多浏览器的兼容问题。流行程度:jQuery是最流行的JavaScript库。免费、开源,如:操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

2020-07-03 00:21:02 113

原创 JavaWeb之JavaScript基础

Java后端程序员有必要学习JavaScript!一、介绍JavaScript语言只要是为了完成页面的数据验证,因此它运行在客户端,需要运行浏览器来解析执行JavaScript代码。——JS是弱类型,Java是强类型。(弱类型就是类型可变;强类型就是定义变量的时候,类型已确定,而且不可变)eg:var i; i =12; i = “abc”特点①交互性(可以做的就是信息的动态交互)②安全性(不允许直接访问本地硬盘)③跨平台性(只要是可以解释JS的浏览器都可以执行,和平台无关——通过浏览器实

2020-07-01 00:53:47 281

空空如也

空空如也

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

TA关注的人

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