- 博客(130)
- 收藏
- 关注
原创 1752. 检查数组是否经排序和轮转得到
题目检查数组是否经排序和轮转得到难度简单给你一个数组 nums 。nums 的源数组中,所有元素与 nums 相同,但按非递减顺序排列。如果 nums 能够由源数组轮转若干位置(包括 0 个位置)得到,则返回 true ;否则,返回 false 。源数组中可能存在 重复项 。注意:我们称数组 A 在轮转 x 个位置后得到长度相同的数
2021-02-11 19:52:54
700
2
原创 703. 数据流中的第 K 大元素
题目数据流中的第 K 大元素难度简单设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。请实现 KthLargest 类:KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。int add(int val) 将 val 插入数据流&
2021-02-11 17:53:47
154
原创 leetcode665. 非递减数列
class Solution { public boolean checkPossibility(int[] nums) { int n = nums.length; int p=0,q=0; for(int i = 0;i<n-1;i++){ if(nums[i]>nums[i+1]){ p = i; q = i+1;
2021-02-07 20:17:16
230
原创 leetcode1423. 可获得的最大点数
思路:因为要求的是从首位拿的最大点数和,剩余的牌肯定是连续的,所以只要求出一个连续的长度为n-k的子数组和为最小的数组即可.class Solution { public int maxScore(int[] cardPoints, int k) { int n = cardPoints.length; k = n-k; int sum = 0,tot = 0; for(int i =0;i<k;i++){
2021-02-06 15:24:36
123
原创 leetcode643. 子数组最大平均数 I
class Solution { public double findMaxAverage(int[] nums, int k) { int n = nums.length; double res=0,t; int sum = 0; for(int i = 0;i<k;i++){ sum+=nums[i]; } res = (double)sum/k; for
2021-02-04 11:14:18
143
原创 leetcode480. 滑动窗口中位数
思路害,说来惭愧,一道hard的题目是暴力做的.来日再修改代码class Solution480 { public double[] medianSlidingWindow(int[] nums, int k) { int n = nums.length; double[] res = new double[n - k + 1]; int index = 0; List<Integer> l = new ArrayLi
2021-02-03 22:00:26
158
原创 leetcode424. 替换后的最长重复字符
做法双指针,暴力class Solution { public int characterReplacement(String s, int k) { if (s.equals("")) return 0; int n = s.length(); int Max = 0; Map<Character, Integer> m = new HashMap<>(); Deque<Charact
2021-02-02 21:22:32
116
原创 leetcode1128. 等价多米诺骨牌对的数量
解题思路二元组表示代码class Solution { private static int f(int x) { int res = 0; for(int i= 1;i<=x-1;i++)res+=i; return res; } public int numEquivDominoPairs(int[][] dominoes) { Map<Integer, Integer> m = new
2021-01-31 00:55:55
148
原创 leetcode959. 由斜杠划分区域
class Solution { public int regionsBySlashes(String[] grid) { int res = 1; int n = grid.length; int x = (n + 1) * (n + 1); int[] f = new int[x]; Union uf = new Union(x); //将边界全部连通 for (int i = 0;
2021-01-31 00:24:58
186
原创 leetcode724. 寻找数组的中心索引
class Solution { public int pivotIndex(int[] nums) { int n = nums.length,sum = 0,t = 0; for(int i : nums)sum+=i; for(int i=0;i<n;i++){ if(t==(sum-nums[i])/2.0)return i; t+=nums[i]; } re
2021-01-28 21:08:18
105
原创 SpringBoot集成JSR303
文章目录集成JSR3031.引入依赖2.在需要进行校验的类的对象上加上注解`@Valid`3.在类的各个字段上加上指定注解4.自定义JSR303注解集成JSR3031.引入依赖<!-- JSR303依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifac
2021-01-26 10:31:19
896
原创 实现两次md5加密
文章目录为什么需要两次md5加密?引入MD5所需依赖创建md5加密工具类为什么需要两次md5加密?1.用户端:Pass = MD5(明文+固定salt)目的:防止被人恶意截取数据包,得到明文密码2.服务端:Pass = MD5(用户输入+随机salt)目的:万一数据库被盗,有可能通过反查表来得到密码引入MD5所需依赖<dependency> <groupId>commons-codec</groupId> <artifactId>co
2021-01-24 14:41:46
1460
1
原创 Linux下安装Redis
文章目录1.下载地址2.将压缩包解压并移动3.修改配置文件4.启动服务5.访问redis6.生成系统服务1.下载地址https://redis.io/2.将压缩包解压并移动tar -zxvf redis-6.0.10.tar.gzmv redis-6.0.10 /usr/local/rediscd /usr/lcoal/redismake -jmake install 3.修改配置文件vim redis.conf# bind 127.0.0.7代表本机,需要修改为你的公网
2021-01-23 15:32:08
308
1
原创 SpringBoot继承Jedis
集成Jedis1. 引入jedis和fastjson依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId></dependency><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjso
2021-01-23 15:09:12
282
原创 leetcode1319. 连通网络的操作次数
class Solution1319 { public int makeConnected(int n, int[][] connections) { int size = connections.length; if (connections.length < n - 1) return -1; Union uf = new Union(n); for (int[] conn : connections) {
2021-01-23 00:58:51
133
原创 leetcode628.三个数的最大乘积
class Solution { public int maximumProduct(int[] nums) { //进行自动装箱 Integer[] arr = new Integer[nums.length]; for (int i = 0; i < nums.length; i++) arr[i] = nums[i]; //Collections.reverseOrder() Java带有的降序排序函数 Array
2021-01-20 11:24:48
159
原创 leetcode684.冗余连接
并查集class Solution { void unite(int x, int y, int[] f) { f[find(f[x],f)] = find(f[y], f); } int find(int x, int[] f) { if (x == f[x]) return f[x]; return f[x] = find(f[x], f); } public int[] findRedundantConnec
2021-01-20 11:17:42
159
原创 leetcode239.滑动窗口最大值
思路利用优先队列每个位置存储一个int[2],第一个位置存放这个数的大小,第二个位置存放索引。自定义排序规则为按照数值的大小从大到小排列,这样堆顶的数就永远是最大的。需要注意的点是:我们并不需要在窗口每次移动的时候将最大值移出,除非最大值不在窗口内(这就是数组中索引的作用),利用while循环将不属于窗口的值移出.class Solution { public int[] maxSlidingWindow(int[] nums, int k) { int n = nums.l
2021-01-20 11:15:12
92
原创 leetcode1584.连接所有点的最小费用
class Solution { public int minCostConnectPoints(int[][] points) { int n = points.length; Point[] pointArr = new Point[(n*(n-1))/2]; UnionFind uf = new UnionFind(n); int index = 0; for (int i = 0; i < n; i++)
2021-01-20 11:08:16
166
原创 关于Java中的排序
1. 对基本类型数组排序默认顺序为从小到大,如何要自定义数组的排序顺序,只能将其自动装箱后自定义排序规则package sort;import java.util.Arrays;import java.util.Comparator;public class IntSort { public static void main(String[] args) { int[] arr = new int[]{1, 2, 3, 6, -1, 3, 0, 9};
2021-01-20 11:04:05
133
原创 [Mysql]-Mysql事务简介
文章目录事务:1.事务简介2.事务的四大特征3.事务提交、回滚4.事务特性--隔离性4.1隔离性有隔离级别4.2读未提交4.3 读已提交4.4 可重复读4.5 串行化4.6 脏读、幻读、不可重复读1.脏读(读取未提交数据)2.不可重复读:(前后多次读取,数据内容不一致)3.幻读:(前后多次读取,数据总量不一致)不可重复读和幻读到底有什么区别呢?参考博客:https://www.jianshu.com/p/081a3e208e32事务:1.事务简介(1)在 MySQL 中只有使用了 Innodb 数据
2020-12-15 01:04:42
188
原创 [github]-加速github访问
1.修改本地host文件windows本地host文件位置位于C:\Windows\System32\drivers\etcmac/linux系统的hosts文件的位置如下:/etc/hosts2.增加github.com和github.global.ssl.fastly.net的映射获取Github相关网站的ip访问https://www.ipaddress.com,拉下来,找到页面中下方的“IP Address Tools – Quick Links”分别输入github.global.ss
2020-12-15 01:02:49
541
原创 事务相关知识总结
参考博客:https://www.jianshu.com/p/081a3e208e32事务:1.事务简介(1)在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。(2)事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。(3)事务用来管理 insert,update,delete 语句。2.事务的四大特征一般来说,事务是必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔
2020-12-10 10:25:51
225
原创 leetcode 37. 解数独
class Solution {public: bool row[9][9],col[9][9],cell[3][3][9]; void solveSudoku(vector<vector<char>>& board) { memset(row,false,sizeof row); memset(col,false,sizeof col); memset(cell,false,sizeof cell);
2020-11-12 11:06:53
108
原创 leetcode 30. 串联所有单词的子串
思路滑动窗口将字符串s分为多个长度的w(每个单词长度)的子区间,使用hash保存words中每个单词的个数再开一个hash保存遍历时的每个单词用cnt来记录子串中合法的单词个数每次遍历,和m*w之前的那个单词比较,如果单词在第一个开的hash中,就减去那个单词判断新的单词是不是保存在hash里且不超过words中的那个单词的个数,如果是,代表这个单词为合法单词,cnt+1,当cnt和m(words.size)相等时,即为一组结果,将j-(m-1)*w存入结果集class Solution
2020-11-12 09:56:52
160
原创 狂神说 Redis笔记
文章目录nosql为什么要用nosql什么是NOSQLNoSQL特点:了解:3V+3高alibaba架构演进nosql数据类型nosql四大分类KV键值对:文档型数据库(bson格式,和json一样):CAPBASERedis入门Redis能干嘛:特性:学习中需要用到的东西:Redis安装Windows下安装Linux下安装通过指定的配置文件启动服务使用redis-cli客户端连接查看redis进程是否开启如何关闭redis服务呢?shutdown测试性能命令参数如何查看分析基础知识五大基本数据类型Redi
2020-11-05 13:47:16
5266
2
原创 KMP算法
#include <cstdio>#include <vector>#include <string>using namespace std;//前后缀表void prefix_table(string pattern, vector<int> &prefix, int n) { prefix[0] = 0; int len = 0; int i = 1; while (i < n) {
2020-10-21 23:27:54
110
原创 docker 常用命令总结
Docker命令帮助命令docker version # 显示docker的版本信息docker info # 显示Docker的系统信息,包括镜像和容器的数量docker 命令 --help # 帮助命令帮助文档地址:https://docs.docker.com/reference/镜像命令docker images[root@ecs-029-docker docker]# docker imagesREPOSITORY TAG
2020-10-18 10:22:01
282
原创 Docker安装 总结
文章目录Docker安装Docker的基本组成安装Docker环境准备环境查看安装(centos)阿里云镜像加速回顾hello-world流程底层原理Docker安装Docker的基本组成镜像(image):docker镜像就好比一个模板,可以通过这个模板来创建容器服务,tomcat镜像=》run==》tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终的服务运行或项目运行就是在容器中的)容器(container):Docker利用容器技术可以做到独立运行一个或一组应用,通过
2020-10-18 10:06:43
282
原创 leetcode 474. 一和零
class Solution { public int findMaxForm(String[] strs, int m, int n) { int[][] dp = new int[m + 1][n + 1]; for (String s : strs) { int[] cnt = count(s); for(int i = m;i>=cnt[0];i--){ for(int j.
2020-10-13 12:53:02
126
原创 leetcode 49. 字母异位词分组
public class Solution { public List<List<String>> groupAnagrams(String[] strs) { if (strs.length == 0) { return new ArrayList<>(); } Map<String, List<String>> map = new HashMap<>()
2020-10-12 22:34:19
94
转载 狂神 SpringBoot笔记整合
SpringBoot01:Hello,World!https://mp.weixin.qq.com/s/QSm0G1pgosE4H4IQGx9uTwSpringBoot02:运行原理初探 https://mp.weixin.qq.com/s/hzRwZvjYSX-dy-9Drz94aQSpringBoot03:yaml配置注入 https://mp.weixin.qq.com/s/E4WgcVIFxVVrfEZau-MikgSpringBoot04:JSR303数据校验及多环境切换 https://m
2020-10-10 15:19:51
1609
原创 Spring 事务操作
事务操作概念什么是事务事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败,所有操作都失败典型场景:银行转账事务四个特性(ACID):原子性:不可分割一致性:总量不变隔离性:两个人同时操作,不会对彼此产生影响持久性:提交后表中数据发生真正变化搭建环境创建数据库表,添加记录创建service,搭建dao,完成对象的创建和注入。service注入daodao注入jdbctemplate,在JDBCTemplate注入dataSource在d
2020-10-09 14:01:10
157
原创 Spring JdbcTemplate总结笔记
JDBCTemplate概念和准备Spring框架对JDBC进行封装,使用JDBCTemplate方便实现对数据库操作引入依赖<dependency> <groupId>org.springframework</groupId> <artifactId>org.springframework.orm</artifactId> <version>3.1.2.RELEASE</version&g
2020-10-08 20:01:06
345
原创 IOC控制反转
IOC容器(控制反转)1. IOC底层原理xml解析工厂模式反射概念和原理什么是IOC控制反转,把对象的创建和对象之间的调用过程,交给Spring进行管理使用IOC目的:为了耦合度降低做入门的案例就是IOC实现工厂模式目的:降低耦合度到最低限度IOC过程,进一步降低耦合度xml配置文件,配置创建的对象<bean id="dao" class="com.yang.UserDao"/>第二步 有service和dao类,创建工厂类cla
2020-10-08 00:35:57
233
原创 AOP面向切面编程
AOP(面向切面编程)概念:面向切面编程(面向方面编程)利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。通俗描述:不通过修改源代码方式,在主干功能里添加新功能底层原理AOP底层使用动态代理方式有两种情况的动态代理有接口情况,使用JDK动态代理没有接口情况,使用CGLIB动态代理有接口情况,使用JDK动态代理创建UserDao接口实现类代理对象,增强类的方法没有接口情况,使用CGLIB动态代理
2020-10-08 00:31:55
178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人