自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李公子的博客

学海无涯。

  • 博客(164)
  • 资源 (4)
  • 收藏
  • 关注

原创 LeetCode做题笔记第11题:盛最多水的容器

首先分析问题,盛水最多的时候,就是长乘宽最大的时候,长指的是数组下标的距离,宽指的是两条边中最短的一条边,采用双指针法可解决该问题,为了不错过最优的情况,left和right分别从两边开始往中间移动,每次只能移动一格,同时,比较左边和右边值的大小,那边的小那边的继续移动。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。输入:[1,8,6,2,5,4,8,3,7]来源:力扣(LeetCode)

2023-06-25 15:50:13 277

原创 C# 创建WebService接口并连接

C# 创建WebService接口并连接

2022-12-16 18:45:00 2727 1

原创 SQL Server2019配置always on高可用图文步骤

SQL Server2019配置always on高可用图文步骤

2022-10-29 13:38:40 6061 2

原创 WindowsServer2016配置故障转移群集

WindowsServer2016配置故障转移群集

2022-10-27 21:38:36 5556 3

原创 C# 接口中DateTime类型字段返回年月日格式,去掉时分秒的数据

在我们平时写接口的时候,避免不了这样一个问题,数据库中存的字段类型为,代码中对应的实体类也是类型的字段,于是在读取数据库内容之后返回的数据也是类型的值,比如,但是对于服务器请求者来说,他们可能只需要显示年月日即可,后面的时分秒是不需要的,如果能说服他们,不用修改我们的代码,当日最好。那么对于我们服务提供者来说,如何处理这类问题呢?可以直接把返回的实体类中的修改为string,格式就可以自定义了,但是缺点也很明显,采用类和类,通过给属性加特性类的方式进行修改。实现的简要步骤如下。这里我新建个一个的项目,来

2022-10-24 10:57:26 3859

原创 JS比较多个时间有没有交集

今天遇到一个稍微有点意思的问题,记录一下,当然并不是很复杂的需求,解决方式也非常简单粗暴,当然如果你有更好的想法,欢迎评论交流。我们只需要判断,第一个时间的结束时间小于等于第二个时间的开始时间或者第二个时间的开始时间大于等于第一个时间的结束时间即可。数组长度未知,但是每个元素的开始时间都是小于等于结束时间的。我就简单说下我的思路,首先如何判断两个时间之间是否存在交集,存在交集有哪几种情况。假如我们有一个对象数组,里面存的都是时间,开始时间和结束时间,类似下面这样。那么不存在交集就两种情况。

2022-08-24 17:26:54 1817

原创 Oracle批量修改字段类型varchar2(2000)转clob

平时用的数据库主要是SqlServer,但是在不同的项目上,可能会用到不同的数据库,所以在字段类型转换上就遇到了一些小问题,记录一下。,如果数据库已经在被使用了,这时候只能动态的修改字段类型了。基本思想就是添加一个新字段,把旧字段中的值赋值给新字段,把旧字段删除,把新字段名修改为旧字段。如果字段比较多,上面的脚本可能就很长了,这个时候可以考虑采用循环来解决问题了。首先需要查询指定用户下所有的表名,字段名,字段类型,字段长度,语句如下。类型,都最多可以支持最大2GB的内容存储,但是对于。

2022-08-21 10:11:50 1152 1

原创 我的创作纪念日

2013年注册的CSDN,一转眼已经九年了。还记得刚上大学那会。由于需要查资料而了解到了CSDN,注册了个账号,但是那几年基本没写过文章,也不知道写些什么。之后写文章也是断断续续的,一般是了解到了什么新的中间件,解决了一个问题,都乐意写篇博文分享一下,一方面可以记录下防止以后忘记,另一方面也可以帮助更多的人。写博客的这些年中,前几年基本没获得多少粉丝,因为之前也一直不知道可以把博文设置为仅粉丝可见,我还以为不是粉丝就看不到这篇文章呢,后来发现不是粉丝也是能看到的,不过只能看到部分,点击关注之后,才能看到全部

2022-06-22 09:53:31 199 2

原创 SQL Server创建发布订阅

