自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c#文件上传功能

c#文件上传功能(1)上传一个或多个 /// <summary> /// 积水记录图片上传 /// </summary> /// <param name="id"></param> /// <param name="files"></param> /// <returns></returns> [HttpPost]

2021-05-15 16:27:56 2711 2

原创 c# 处理Excel数据

c# 处理Excel数据处理方法(1)可以导入一些插件,如下载NPOI文件包,下载那个微软的Microsoft.Office.Interop.Excel,也可以(2)用类似mysql的方式连接,这个可以减少很多痛苦…(1)代码如下: public static void DealExcelToMySQL() { //创建 Excel对象 Application App = new Application();

2021-05-15 16:23:19 1411

原创 c# 处理Excel时间格式问题

c# 处理Excel时间格式问题很多初学者一开始处理Excel表格的时候,如果遇到处理时间或多或少都会遇到一些坑。用这种方式处理,就不会出现问题,如下所示: /// <summary> /// Excel读取为DataTable /// </summary> /// <param name="strExcelFileName"></param> /// <param name="Tab

2021-05-15 16:22:31 2437

原创 c# 连接mysql数据库

c# 连接mysql数据库1. 首先创建一个项目2.导入需要的包右键依赖项,点击管理NuGet程序包,点击浏览输入mysql点击第一个,然后右边框框可以看到下载。3.编写代码 /// <summary> /// 数据库连接 /// </summary> /// <param name="UserId"></param> /// <param name="Sq

2021-05-15 16:02:32 1997

原创 c#中天气情况的实时抓取

c#中天气情况的实时抓取天气抓取一般有两种方式。.net1. 直接请求对应的接口这种一般都是通过城市编码来实现的,比如说想查看广州的天气预报那么就请求http://d1.weather.com.cn/dingzhi/101280111.html连接即可。读者一定比较好奇为什么这个路径,其实这些接口一般有国家气象局提供,以上路径前面部分是固定的,后面的101280111.html是通过当地的一些信息拼接来的。对于如何查看城市编码或者其他的一些信息可以查看博客我实现的代码如下: priv

2021-05-15 14:13:06 1645

原创 Html中跳转到其他页面

Html页面跳转方式一一般都是通过<a>链接来跳转的,如果仅仅是前端的话,比如说我本来在登录页面,你想跳转到注册页面如何加入以下标签: <a href="register.html">注册</a>注意:登录页面和注册页面要在同一个文件夹中方式二结合到后端,你可以通过<a>标签请求一个Get请求,后端通过简单的函数处理一下,然后返回你想要的页面,例如还是方式一的例子,前端登录页面的代码:<a href="registerView"

2020-12-27 17:01:47 3403

原创 算法-题解总结

剪绳子最大 把绳子大小分为3,以及总长度余3的大小(具体看题意)滑动窗口什么是滑动窗口?其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。所以,我们要移动这个队列!如何移动?我们只要把队列的左边的元素移出就行了,直到满足题目要求!一直维持这样的队列,找出队列出现最长的长度时候,求出解!时间复杂度:O(n)...

2020-11-11 16:27:15 211

原创 笔试-给出一个字符串输出所有的排序可能(java)

