自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 最长回文串(中心扩散+动态优化)

找出字符串中最长回文串,暴力法及Manacher算法这里不列了,第一种不推荐,另一种想深入研究可自行搜索~~1 先介绍一下中心扩散思想:从每一个位置,向二边扩散即可(区分奇数和偶数个数)2 基于中心思想,利用动态规划,这里可推出具体的公式来假设d[i][j]表示字符串中第i个字符到第j个字符是否为回文串,则d[i-1[j+1] 可转化为:若d[i][j]为回文串,则a[i-1]==a[j+1]时,d[i-1][j+1]为回文串,其它情况为false当i-1== j+1 的时候就是两边界相等的时

2020-06-06 20:40:27 154

原创 linux常用命令梳理(持续更新中)

1.1 统计某个方法出现的次数,这时就要用到grep -c,如下命令grep -c key_word file1 file2 file31.2 统计出现的行数grep keyword file1 file2 |wc -l查找时不区分大小写:$ grep –i “被查找的字符串” 文件名1.3用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数。2 怎么使一个命令在后台运行?一般都是使用 & 在命令结尾

2020-05-31 21:04:49 598

原创 买卖股票的最佳时机(可多次买卖,含交易手续费)

class Solution {public int maxProfit(int[] prices, int fee) {if(pricesnull||prices.length0){return 0;}int[] buy=new int [prices.length];int[] sell=new int[prices.length];buy[0]=-prices[0];sell[0]=0;for(int i=1;i<prices.length;i++){buy[i]=Math.

2020-05-31 15:26:01 688

原创 hashmap的put方法解读

参考文章https://www.cnblogs.com/captainad/p/10905184.html添加链接描述 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } /** * Implements Map.put and related methods. * * @param hash hash for key *

2020-08-17 14:26:47 341

原创 testng源码分析:依赖管理的实现

参考文章https://www.cnblogs.com/Ming8006/p/8603523.html

2020-08-14 16:17:46 140

原创 牛客--字符流中第一个不重复的字符

import java.util.HashMap;public class Solution { StringBuffer sb=new StringBuffer(); //Insert one char from stringstream public void Insert(char ch) { sb.append(ch); } //return the first appearence once char in current string

2020-07-25 12:56:59 146

原创 牛客--统计一个数字在排序数组中出现的次数

public class Solution { public int GetNumberOfK(int [] array , int k) { if(array.length==0) return 0; int high=array.length-1; int num=0; int low=0; if(k>array[high]||k<array[low]){ return 0;

2020-07-25 12:53:20 142

原创 剑指 Offer 11. 旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1class Solution { public int minArray(int[] numbers) {int low=0;int high=numbers.length-1;while(low<high){

2020-07-24 21:28:46 71

原创 java十大排序算法

1 冒泡排序(最大的先落底)/** * 冒泡排序 * * @param array * @return */ public static int[] bubbleSort(int[] array) { if (array.length == 0) return array; for (int i = 0; i < array.length; i++) for (i

2020-07-22 10:26:52 91

原创 剑指 Offer 57 - II. 和为s的连续正数序列

输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。class Solution { public int[][] findContinuousSequence(int target) { List<int[]> list = new ArrayList<>(); int start=1 ;int end=1; int sum=

2020-07-19 20:50:53 75

原创 java求前k个最小数

class Solution { public int[] getLeastNumbers(int[] arr, int k) { if (k == 0) { return new int[0]; } else if (arr.length <= k) { return arr; } partitionArray(arr, 0, arr.length - 1, k); int[] res = new i

2020-07-19 17:38:21 187

原创 扑克牌中的顺子

从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。class Solution { public boolean isStraight(int[] nums) { Arrays.sort(nums); int skey=0; boolean flag=false; for(int i=0;i<nums.length-1;i++)

2020-07-17 21:16:53 165

原创 股票的最大利润(一次买卖)

假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?class Solution { public int maxProfit(int[] prices) { int cost=Integer.MAX_VALUE; int profit=0; for(int i=0;i<prices.length;i++){ cost=Math.min(cost,prices[i]); profit=Math.

2020-07-17 20:17:54 318

原创 剑指 Offer 58 - I. 翻转单词顺序

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。class Solution { public String reverseWords(String s) { String res=""; String []strArr=s.trim().split(" "); for(int i=strArr.length-1;i>=

2020-07-15 21:45:09 81

原创 第一个只出现一次的字符(leetcode,剑指offer)

class Solution { public char firstUniqChar(String s) { char res=' ';int [] ch=new int[256];for(int i=0;i<s.length();i++){ ch[s.charAt(i)]++;}for(int i=0;i<s.length();i++){ if(ch[s.charAt(i)]==1) { res=s.charAt(i);

2020-07-14 22:12:58 140

原创 最长无重复子串

思路:设定一个初始基准下标 i=-1j从0到字符串长度,遍历,重复字符出现情况是出现在当前左侧区域内( abcdb此时最新的i<j, 重复字符b,比较记录的最大串, abcd的长度与 j-i的长度 ----j为4,i为1 ),另一种是 (abcde,此时长度就是在dp[j-1]基础上+1)利用hashmap记录字符出现下标class Solution { public int lengthOfLongestSubstring(String s) { HashMap&l

2020-07-14 20:42:50 94

原创 礼物的最大价值

class Solution { public int maxValue(int[][] grid) {int lenh=grid.length;int lenl=grid[0].length;for(int i=0;i<lenh;i++){ for(int j=0;j<lenl;j++){ if(i==0&&j==0) continue; else if(i==0) grid[i][j]+=grid[i][j-1]; .

2020-07-12 15:14:05 106

原创 把数字翻译成字符串

题目描述:给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”思路:f(i)=f(i-1)+f(i-2) [10,25] i-1,i可被分解时其它 f(i)

2020-07-11 21:52:28 147

原创 把数组排成最小的数(leetcode,剑指offer,java)

排序判断规则: 设 numsnums 任意两数字的字符串格式 xx 和 yy ,则若拼接字符串 x + y > y + xx+y>y+x ,则 m > nm>n ;反之,若 x + y < y + xx+y<y+x ,则 n < mn<m ;作者:jyd链接:https://leetcode-cn.com/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof/solution/mian-shi-ti-45-

2020-07-11 20:17:19 136

原创 一次编辑(java,leetcode)

字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。/*始终保持lena为最长串,要对字符串判空 null;还要注意一个字符时的情况 eg b和""这种*/class Solution { public boolean oneEditAway(String first, String second) { if(first==null||second==null) return

2020-07-10 22:03:24 177

原创 剑指 Offer 56 - I. 数组中数字出现的次数(有2个只出现一次,其它均出现2次)

一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。class Solution { public int[] singleNumbers(int[] nums) {int res[]=new int [2];int i=0;int sum=0;while(i<nums.length){ sum^=nums[i]; i++;}int first=1;while((su

2020-07-08 17:23:31 126

原创 字符串转化成整数java-剑指offer

第一种方法(超时了。。)class Solution { public int strToInt(String str) { int flag=1; int i=1; int num=0; int temp=0; str=str.trim(); if(str.charAt(0)=='-'){ flag=-1; }else if(str.charAt(0)=='+'){ flag=1; }else{ i=0;

2020-07-08 17:01:38 131

原创 剑指 Offer 64. 求1+2+…+n

终止条件 :n-1>0class Solution {public int sumNums(int n) {boolean flag = n > 1 && (n += sumNums(n - 1)) > 0;return n;}}

2020-07-08 15:41:08 69

原创 网站502 Bad Gateway

服务器超载——如果服务器耗尽内存,服务器可能会崩溃,原因是站点上有大量访问者或DDOS攻击。防火墙阻止请求——防火墙可能会阻止边缘服务器和上游服务器之间的通信。某些DDoS保护系统可能会过度反应并阻止来自内容传送系统的请求。编程错误——有时网站代码中的一个错误可能意味着请求不能得到正确的响应,从而导致出现这个错误。网络错误 --ping定位——DNS问题、路由问题和ISP相关的问题也可以导致错误网关。服务器软件超时——当Web服务器需要更多时间来完成并且缓存工具达到其超时值时,也会发生此错误。

2020-07-08 15:24:32 473

原创 网页白屏具体原因分析

浏览器兼容vue代码在谷歌中正常使用,但是在ie中显示白屏js封装问题js如果有问题,页面就不会显示,也有可能是后端文件编译的时候没有将文件编译过去,导致输入地址访问界面的时候出现空白URL网址无效或含有中文字符(入门级错误)APP内展示URL的来源主要是后端返回或前端拼接,甚至前端hardcode,网址存在不确定性,可能是无效或含有中文字符。大部分浏览器是能打开带有中文字符的网络地址,但是iOS的内嵌网页加加载框架无论是UIWebView还是WKWebView,都不能打开带有中文字符的网络地址

2020-07-08 15:16:07 6050

原创 安全测试基础项

参考文章链接https://www.cnblogs.com/yaohu/p/10304795.html安全测试基础项输入输出检验SQL注入高 1、输入单引号'看程序是否会报错。XSS高 1、给任意参数赋值“" '<img> abc ( ) =”看返回的页面中是否有对这些字符进行转义或其它编码处理。命令注入高 1、在目测可能有系统命令字符串的参数中输入常见的系统命令,看返回结果中是否能体现系统命令执行结果。代码注入高 1、根据测试目标应用系统的编程语言类型尝试输入简易的测

2020-07-08 14:47:12 340

原创 压测图表报告及关注的指标

TPS–吞吐量 :每秒服务器处理的http申请数TPS:Transactions Per Second(每秒处理的事物数)。一个事务是指向服务器发送请求然后服务器做出反应的过程QPS:每秒查询率。它是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准那么我们对于一个页面做一次访问,就会形成一个TPS;但一次页面访问,可能产生多次对服务器的请求,服务器对这些请求,计为“QPS“。error --错误率最大响应时间最小响应时间平均响应时间RT–90,95,99线 :百分之多少的耗

2020-07-07 20:47:17 600

原创 B-(B)树与B+,B*树的区别

B树实际使用的B树都是在原B树的基础上加上平衡算法,即“平衡二叉树”(B树)B-树 **是一种多路搜索树(并不是二叉的)**: 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字) 5.非叶子结点的关键字个数=指向儿子的指针个数-1; 6.非叶子结点的关键字:K[1], K

2020-07-07 10:52:45 943

原创 java 快排

private static void QuickSort(int[] num, int left, int right) { //如果left等于right,即数组只有一个元素,直接返回 if(left>=right) { return; } //设置最左边的元素为基准值 int key=num[left]; //数组中比key小的放在左边,比key大的放在右边,key值下标为i int i=left; int j=right; while(i<j){

2020-07-07 10:33:38 995

原创 java 猴子称大王

思路:num为数组长度;维持一个同长度的数组,用来记录对应下标元素是否为标记,点中的猴子被标记 为0,即为淘汰,直至num=0时的那个元素即为最后一个猴子import java.util.Scanner;public class demo { /* * 猴子选大王 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt();

2020-07-05 20:31:41 287

原创 java ==和equals的区别

==1、基础数据类型:比较的是他们的值是否相等,比如两个int类型的变量,比较的是变量的值是否一样。2、引用数据类型:比较的是引用的地址是否相同,比如说新建了两个User对象,比较的是两个User的地址是否一样。equalsequals方法是在Object中就有。注意了这里的源码是Object里面的equals。从这个源码中你会发现,比较的是当前对象的引用和obj的引用是否相同,也就是说比较的默认就是地址String中equals方法String中的equals方法其实比较的是字符串的内容

2020-07-04 08:52:00 1233

原创 数据库的乐观锁和悲观锁

悲观锁:**悲观锁认为并发是每时每刻都在发生的。因此为了防止并发,我们在update数据库的数据行之前,需要先把这行数据先锁定起来。**其他的任务如果想要update当前的数据行,需要等待当前的任务完成,亦或是选择放弃等待,给外界提示。通过这样的方式。悲观锁实现了更新数据行的串行化,即每个更新语句之间是串联的执行的。悲观锁由数据库提供支持,oracle mysql均提供 select for update 这种语句,它对查询出来的行进行加锁。这种加锁的方式,第一个加锁成功后,后面任务会一直尝试加锁到加上

2020-07-03 21:15:35 112

原创 mysql 回表

什么是回表?简单来说就是数据库根据索引(非主键)找到了指定的记录所在行后,还需要根据主键再次到数据块里获取数据。可以理解成先根据【普通索引】找到 【聚簇索引】,再根据聚簇索引 找到对应的行记录...

2020-07-03 21:08:21 228

原创 java 控制反转Ioc和依赖注入DI,面向切面-AOP

依赖和耦合(Dependency and Coupling)依赖:依赖描述了两个模型元素之间的关系,如果被依赖的模型元素发生变化就会影响到另一个模型元素。简单的说,依赖就是一种需要。鱼需要水才能生存,鱼对水就有依赖关系;人需要进食才能活着,人对食物就有依赖关系。耦合:如果改变程序的一个模块要求另一个模块同时发生变化,就认为这两个模块发生了耦合。简单地说,耦合就是发生了依赖。和上面的例子一样,鱼和水之间发生了耦合,如果水发生了改变,会影响到鱼;人和食物之间发生了耦合,如果食物发生了改变,也会对人造成影

2020-07-02 08:54:08 197

原创 nginx.conf内容详解

启动nginx/usr/local/webserver/nginx/sbin/nginx反向代理先解释一下正向代理:比如我们访问某国外网站,正常是无法直接访问的,此时利用正向代理,我们先把请求发至 正向代理服务器,由正向代理服务器去请求国外网站后把结果返回,对于国外网站而言,初始真实发起请求的客户端是未知的;反向代理:我们请求某大流量网站,eg国内的购物网站,此时请求的服务器为分布式部署,由nginx反向代理进行分发流量,但具体我们的请求打到哪台服务器上,对用户来说是不可知的,这里隐藏了服务器的

2020-06-29 21:44:26 233

原创 my.cnf配置文件详解

http://blog.itpub.net/26690043/viewspace-719495/my.cnf详解

2020-06-28 21:52:45 266

原创 springboot文档

http://springboot.fun/

2020-06-26 17:56:45 117

原创 HashMap(数组+链表+红黑树)和TreeMap(红黑树结构)对比

是否线程安全二者均为非线程安全hashmap :如果需要满足线程安全,可以用Collections的synchronizedMap方法使HashMap具有线程安全的能力,或者使用ConcurrentHashMap底层结构实现hashmap:基于哈希表实现,数组+链表+红黑树-----------在JAVA 8中,利用了红黑树,所以在JAVA 8 是由数组+链表+红黑树组成。从JAVA 7中得知,在查找元素时候,可以根据hash值快速定位到数组具体的下标,但是后面的操作需要顺着链表一个一个的比较下去

2020-06-26 14:34:37 1769

原创 红黑树由来及特性(平衡二叉树)

树树状图是一种数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树;二叉树二叉树特点是每个结点最多只能有两棵子树,且有左右之分二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树

2020-06-26 14:03:26 227

原创 http请求的四部分(请求行,请求头,空行,请求体)

抓包工具抓取数据第一部分 :请求行第二部分:请求头第三部分:空行第四部分:请求体(body)请求行 例如:GET /index.html HTTP/1.1 get方法将数据拼接在url后面,传递参数受限 请求方法: GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT协议版本 1.1请求头(key value形式) User-Agent:产生请求的浏览器类

2020-06-26 13:18:57 7238

空空如也

空空如也

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

TA关注的人

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