最近在研究基于Sqlserver 发布订阅实现的读写分离功能,踩了些坑,在此记录一下。发布订阅是有一台主数据库,对应多台从数据库,当主数据库数据有变化时,同步到从数据库,从而保证数据的一致性,可以由主数据库统一管理,也可能有从数据库单独管理。缺少图片由于目前打算在本机进行测试,所以首先在Sql Server里新建一个数据库名为 里面有一张表,里面有两条数据。接着在新建一个名为的空数据库。我们之后的想要的效果就是,当Test库下有数据或者表结构变化了,自动同步到这个库。接着在D盘新建一个空文件夹名为用来保

2022-06-20 16:28:31 1847

原创 Unity让物体跟随鼠标移动

Unity小实例,控制小飞机跟随鼠标移动。

2022-06-03 15:52:11 4383 1

原创 Unity中设置对象匀速移动

如何设置对象的匀速移动再Unity中我们可以通过Translate来调整对象的位置,但是如下的写法。void Update(){ var location = -0.08f; transform.Translate(location, 0, 0); }效果如图。图中可以看到,小飞机运动明显不够流畅,感觉特别的卡顿。想要了解这个原因,需要先了解下FPS的概念,FPS全称Frames Per Second,每秒传输帧数,再上面的演示里我把FPS固定为了50,代码如下。Ap

2022-05-29 21:41:35 3825

原创 Unity设置为中文

UNity设置为中文打开UnityHub 再安装界面找到使用的Unity编辑器,右边有个齿轮,点击选择添加模块。然后选择下面的中文简体进行安装。我已经安装过了,所以没有这个模块了。之后打开Unity编辑器,以此选择 Edit Preferences,Languages,简体中文,之后重启编辑器即可。...

2022-05-29 21:18:26 58506 8

原创 Unity中对图片进行切片