1. 目的最近笔试经常遇到这样的题目,或者类似的这样的题目,但是经常不知怎么做(有毒),所以特意来此记录一下做法。2. 代码(别人的代码)import java.util.Scanner;public class Main { //以chars数组的n号位置作为交换点,向后交换 public static void paiLie(int n,char[] chars){ //递归出口:只剩一个字符,即无法交换 if (n==chars.length-

2020-10-15 22:04:48 565

原创 加起来和为目标的组合(java)

1. 题目描述2. 解题思路(1)在递归的 for 循环里加上 if (i > start && candidates[i] == candidates[i - 1]) continue; 这样可以防止 res 中出现重复项,然后就在递归调用 dfs 里面的参数换成 i+1,这样就不会重复使用数组中的数字(回溯思维)3. 代码实现(1)import java.util.*;public class Solution { public ArrayList<A

2020-10-02 09:44:46 352

原创 java面试的一些基础知识

集合ConcurrentHashMap2. CASABA问题synchronized获取锁过程升级3. lock4. volatileJMM5. 线程池线程处理流程持续…

2020-09-28 20:26:53 125

原创 (真正)解决jenkins中连接gitlab问题

1. 问题描述很多小白朋友在搞自动化部署时,应该很大可能会遇到docker中的jenkins容器连接不上gitlab问题。解决方法如下。(1)检查你的liunx服务器是否安装了git工具,没有的话就安装如下: 安装 yum install -y git 查看版本 git version(2)配置一下gita、设置用户名:git config -- global user.name '你再githlab上注册的用户名';b、设置用户邮箱:git config -- global

2020-08-22 23:37:36 4649 5

原创 docker中部署微服务时,注册,服务间访问问题

1. 描述在很多小白在服务器部署微服务问题时,经常会发现服务部署正常(部署过程没有发现错误),但是你浏览器访问注册中心的时候会发现没有服务在上面注册。为什么呢?其实docker在构建容器的时候,给每个服务一个ip,不同的容器对应的ip就不太一样。2. 方案1其实,你可以在每个微服务(包括注册中心),你只要把每个服务器的配置文件改为如下即可:如:eureka: client: service-url: defaultZone: http://服务器ip:8761/eureka

2020-08-19 19:37:33 1138

原创 java实现一个简单的消息队列

1. 说明这个使用订阅者-发布者的模式,但也可以当生产者-消费者来使用,其实消息队列你可以简单就认为是一个简单的队列(Queue),但是如果你要考虑其他的话就比较复杂了,比如说负载均衡,消息重传,过滤,备份,分布式等等,这些的话,就不是一个级别的了(那是大佬干的活)。2. 代码结构(1)Message是一个消息类的实体。(2)MessageQue是一个消息队列接口。(3)…后面的看代码或者类名,注解也能懂。(4)注意:由于个人能力有限所以还有很多东西没有实现的,或者有点问题的,请各位大侠改正,

2020-08-05 23:22:03 893

原创 剑指Offer:二叉树的镜像(java)

1. 题目描述2. 解题思路(1)用栈来做把,记录前一个结点,然后先从左边开始遍历,然后交换,再到右边开始,重复遍历即可。3. 代码实现(1)public class Solution { public void Mirror(TreeNode root) { if (root == null) return; Stack<TreeNode> stack = new Stack<>(); wh

2020-08-03 00:07:26 184

原创 剑指Offer:顺时针打印矩阵(java)

1. 题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.2. 解题思路其实大概就是从四个方向遍历,但是处理索引的时候,要额外搞搞了(我也是看答案的,我太菜了!!!)3. 代码实现import java.util.ArrayList;public class Soluti

2020-08-02 00:02:36 140

原创 GitLab如何建立一个自己分支的流程

Git学习1. 在此之前2 .游戏过程命令演示3. 分支过程演示1. 在此之前Git工具在企业级开发中,经常用到的工具,如其中的GitLab。了解Git之前,你也可以对MarkDown了解一下,这里是有它的线上版的(点我),你可以参考一下,它的编写格式。同时这里也有一个Git的在线学习工具,有点像游戏一样的东西(点我)。2 .游戏过程命令演示(1)提交git commit //提交命令,如从c1到c2过程。(2)分支Git Branch //分支//用法一:git branch n

2020-08-01 17:15:38 6570

原创 剑指Offer:包含min函数的栈(java)

1. 题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。2. 解题思路(1)可以声明两个栈,一个栈放所有的元素,一个栈放比所有元素都小的元素,到时候取出的时候,取最小即可。(2)。。变形一下。3. 代码实现(1)import java.util.Stack;public class Solution { private static Stack<Integer> stack = new Stack<&gt

2020-07-30 19:29:58 141

原创 剑指Offer:栈的压力、弹出序列(java)

1. 题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)2. 解题思路(1)从题目可以知道这是一个栈知识,所以一开始我们可以声明一个容器(栈),具体做法就是第一次遍历第一个数组,同时对比它们是否相同,最后再遍历一次比较它们是否相同即可。(2)大

2020-07-29 21:23:03 132

原创 剑指Offer:从上往下打印二叉树(Java)

1. 题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。2. 解题思路(1)一般都是用队列来做广度遍历,存储一个结点的同时,也存储它的左右结点即可。(2)。。。3. 代码实现(1)public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> arrayList = new ArrayL

2020-07-29 19:40:56 141

原创 剑指Offer:二叉搜索树的后序遍历序列(java)

1. 题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。2. 解题思路(1)感觉这道题有点像看规律,哈哈,后序遍历其实第一个元素就是二叉树最左边的,所以它是最小的。最后一个元素是根节点,故正常情况下数组会出现一半比它大,一半比它小的情况。(2)。。。思考官方答案。3. 代码实现(1)public class Solution { public boolean VerifySquenceOfB

2020-07-28 22:59:04 255

原创 剑指Offer:二叉树中和为某一值的路径(java)

1. 题目描述输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。2. 解题思路(1)最普遍的实现就是,遍历二叉树的时候,把所有的遍历结果都记录下来,然后递归调用,要注意条件的判断,最后的时候要移除重复。(2)3. 代码实现(1)public class Solution { private ArrayList<ArrayList<Integer>> arr1

2020-07-28 22:16:40 149

原创 剑指Offer:复杂链表的复制(java)

1. 题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)2. 解题思路(1)一开始打算进行两次的遍历,第一次遍历的时候,复制所有的结点,第二次遍历的的时候复制所有的随机结点,最后返回头结点即可。(但是我写代码的时候,出现点错误,有毒!!)(2)网上比较多的做法:先复制链表的next节点,将复制后的节点接在原节点

2020-07-27 21:55:07 114

原创 剑指Offer:二叉搜索树与双向链表(java)

1. 题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。2. 解题思路(1)要充分利用递归思想,把每个左右指针改向。遍历双向链表,然后返回头结点。(2)。。。3. 代码实现(1)public class Solution { public TreeNode Convert(TreeNode pRootOfTree) { TreeNode lastlist = covertNode(pRootOfTr

2020-07-26 23:18:12 90

原创 剑指Offer:字符串的排列(java)

1. 题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。2. 解题思想(1)主要是对字符进行交换。3. 代码实现(1)import java.util.ArrayList;import java.util.Arrays;public class Solution {

2020-07-25 23:17:59 144

原创 剑指Offer:数组中出现次数超过一半的数字(java)

1. 题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。2. 解题思路(1)遍历数组的时候,要注意将他们记录下来,特别是重复的数字,如果超过一半的话,很多事情都比较好办了。(2).。。3. 代码实现(1)public class Solution { public int MoreThanHalfNum_Solution

2020-07-25 22:00:54 84

原创 剑指Offer:最小的K个数(java)

1. 题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。2. 解题思路(1)可以先排序数组,然后再把前n个数字放到集合中,返回集合即可。(2)也可以用堆的思想去做,先将前K个数放入数组,进行堆排序,若之后的数比它还小,则进行调整。3. 代码实现(1)import java.util.ArrayList;public class Solution { public ArrayList<Integer

2020-07-24 22:31:01 107 1

原创 剑指Offer:连续子数组的最大和(java)

1. 题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)2. 解题思路(1)如果和小于0,则将大和置为当前值

2020-07-23 22:05:42 100

原创 java中的引用类型

1. 概述本文章主要介绍java中的一些引用的类型,只是简单的提一些,后面考虑会补充(或者需要的话,可以搜索一下更详细的)。2. 分类2.1、强引用主要就是把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到,JVM也不会回收。因此强引用是造成Java内存泄漏的主要原因之一。2.2、弱引用弱引用需要用WeakReference 类来实现,它比软引用的生存期更短,对于只有弱引用的对象 来说

2020-07-22 22:22:11 149

原创 剑指Offer:不用加减乘除做加法(java)

1. 题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。2. 解题思想(1)最近的脑袋有点不想思考,经常想参考别人的一些答案。(2)其实如果不能让你做加减乘除的运算的话,就只能做一些化为二进制做一些为运算了。3. 代码实现(1)。。。(2)public class Solution { public int Add(int num1,int num2) { while(num2 != 0){ // 计算个位

2020-07-22 21:49:44 104

原创 剑指Offer:把字符串转为整数

1. 题目描述+21474836471a33214748364702. 解题思路(1)今晚太累了,不太想动脑了,就看了一下别人的思路:若为负数,则输出负数,字符0对应48,9对应57,不在范围内则返回false。(2)…代码实现(1)public class Solution { public int StrToInt(String str){ if (str == null || str.length() == 0)

2020-07-21 23:26:56 80

原创 剑指Offer:把数组排成最小的数(java)

1. 题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。2. 解题思路(1)看成是一个排序问题,在比较两个字符串 S1 和 S2 的大小时,应该比较的是 S1+S2 和 S2+S1 的大小,如果 S1+S2 < S2+S1,那么应该把 S1 排在前面,否则应该把 S2 排在前面。3. 代码实现(1)import java.util.Arrays;publ

2020-07-18 17:08:05 137

原创 剑指Offer:丑数(java)

1. 题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。2. 解题思路(1)本题的思路最好反过来思考就好,不要想着给出一个数然后求它所有的因子。因为我们知道所有的质因子了,所有可以用质因子求出所有的丑数即可。3. 代码实现(1)public class Solution { public int GetUglyNumber_Solution(int

2020-07-18 16:35:25 132

原创 安恒实习

实习篇概述实习经历第一周概述本文章主要介绍,我到安恒实习的一些个人感受,安恒是一个主要搞安全的一个比较大的公司。我的岗位是产品研发,进入的是一个恒星计划。关于恒星计划就是该公司提供一个多月的相关培训,然后考核通过后上岗实习(不通过的也可以实习,但可能没有相关的福利了)。地点杭州,初始对该公司的感受就是比较有人文关怀。实习经历第一周第一天:这天有点像动员大会一样,主要介绍了一下公司的情况,然后参观公司的一些产品。持续更新…...

2020-07-18 15:41:31 3485 7

原创 剑指Offer:第一次只出现一次的字符(java)

1. 题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)2. 解题思路(1)直接遍历比较即可。(注意判断条件即可)(2)利用LinkedHashMap保存字符和出现次数。(果然大哥牛逼)3. 代码实现(1)public class Solution { public int FirstNotRepeatingChar(String str) {

2020-07-14 22:36:55 107

原创 剑指Offer:数组中的逆序对(java)

1. 题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:2. 解题思路(1)看完题意以后,头脑只有遍历,然后实现看看,发现超时(卑微码农),在线被虐。(2)看一下比较官方的答案,说该题本质上就是归并排序(神TM),,在比较时加入全局变量count进行记录逆序对的个数,若data[start] >= data[index]

2020-07-14 21:55:22 203

原创 剑指Offer:两个链表的第一个公共结点(java)

1. 题目描述输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)如:2. 解题思路(1)其实一看题目,应该有很多人第一个想法就是暴力解题,但是复杂度很大很大了。(2)也可以把其中一个链表放进一个容器中,如Map,这样的话复杂度就大大减少了(空间换时间的一种做法)。(3)先求出链表长度,然后长的链表先走多出的几步,然后两个链表同时向下走去寻找相同的节点,代码量 少的方法需要将两个链表遍历两次,然后从头开始相同的节点。

2020-07-13 14:10:17 146

原创 剑指Offer:统计一个数字在排序数组中出现的次数。(java)

题目描述统计一个数字在排序数组中出现的次数。解题思路(1)直接遍历完事。(2)二分查找代码实现(1) public class Solution { public int GetNumberOfK(int [] array , int k) { int len = array.length; if(len < 1) return 0; int count =0; for(int ..

2020-07-13 09:58:58 382 1

原创 剑指Offer:平衡二叉树(java)

1. 题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树2. 解题思路(1)一看到题目,首先考虑什么是平衡二叉树,然后结合题目可以知道只需要判断左右子树距离根结点的大小即可。(平衡二叉树左右子树高度差不超过 1。)(2)。。。3. 代码实现(1)public class Solution { private boolean result = true; public boolean IsBalanced_Solu

2020-07-12 22:31:05 121

原创 剑指Offer:正则表达式匹配(java)

1. 题目描述请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配2. 解题思路(1)题意就是让我们比较两个式子是否相同,一个为字符串,一个为模式(正则表达式)。a、模式后移2字符,相当于x被忽略;b、字符串后移 1字符,模式后移2字符;c、字符串后移1字符,模式

2020-07-12 21:47:18 150

原创 SpringMVC框架的基本知识

SpringMVC概述组成关系图区别概述此文章只是简单介绍一下SpringMVC的基本知识,它是基于组件方式执行流程的一个框架。如果想要更加了解该框架的话,可以到官方文档仔细查看,并且多多练习即可。组成1、前端控制器(DispatcherServlet)用户请求到达前端控制器,它就相当于 mvc 模式中的 c,dispatcherServlet 是整个流程控制的中心,由 它调用其它组件处理用户的请求,dispatcherServlet 的存在降低了组件之间的耦合性(配置web文件时记得配置加载re

2020-07-12 11:01:42 173

空空如也

空空如也

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

TA关注的人

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