- 博客(55)
- 收藏
- 关注
原创 双指针问题
最近做LeetCode,有些算法的时间复杂度降不下来,思考一会才醒悟该用双指针去解决。LeetCode上面用双指针的题目还挺多的,经常用来降低时间复杂度,应该熟记于心。这里记录一下双指针问题,方便以后回忆复习。比如题号为27,209,977的题目等等都可以采用双指针。这里放一个其他博主的文章链接,方便学习:https://www.cnblogs.com/xuwc/p/13954142.html...
2021-10-11 10:32:51 87
原创 进程和线程
简单理解进程:对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。简单理解线程:有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务...
2020-03-02 15:32:34 161
原创 分析StringBuffer和StringBuilder和String类
1.效率: StringBuilder > StringBuffer > String。2.线程:单线程用StringBuilder,如果涉及到多线程,用StringBuffer比较好,StringBuffer是线程安全的,通过关键字synchronized 来实现。因为StringBuffer支持并发操作,而StringBuilder不支持,而StringBuilder的效率...
2020-02-14 21:33:45 143
原创 (Java)剑指offer--二维数组中的查找
题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。一开始理解错了题意,后来才发现题目说的可能是这种样例:31 2 32 3 44 5 6而我一开始以为都是31 2 34 5 6 7 8 9这样的话每行最大的就是最右边的数...
2020-02-13 16:06:12 112
原创 navicat连接服务器数据库1130
ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server”服务器登录mysqlmysql -u root -pEnter password:输入数据库密码GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '数据库密码' WITH...
2019-11-21 15:10:04 159
原创 centos下nginx配置及环境变量配置
菜鸟教程的配置教程跟着上面的配置就行。配置环境变量:在根目录下运行 vim /etc/profile在最后面加入:export NGINX_HOME=/usr/local/nginxexport PATH=$PATH:$NGINX_HOME/sbin然后运行:source /etc/profile 让配置文件生效,输入nginx -v,出现版本信息就代表环境变量配置成功。进...
2019-11-20 12:13:45 7371 3
原创 MarkDown基础语法
基础语法传送门这个总结的挺好,方便自己忘记的时候查看一下基础语法。现在写博客基本都是用markdown,多写的话基础语法还是很快会熟练的。
2019-11-20 10:39:03 105
原创 QDOJ 增加判题机,修改前端,开放权限
利用开源QDOJ进行二次操作。https://github.com/QingdaoU/OnlineJudg增加判题机在新机子上部署QDOJ,修改docker-compose.ymlversion: "3"services: judge-server: image: registry.cn-hangzhou.aliyuncs.com/onlinejudge/judge_se...
2019-11-19 13:34:52 2249 5
原创 c++编程题文件读取和随机数
之前因为经常出编程题,自己造数据,所以种类记录一下自己出数据的方法,涉及到简单的文件读取和随机数。随机数要取得[ a , b )的随机整数,使用( rand() % ( b - a ) ) + a ;要取得[ a , b ]的随机整数,使用( rand() % ( b - a + 1 ) ) + a ;要取得( a , b ]的随机整数,使用( rand() % ( b - a ) ...
2019-11-18 19:49:25 415
原创 Java(剑指offer)矩形覆盖
题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?分析:和跳台阶是一样的,见跳台阶分析:https://blog.csdn.net/wuhenglan/article/details/98505658public class Solution { public int RectCover(in...
2019-08-06 15:21:58 103
原创 Java(剑指offer)二叉树的深度
题目:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。分析:一开始判断root是否为null,root为null的时候,深度为0,也便于后续递归,比较左子树和右子树的深度,每次返回较深的那一边,这样每次选择的都是最长的那边,每次递归深度+1/**public class TreeNode { int v...
2019-08-06 15:15:31 115
原创 Java(剑指offer)跳台阶
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。分析:一阶只有1种方法,2阶2种,当n大于2的时候,假设n为8,因为每次只能跳1或2,所以到8的方法肯定为到6的方法数+到7的方法数,因为7到8只有一种跳法,6到8可以+1+1或者+2,但是因为+1的时候到了7,会与之前到7的方法数重复计算,所以这个是一个简单的递归,n...
2019-08-05 18:19:12 98
原创 springboot拦截器静态资源丢失404
如果在springboot的版本2.0以上且用的是HandlerInterceptor拦截器,那么所有的静态资源请求都会被拦截,从而造成404.所以要在拦截器中排除静态资源路径。@Configurationpublic class StaticConfig implements WebMvcConfigurer { @Override public...
2019-05-29 19:05:16 1447
原创 springboot数据库拒绝连接
connect to server at 'localhost' failed error:'Access denied for user 'root'@'localhost' (using password: YES)'我这里只说一种很坑的地方。如果是使用了springboot且是用yml配置。数据源配置数据库密码的时候,如果你的密码是纯数字,且有前导0,类似0000123,那...
2019-05-29 18:59:16 1659 6
转载 Token验证详解
为什么使用Token验证:在Web领域基于Token的身份验证随处可见。在大多数使用Web API的互联网公司中,tokens 是多用户下处理认证的最佳方式。以下几点特性会让你在程序中使用基于Token的身份验证1.无状态、可扩展2.支持移动设备3.跨程序调用4.安全那些使用基于Token的身份验证的大佬们大部分你见到过的API和Web应...
2019-05-13 11:41:41 4715 2
转载 COOKIE和SESSION有什么区别?
原文:https://www.zhihu.com/question/19786827/answer/287521441. 由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Sessio...
2019-05-13 11:35:36 98
转载 实体entity、JavaBean、Model、POJO、domain的区别
Java Bean、POJO、 Entity、 VO , 其实都是java 对象,只不过用于不同场合罢了。按照 Spring MVC 分层结构:JavaBean: 表示层 (Presentation Layer)Entity: 业务层 (Service layer)Dao: 数据访问层 (data access layer)。Entity接近原始数据,Model接近业务对象~...
2019-05-13 11:32:05 650
原创 JAVASE和JAVAEE
还记得很久之前都分不清楚SE和EE的区别,感觉也没什么区别,光看理论也不理解,但是理论还是先要有的。Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,En...
2019-05-11 18:55:37 193
转载 Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释
原博客传送门 遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用。为啥要实现这个 Serializable 接口,也就是为啥要序列化c,serialVersionUID 这个的值到底是在怎么设置的,有什么用。有的是1L,有的是一长串数字,迷惑ing。我刚刚见到这个关键字 Serializab...
2019-05-09 22:08:09 117
转载 mysql中timestamp,datetime,int类型的区别与优劣
转载请注明来自souldak,微博:@evagle原文地址:https://blog.csdn.net/souldak/article/details/11737799以下内容整合筛选自互联网:int1. 占用4个字节2. 建立索引之后,查询速度快3. 条件范围搜索可以使用使用between4. 不能使用mysql提供的时间函数结论:适合需要进行大量时间范围查询的数据表da...
2019-05-09 20:08:33 145
原创 ajax的异步请求和同步请求
在ajax中可以设置关键字async去改变异步或者同步,默认是true,异步,false为同步。xxx.ajax({ url: "xxx", type: "post", dataType: "json", async: true, data: xxx, success: function(data){ xxx; }});如果是异步处理,ajax请求后,会继续执行aja...
2019-05-02 20:28:43 794
原创 Python基础语法小知识点(坑点)
最近复习了一下python3的基础语法,期间也有不少坑和小知识点,例如:python3中的类,类中的构造函数,一维数组,二维数组,一行输入多个数等等等等,现在记录一下这些坑点。一行输入多个数字。可以用如下方法,当个数比较少的时候,例如2,3,4都可以,int是数据类型 n , m = map( int , input().split(' ') ) 当数字比较多的时候,就要用到...
2019-05-02 20:20:38 248
原创 寒假答辩之基于ssm框架的家教网站之多人开发准备篇
多人开发是一件很麻烦的事情,如果没有足够的准备,就会有很多矛盾,代码也会有很多漏洞下面我就说一下我们在多人开发遇到的一些问题。在多人开发项目的时候首先要明确分工,前后端,整合,逻辑业务等等,因为需求和功能不同,代码不能混写,否则最后改bug的时候找不到写bug的人,让他人接手又不熟悉代码,会浪费很多时间调试。 其次就是前后端的接口路径一定要一样,开始就要有规定,否则会给整合的人带...
2019-04-23 14:07:02 1042
原创 寒假答辩之基于ssm框架的家教网站之后台工具篇
写代码首先最重要的就是熟悉开发工具,好的开发工具真的可以节省很多时间。因为我们是多人开发,主要后台用到的工具就是eclipse + Navicat Premium+ git + Postman + SecureCRT一、eclipseeclipse是目前大多数学生学习java所用到的软件,所以大多数人都会用也比较熟悉,在多人开发中可以省去学习其他软件和熟悉软件的时间,同时ecli...
2019-04-23 13:38:26 593
原创 寒假答辩之基于ssm框架的家教网站之AOP和DTO
一、DTO对象DTO即Data Transfer Object的缩写,就是数据传输对象,主要用于远程调用等需要大量传输对象的地方。比如我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达...
2019-04-23 13:23:00 481 1
原创 LeetCode之汉明距离(二进制,位运算)
执行用时 :8 ms, 在Hamming Distance的C++提交中击败了93.82% 的用户内存消耗 :8.2 MB, 在Hamming Distance的C++提交中击败了75.22% 的用户两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 2^31.示例:...
2019-04-16 21:01:51 615
原创 LeetCode最大正方形(动态规划)
执行用时 :28 ms, 在Maximal Square的C++提交中击败了93.30% 的用户内存消耗 :10.5 MB, 在Maximal Square的C++提交中击败了96.69% 的用户定义一个和题目给定大小一样的二维数组,dp[i][j]表示在i , j 位置可以构成的最大正方形的边长递推式为:dp[i][j] = min( dp[i - 1][j] , min( dp...
2019-04-15 13:01:40 858
原创 LeetCode最接近原点的K个点
执行用时 :508 ms, 在K Closest Points to Origin的C++提交中击败了58.97% 的用户内存消耗 :39.3 MB, 在K Closest Points to Origin的C++提交中击败了77.94% 的用户一开始以为可以直接用multiset过,想了一下好像不行,类似于结构体排序,选出最小的前K个就可以。class Solution {p...
2019-04-14 21:59:15 223
原创 极差,set解法
题目内容:在黑板上写了N个正整数组成的一个数列,进行如下操作:每次擦去其中的两个数a和b,然后在数列中加入一个数a*b+1,如此下去直至黑板上剩下一个数,在所有按这种操作方式,最后得到的数中,最大的为max,最小的为min,则该数列的极差定义为M=max-min.请你编程,对于给定的数列,计算极差.输入描述输入包含多个测试集.每个测试集的第一行N表示正整数序列长度(0<=N<=500...
2019-04-01 17:45:24 258
原创 AtCoder-Contest122-C题-GetAC之前缀和预处理
C题传送门题目的意思大概就是给你一个长度为N的字符串,M次询问区间,问你L,R中有多少个AC子列这种题很明显是要预处理的,简单的一维前缀和处理,否则肯定超时前缀处理只需要O(n+m)开一个数组,下标 i 表示到第 i 个位置有多少个AC所有答案所求的区间就可以之间相减结果 ,而不用循环去找题面如下:样例:输入8 3ACACTACG3 72 31 8...
2019-03-27 20:43:07 229 2
原创 LeetCode之缺失数字(Java 1ms)
执行用时 :1 ms, 在Missing Number的Java提交中击败了99.53% 的用户内存消耗 :41.8 MB, 在Missing Number的Java提交中击败了1.00% 的用户用一个数组标记出现过的数字,再遍历这个数组看是否有为0的值,即为缺失的值。class Solution { public int missingNumber(int[] nums...
2019-03-10 13:54:05 354 1
原创 LeetCode之检测大写字母(Java)
执行用时 :20 ms, 在Detect Capital的Java提交中击败了82.19% 的用户内存消耗 :35.6 MB, 在Detect Capital的Java提交中击败了18.85% 的用户根据特殊情况,判断是不是全部是小写,全部是大写,和小写后面跟大写,大写后面跟小写的不符合情况class Solution { public boolean detectCap...
2019-03-10 13:47:28 299 1
原创 LeetCode之最大子序和一重for循环(Java)
如果sum小于0,证明再往后面加就越来越小,此时应该重新计算和,并且与之前的相比较,看哪个大。执行用时 :14 ms, 在Maximum Subarray的Java提交中击败了74.80% 的用户内存消耗 :43.6 MB, 在Maximum Subarray的Java提交中击败了1.20% 的用户class Solution { public int maxSubAr...
2019-03-09 13:41:18 156
原创 LeetCode之二分查找
基本的二分 直接用的lower_bound,没有写while(left < rigth) 这种 ,lower_bound本质也是二分查找class Solution {public: int search(vector<int>& nums, int target) { int x = lower_bound( nums.begin...
2019-03-08 15:12:50 149 1
原创 LeetCode之存在重复元素(两种方法)
这题我想到了三种方法 , 方法一用set存储,利用set有序不重复的特点,看每次set的元素个数是否变化,如果不变则是有重复。执行用时 :112 ms, 在Contains Duplicate的C++提交中击败了10.21% 的用户内存消耗 :16.6 MB, 在Contains Duplicate的C++提交中击败了0.92% 的用户class Solution {publi...
2019-03-08 14:55:13 693
原创 LeetCode之相对名次(STL写法)
执行用时 :36 ms, 在Relative Ranks的C++提交中击败了21.59% 的用户内存消耗 :13 MB, 在Relative Ranks的C++提交中击败了0.00% 的用户这道题我牺牲了内存 , 主要练习了一下STL , 这题的数据范围是10^4 ,按道理可以暴力,但是我一开始看错了范围看成了10^5;然后就一直写STL去了第一步先用pair数组存下每个数和对...
2019-03-08 13:17:08 202 1
原创 LeetCode之分发饼干
对两个数组排序,然后遍历饼干数组看是否满足条件,满足则计数。class Solution {public: int findContentChildren(vector<int>& g, vector<int>& s) { int ans = 0; sort( g.begin() , g.end() ); ...
2019-03-08 13:17:00 184 1
原创 LeetCode之宝石与石头O(J.length()+S.length())
这道题的数据量并不大,双重for肯定是出来了的,但是我不想写双重for,于是用了其他方法我的办法就是数组标记,题目说了J中的不会重复,利用ASCII将J中的宝石放入一个标记数组中,遍历S的时候如果标记数组对应的值不为0,则说明是宝石,计数++;class Solution {public: int numJewelsInStones(string J, string S) ...
2019-03-08 13:16:51 235 1
原创 LeetCode之有序数组的平方
执行用时 :312 ms, 在Squares of a Sorted Array的C++提交中击败了8.00% 的用户内存消耗 :15.3 MB, 在Squares of a Sorted Array的C++提交中击败了100.00% 的用户老夫写算法从来是暴力一把梭;其实这题吧,把每个平方存起来然后排个序就好了,也懒的想其他方法了。内存少啊class Solution {...
2019-03-08 13:16:32 283
原创 LeetCode之转换小写字母
根据ASCII规则 遇到大写字母就加32就好了class Solution {public: string toLowerCase(string str) { for( int i = 0 ; i < str.length() ; i++ ){ if( str[i] >= 'A' && str[i] <= '...
2019-03-08 13:16:02 194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人