Unity中对图片进行切片现在我们有一张这样的图片。这是一张Png格式的图片,图片中有两个小黄人,戴夫和凯文,这两个小黄人是在一张图片中的,但是我们在使用的时候,是需要单独拿来使用的,那么如何在Unity中进行图片切片操作呢。首先我们需要先选中素材,然后把Sprite 模式修改为多个,之后点击Sprite Editor![在这里插入图片描述](https://img-blog.csdnimg.cn/c6293a2d2f01495880491e348befabf1.png在Sprite Edito

2022-05-29 21:10:10 2125

原创 Vue Element表格实现滚动加载

需求背景最近有个需求,需要根据用户输入的数字,生成对应行数的表格数据,比如输入10,那就是要生成一个10行的表格,1000就是1000行,表格内容不算复杂,感觉还是一个蛮简单的需求,谁知做着就发现问题了。就是当输入的数字超过1000的时候,明显感觉表格加载的有点卡顿,于是开始寻找解决之法。解决思路首先查看生成1000行表格数据所需的时间,由于计算过程是由js实现的,所以可以用console.time('time')console.timeEnd('time');来查看代码执行耗时,time和

2022-04-25 11:23:02 3758 2

原创 JS循环及跳出循环总结

前言今天来总结一下JS中循环方法的使用,以及如何跳出循环/遍历。正文跳出循环有四种方式break 用来跳出循环.continue 跳过当次循环,继续下一次的循环return 跳出循环,并返回调用函数,之后的代码不在执行。thorw Error() 用来跳出循环,之后的代码不在执行,需要配合try catch使用for循环 TestFor () { for (let i = 0; i < 5; i++) { console.log(i)

2022-01-12 20:00:00 5725 1

原创 Docker命令总结

Docker命令总结,点个收藏,留着备用呀。

2022-01-10 15:15:07 493

原创 C#特性(Attribute)讲解

1.特性的介绍与使用特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。特性的使用方法很简单,只需要写在方法,类,枚举,字段等程序体的上面用[]括起来即可,如下。 [Route("api/[controller]/[action]")] [ApiController] public class TestC

2022-01-07 16:43:55 9676

原创 .NET Nlog使用讲解

准备项目.Net项目中关于日志的组件还是很多的,包括log4net,Nlog,以及.net core 框架自带的Logging,今天就简单介绍一下Nlog。首先准备一个demo项目,我这里新建的是一个基于.net6的web项目,文件目录如下。Nlog.config文件是自己添加的,里面内容稍后再说。接着添加Nlog的nuget包。名称版本如下,由于是.NET Web项目,所以没必要下载全部的Nlog包,下载对应的Nlog.Web.AspNetCore即可,当然下载第一个也是可以的,按需引入。接

2022-01-06 15:02:51 6720

原创 WPF 用TextBox和Calendar自定义可以选择年月的日期选择控件

背景在做WPF项目时,需要一个只可以选择年月的日期控件,但是工具箱里自带的DatePicker好像无法设置只选择年月,找了一些资料,但是都太老了,就不在贴出来了,下面是我用TextBox结合Calendar做的一个日期选择功能,没加什么样式,但是也基本满足我的需要了。截图代码先说说思路,这里一共用到了三个控件分别是TextBox,Image和Calendar,Calendar默认是隐藏的,点击Image显示Calendar,选择月份之后,在隐藏Calendar,同时给TextBox赋值即可。Ca

2021-12-01 16:25:26 2089

原创 使用Sqlite3的一些注意事项

在使用sqlite3中遇到一些细节问题,特此记录一下。截取字符串 substr在sqlite3中,截取字符串的内置函数为substr(name,index,length),且index是从1开始的,使用方法如下。测试数据现在截取Password的前两位字符SELECT SUBSTR(Password,1,2) as Password from User结果如下拼接字符串在sqlite3中拼接字符的符号为||而不是+,使用方法如下。测试数据现在给Password字段添加hello

2021-12-01 11:00:01 1389

原创 LeetCode做题笔记第168题:Excel表列名称

题目描述给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。示例 1:输入:columnNumber = 1输出:“A”示例 2:输入:columnNumber = 28输出:“AB”示例 3:输入:columnNumber = 2147483647输出:“FXSHRXW”解题思路通过分析可知,Excel中的列名称,是符合26进制的,举例,28转成26进制为:12。因为 1乘26的1次方+2乘26的0次方=28所以接下来思路就简单

2021-07-01 10:36:56 258

原创 nginx 代理解决跨域问题

前言可能在某些时候我们的前端项目需要访问一些外部的接口,比如Apollo等,而直接使用axios发送请求的话,会报跨域的错误,具体什么是跨域这里就不啰嗦了,如下图。这个接口地址当然是正确的,可以放到接口测试工具里试一下。解决跨域有很多种方式,但是大多数方式都需要服务端配合,这里加一句题外话,.Net Core项目如果允许跨域的话,可以在StartUp.cs里添加如下的配置。 app.UseCors(builder => builder.AllowAnyOrigin()

2021-06-28 11:26:23 5778 2

原创 LeetCode做题笔记第167题:两数之和 II - 输入有序数组

题目描述给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例1输入:numbers = [2,7,11,15], targe

2021-06-22 10:02:09 159

原创 LeetCode做题笔记第136题:只出现一次的数字

题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。输入: [2,2,1]输出: 1输入: [4,1,2,1,2]输出: 4解题思路先说说我的想法吧,一开始没注意到每个元素均出现两次这个条件,没想到这有什么深层次的含义,所以还是按照一般的思维方式思考,这是一个整数数组,那就先排个序,然后比较当前元素和左边以及右边是否相等,若都不相等,则可以证明只出现一次。很快哈,代码就写好了,参考下面的代码1。提交测试,通过,完美。你以为事情

2021-06-18 14:42:11 151 1

原创 LeetCode做题笔记第125题:验证回文串

题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。输入:“A man, a plan, a canal: Panama”结果:True输入:“11,2,2,11”结果:True输入:"race a car"结果:False解题思路先说一下我踩的坑,因为要判断一个字符串是否是回文串,一开始我就想把字符串转成规则的字符串,把除数字和字母之外的字符都去掉,字母在转小写,接下来只需要挨个前后挨个匹配就行了。示例代码如下。 string pattern

2021-06-18 09:41:04 170 1

原创 LeetCode做题笔记第118题:杨辉三角

题目描述给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。实例:解题思路首先分析题目可知,第i行是有i个元素,且每个元素的值,假设下标为index,则元素值为上一行的index-1位置和index位置的元素和。举例第五行第2个元素4,下标为1,则其等于第四行第1-1=0位置元素1和1位置的元素3之和。双层for循环。完整代码 class Program { static void Main(str

2021-06-16 10:24:47 161

原创 Easy-shop微服务项目的本地启动方式

前言关于esay-shop项目只是一个自己用来练手的微服务项目,由于启动略显繁琐,有小伙伴问了,那我就把在本地启动这个项目的步骤写一下,希望能帮助到你。开始实践首先我们先把代码克隆下来。地址在这里。https://gitee.com/limeng66/easy-shop项目克隆下来之后,就是这些了。然后需要把数据库还原一下,由于我这里仅提供了Mysql的脚本,所以还是推荐用Mysql吧,先在Mysql中新建一个名称为easyshop的数据库。接着打开DB文件夹,把easyshop.sql放到My

2021-06-07 11:58:03 1199

原创 C#反射的简单应用

使用场景假如我们需要做这样一个功能,用户可以修改一个列表里的信息,但是系统里需要记录用户修改了哪一条记录的哪几个字段,把改变的的字段之前的旧的数据保留下来,方便用户可以追溯数据,就好像QQ可以查看历史头像一样,User表需要更新,但是同时需要在UserHistory表里把旧的记录保存起来,我们可以怎么做呢?这里我们把问题简单梳理下,每一条记录可以抽象为一个实体UserDto,用户修改之后提交的也抽象为UserDto,那就变成了比较同一个实体的不同属性的值了。那就简单了,上代码。 public st

2021-06-02 13:53:34 2578

原创 在Docker中配置Consul集群

Docker中部署Consul集群在微服务架构中,为了保证各个节点的高可用,最常用的做法就是集群,服务实例做集群, 网关,服务发现等也需要做集群,接下来就来实践一下,在Docker中给Consul做集群。部署之前,先来了解一下Consul的集群,Consul中分为Client节点和Server节点,Client节点数量无限制,Server节点需要大于等于3个,这样才可以通过投票选举算法选出Leader,由Leader节点负责数据的同步,若Leader节点挂了,则会在剩下的两个节点继续用投票选举算法选出

2021-05-24 16:32:41 552

原创 C#把文字放到图片上

做小程序时遇到一个问题,用户在分享内容的时候,我需要生成一张带有内容的图片,那么如何把文字放到图片上,并生成一张新的图片呢?先看效果图。这是背景图接下来上代码。 /// <summary> /// 字符串放到图片上 /// </summary> /// <param name="text"></param> public static string AddStringToImg(str

2021-05-21 09:22:34 3804 4

原创 常见排序算法解析C#

冒泡排序介绍冒泡排序的思想是两两比较,两两交换,假设从左到右数据是依次增大的,首先比较元素1和2,若1比2大,则交换位置,继续比较元素2和3,就这样一直比较下去,就可以把最大的值放到最右边,直到所有的数据比较移动完成,则排序完成。平均时间复杂度为O(n^2)动图演示代码 public static int[] BubbleSort(int[] arr) { int temp; for (int i = 0; i < arr.Length-1; i++)

2021-05-20 16:29:11 124

原创 历时两周,我的个人小程序上线啦。

自上次开发过一个VSCode插件程序之后,已经过去两个月的时间了,其实这段时间也没闲着,作者在学习微信小程序的开发,于是在稍稍入门之后,就正式开始了微信小程序的开发工作。首先来看看开发的成果。段子页面趣图页面个人中心页面主要功能就这么多,同时还要一个后台管理系统负责发布内容,如下图。想要体验小程序的,可以直接扫码体验哦。接下来聊聊微信小程序开发中的一些故事吧。想要开发一款微信小程序,首先得有一个定位,确定要做什么东西,接着需要准备数据和接口,其实市面上有很多聚合平台,提供海量的接口,

2021-05-13 09:19:11 272

原创 一个普通程序员的副业历程

当副业,睡后收入这些词汇映入你眼帘的时候,我相信很多人都会为之心动,毕竟现在在一个买房得掏空四个钱包的时候,没有人会对钱过不去。想做副业首先得有一个方向,比如投资,拍视频,开网店等等,但是对于我这样一个程序员来说,有些路并不适合我,为了找副业的方向,我曾经学习过建模,PS,这些没有坚持下去,同时学习这些技能之后,发现也不是太感兴趣,之后剪过视频,投稿在了西瓜,抖音,B站等,收益也就几十块钱,而且经常会因为不知道做什么视频而纠结。最后还是决定走老路,敲代码,写程序,毕竟最擅长的也只有这个了。对于敲代码来

2021-05-07 16:58:00 1218 5

原创 阿里云CentOS7 部署.net5项目以及配置SSL证书

背景最近空闲时间在开发一款微信小程序,调用服务器端接口的时候遇到一些问题,在这里简单记录一下,主要就是微信小程序调用后台接口必须是https开头的,并且要可信任的。一开始我以为直接配一个https开头的IP地址即可,事实证明我还是太单纯了,所以微信小程序必须请求的是一个带有ssl证书的https请求地址。我们就拿postman请求接口看一下,配置ssl证书和没有配置ssl证书有什么区别吧。若是没有配置ssl证书话,请求也会成功,但是会有一个警告。若是配置了ssl证书,警告就没有了。解决步骤1

2021-04-23 10:58:09 663 1

原创 .Net Core MVC中通过URL访问根目录下的静态资源

事出有因在使用layui的layedit富文本框时遇到一个问题,都知道在富文本框中是可以添加图片的,类似下面这样。layedit的使用就不过多说明了,如果需要使用图片上传的功能需要进行以下配置。layedit.set({ uploadImage: { url: '' //接口url ,type: '' //默认post }});//注意:layedit.set 一定要放在 build 前面,否则配置全局接口将无效。layedit.build('demo'); //建立编

2021-04-20 15:19:52 2103 1

原创 23.解释器模式(Interpreter Pattern)

解释器模式解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。优点:可扩展性比较好,灵活。增加了新的解释表达式的方式。易于实现简单文法。缺点:可利用场景比较少。对于复杂的文法比较难维护。解释器模式会引起类膨胀。解释器模式采用递

2021-04-14 08:59:49 114

原创 22.访问者模式(Visitor Pattern)

访问者模式在现实生活中,有些集合对象存在多种不同的元素,且每种元素也存在多种不同的访问者和处理方式。例如,公园中存在多个景点,也存在多个游客,不同的游客对同一个景点的评价可能不同;医院医生开的处方单中包含多种药元素,査看它的划价员和药房工作人员对它的处理方式也不同,划价员根据处方单上面的药品名和数量进行划价,药房工作人员根据处方单的内容进行抓药。访问者模式将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多

2021-04-13 16:30:35 97

原创 21.模板方法模式(TemplateMethod Pattern)

模板方法模式模板方法顾名思义就是提供一套模板,在日常生活中,我们去银行办理业务,一般是经过取号,排队,办理业务,对银行工作人员进行评价四个阶段,其中,取号,排队,评价对每个人来说都是一样的,我就可以把这三个步骤抽离出来放到父类去实现,子类继承父类即可,这样对所有继承这个父类的子类来说都必须有这三个步骤。模板方法方式的思想就是把一些固定操作放到父类实现,而对于一些特殊操作则放到子类实现。意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的

2021-04-13 15:43:16 101

原创 20.策略模式(Strategy Pattern)

策略模式在平时生活中,我们出行可以选择开车,坐地铁,做公交,不管采用那种方式都可以到达目的地,再比如,要对一个数组进行从小到大的排序,可以选择快速排序,冒泡排序,插入排序等算法,得到的结果也是一样的,策略模式的关键是把多个算法组合起来并提供一个入口。意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。策略模式的主要优点如下。多重条件语句不易维护,而使用策略模式可以避免使用多重条件语句,如 if…else 语句、switch…case 语句。策略模式提供了一系列的可供重用的算

2021-04-13 15:05:10 124

原创 19.状态模式(State Pattern)

状态模式在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。状态模式是一种对象行为型模式,其主要优点如下。结构清晰,状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分割开来,满足“单一职责原则”。将状态转换显示化,减少对象间的相互依赖。将不同

2021-04-13 14:50:32 77

C# 用spire导出word

在winform中利用Spire导出word文件,所用语言C#。导出文件在bin/Debug目录下。需要先还原一下NuGet程序包。

2018-09-15

获得选中的checkBox值

点击按钮获取选中的CheckBox值,JQ实现,代码非常简单。

2018-08-20

可安装的进制转换器,仅支持windows

已经打包好的,可以安装的进制转换器,需要framework3.0及以上。windows程序。源码在另一个资源里。

2017-03-19

C#开发的进制转换器

C# winform开发的客户端进制转换器,支持2 8 10 16进制的相互转换,附源码,可以随便查看。

2017-03-19

空空如也

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

TA关注的人

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