- 博客(52)
- 资源 (6)
- 问答 (4)
- 收藏
- 关注
原创 git基于ssh拉代码报错ssh_dispatch_run_fatal: Connection to xxx port xxx: incorrect signature
git报错ssh_dispatch_run_fatal: Connection to xxx port xxx: incorrect signature
2024-08-24 09:36:44
695
原创 chrome扩展开发与上架
前言了解Chrome插件chrome扩展插件可以为chrome浏览器增加额外的功能,它能对某个网页进行css注入或执行js方法,同时也可以实现单独的一个功能,同时它在进行网络请求时不会受到跨域的影响。所以它能实现什么主要依赖你的想象力安装插件后在浏览器的输入框右侧将会出现你安装的插件图标如何安装插件目前安装插件的方式只有两种:在Chrome网上应用商店来选择安装插件,这种安装的模式时基于crx包的,目前已经禁止直接加载现有外部的crx文件来安装插件安装自己开发的插件可在浏览器扩展程序设置中
2021-12-15 20:34:45
2657
原创 iOS可视化界面编程XIB简单使用
iOS的UI界面的编写现在基本分为三个流派手写代码XIBStoryBoard三者区别本文主要介绍XIB的简单使用,基于XIB在界面上放几个按钮并生成点击事件代码以下代码及截图基于XCode12快速创建1、创建文本对象自定义创建vc时勾选create XIB file,后将会自动创建xib文件,创建后如图2、为XIB添加控件选中xib文件后可以看到右侧出现了一个vc的UI展示图点击右上角的+,可以拖动添加UI组件选中按钮控件后,点击右侧对应栏可以看到有关于该button
2021-07-29 19:38:10
2116
原创 js原型链中的__proto__和prototype区别与联系
function Persion() {}let person1 = new Persion();__proto__和prototype的关系如上图所示,如果明白这两则关系的话这个图是很清晰易见的,看不懂的话可以继续往下看首先需要明确的一点是,JS中除了一些基本数据类型外其他的都是对象,既然都是对象那么在继承关系或者实例关系中就会存在共享属性(公共区)的概念在其他语言中存在class类的概念,那么公共区的引用由类来指向没什么问题,但js中没有类的概念(es6后的class本质是语法糖),在j
2021-06-16 21:23:42
199
原创 并查集结构
并查集 主要是用以解决元素分组的问题其基本操作包括合并:把两个不相交的集合合并为一个集合查询:查询两个元素时否在一个集合中在实际算法问题中有一个使用并查集的经典问题祖先(亲戚)问题给出一系列的两两亲源关系,再合并形成总的祖先树图结构1、在最开始我们有一系列的点[0, 1, 2, 3, 4, 5, 6, …]作为问题的元素,一个标号可以代表一个人,在最开始我们不知道他们的亲源关系时,大家都是孤立的节点,即单元素集合2、 随后我们得到一系列的关系列表例如[[0, 1], [0,
2021-06-05 14:04:34
100
原创 Manacher算法,线性解决最长回文子串
问题提要:回文串即从左到右与从右到左的序列完全相同的字符串,现在要寻找一个字符串中的最长回文子串针对这个问题有一下几种解题思路暴力求解:循环每一个子串,然后再进行子串的回文判断,但这样的话时间复杂度可以达到O(n^3)的级别动态规划:在进行回文判断时,我们可以把这个问题分解为一个小问题, 判断 s(i, j)是否为回文,则可以在s[i] == s[j]的情况下判断s(i+1, j-1)是否为回文// 动态方程如下 { s(i, i) true s(i, j) = (s[i] .
2021-05-19 19:32:34
193
2
原创 iOS封装超出滚动可点击静态文本框(oc实现)
ClickTextScrollView继承了OC的UIScrollView,实现了一个超出显示区后支持滚动的ScrollView,同时支持设置点击文字OC的原生UIScrollView实在是太难用了,光是超出或自动滚动这个在别的语言上很常见的设置,UIScrollView貌似需要手动设置高度,令人头大示例安装有几种方式进行安装:CocoaPods在工程的Podfile文件中添加一下语句pod 'ClickTextScrollView'然后执行pod install.手动引入
2021-04-25 18:10:59
348
原创 npm插件基于模板变量生成plist文件
最近在做脚本文件生成的时候发现没有找到plist文件的支持变量的模板生成,找到的都是将字符串写入生成plsit文件的插件,但使用上没有html-webpack-plugin优雅需求二次封装,所以就顺手写了一个方便使用github开源链接npm插件位置快速安装执行以下代码安装插件npm install plist-from-template使用在webpack.config.js文件中引入并配置const PlistFactoryPlugin = require('plist-fro.
2021-04-25 18:03:23
208
原创 javascript中止Image的加载
事情的起源是在工程中发现了一个bug,在低网速情况下请求网络图片资源时请求耗时会达到1分多钟,而这长时间的网络请求最后又导致了界面渲染被阻塞,首页一直白屏如果是解决界面阻塞问题的话有很多方案,但令我困惑的是当我创建了一个Image对象时如何才能中止它的请求呢,【不考虑用Image的话采用XMHttpRequest这些http请求封装的对象的话也是可以通过超时时间来中断的】let ps = new Promise((resolve, reject) => { let image = n.
2021-04-14 21:25:24
1729
原创 梦回KMP算法
今天偶然间刷到一题,在目标字符串中查找模式串的起始位置,第一想法就是公共库带的indexOf这类的API,如果是自己实现的话就是经典的KMP算法,但算法实现已经完全模糊了,估计一开始也没掌握,难得再遇,所以打算记录下我关于KMP算法的理解KMP算法是一个经典的字符串查找算法,全称是Knuth-Morris-Pratt,取自三个发表者的名字算法背景假设当前有一个T目标字符串和一个P模板字符串,我们希望在T中查找到P这个模板串的位置算法思想理解暴力求解的话就是直接二重循环进行查找假设遍历T串的.
2021-04-08 23:58:51
107
1
原创 从零开始使用树莓派搭建自己的gitlab
准备工作一块树莓派的板子,电源,一张sd卡,读卡器,hdmi线,usb鼠标键盘,外显示屏另外一台电脑(将系统烧制到sd卡中)流程背景本教程中使用的是树莓派4b,gitlab下载中提到至少是4GB的ARM架构,所以板子的内存不要小于4GB选择的系统的Debian的arm64,另外硬盘也就是SD卡的大小会根据不同的系统有不同的最小需求,其中树莓派爱好者基地提供的图形完全版最后烧到sd卡里要15GB,所以建议整个32GB的sd卡吧烧制系统盘// 插入准备软件地址首先将SD卡插入读卡器再插入电
2021-04-04 23:06:03
1278
原创 发布npm包
操作前提:已经对webpack的plugin有了一定的了解,可以自己编写简单的plugin插件,若无此基础建议先进行webpack的简单入门发布npm包前需要注册一个npm账号点击跳转完成注册后在本地建立一个文件夹npmtest,并在终端中进入该文件目录进入该目录后执行npm login输入自己的npm账号密码在该步可能会发生409异常,大概率是之前换过npm的地址为淘宝镜像,此处需要换回来,执行npm login --registry http://registry.npmjs.org.
2021-03-31 23:19:09
127
原创 oc中的成员变量属性@synthesize和@dynamic理解
尽管已经写了一段时间的oc但对self.xxx和_xx的理解以及在三方代码中看到的@synthesize不是很理解,写代码还是不能太随便,不理解的东西写多了容易埋坑,所以还是花了点时间整理下这些到底是什么什么是成员变量和属性@interface Person : NSObject{ NSString *name ; // 成员变量,实例变量}// 属性@property (nonatomic, strong) NSString *pName;@end定义在h文件中的属性和成员变
2021-03-26 20:55:20
622
1
原创 设计模式记录(oc编程之道笔记)
设计模式记录算法封装模版方法策略欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入算法封装模版方法【模版方法模式】定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模版方法使子类可以重定义
2021-03-20 10:22:47
204
原创 OC代理delegate适配器模式杂记
适配器模式又分有对象适配器模式和类适配器模式,其类图如下所示OC中的委托delegate也是一种对象适配器模式协议为target,指出了客户端希望有的接口,而实现了协议的具体类就是适配器客户端定义了协议内容(即客户端想要的接口),以及客户端中的delegate对象后期会指向适配器对象,而适配器对象中也可以根据具体情况应用被适配对象(Adaptee)的引用或直接成为其子类。块(block)下的适配器模式...
2021-03-10 00:12:47
193
原创 js高级程序设计(4th)--11章Promise和异步函数杂记
new Promise(() => {}); // 永远的pending状态Promise进度通知class TrackablePromise extends Promise { constructor(executor) { const notifyHandlers = []; super((resolve, reject) => { return executor(resolve, reject, (status) => { console.log(not
2021-03-10 00:04:12
208
原创 objective-C基础教程(第2版)-17,18,20章杂记
文件加载与保存cocoa中存在一种名为属性列表(property list)的对象,简写plist,这些列表可以放置一些cocoa可以处理的对象,这些属性列表类似NSArray, NSDictionary, NSString, NSNumber, NSDate, NSData以及它们的可修改形态(Mutable)集合型属性列表类(NSArray和NSDictionary)具有一个writeToFile:atomically:方法将内容写入文件,atomically传递一个BOOL值表明是否需要将内容存到
2021-02-19 17:14:25
108
原创 objective-C基础教程(第2版)-14章杂记
代码块代码块包含数据绑定自动绑定, 使用的是栈中的内存托管绑定,通过堆创建// 代码块定义void (^my_block)(void);// 觉得名字长可以使用typedef关键字typedef void (^my_block)(void);// 赋值<returnType> (^blockname)(list of arguments) = ^(arguments) {body;};// 若是使用typedeftypedef <returnType> (
2021-02-18 23:38:32
116
原创 objective-C基础教程(第2版)-11,12,13章杂记
属性OC 中实例变量与属性之间的区别@interface Circle { float radius; // 通过此方法定义属性需要自己手动编写setter和getter @property float radius1; // @property预编译指令会自动声明setter和getter}@end@implementation Circle @synthesize radius1; // @synthesize预编译指令会生成setter和getter的实现代码,但不可见@end/
2021-02-18 18:38:22
92
原创 objective-C基础教程(第2版)-第十章杂记
对象初始化创建对象的两种方法:[类名 new][[类名 alloc] init] // cocoa惯例对象的创建分为对象内存空间分配和初始化两个过程,对一个类发送alloc将会为类分配空间同时将内存区域全部初始化为0(int初始化为0, 指针初始化为nil),刚完成分配的对象应当在初始化完成后使用避免出现一些bug初始化方法init返回的对象和分配阶段返回的对象可能不同因此在使用上采用[[类名 alloc] init]而不是Car *car = [Car alloc]; [car init];
2021-02-09 01:03:36
107
原创 objective-C基础教程(第2版)-第九章笔记
OC内存管理cocoa采用引用计数进行内存管理,即当访问一个对象是该对象的保留计数器值+1,当结束访问后对象的保留计数器-1当使用alloc,new方法或通过copy消息创建一个对象是,对象的保留计数器值设置为1,改变这个值可以通过发送retain消息+1, release消息-1当一个对象的保留计数器归0即将销毁时,oc会自动向对象发送一条关于dealloc的消息[obj retain]; // 保留数 + 1[obj release]; // 保留数 - 1[obj retainCount]
2021-02-08 23:15:00
130
原创 objective-C基础教程(第2版)-前九章杂记
OC中类基础OC中类的定义分为接口定义和实现两部分以下为Circle类的接口定义@interface Circle: NSObject {// 接口定义,声明属性或方法}@end@implementation Circle {// 具体方法实现}@end// 使用上通过[Circle new]获取一个实例OC中的继承和组合继承OC为单继承@interface SubClass: SuperClass@end@implementation SubClass@en
2021-02-08 00:45:22
182
原创 JS高级程序设计(4th)笔记——第九章
JS高级程序设计(4th)笔记——第九章核心内容:代理与反射MDN相关文档代理什么是代理?JS中如何实现代理?代理有哪些应用场景?什么是代理?代理即替某人做某事的行为可以看做是代理,被委托的对象起到一个代理对象的作用,而委托方则是目标对象。遥记得设计模式中也有一种模式即代理模式,当时书上给的例子是,有人想给总经理打电话但这个电话只能通过秘书转接,这个时候秘书就相当于总经理的代理类。JS中如何实现代理?通过Proxy(target, handler)创建代理对象target: 需要使用P
2021-02-04 00:13:02
154
原创 SpringAOP给bean添加新方法
工程文件结构在Person类中通过AOP添加Bird类中的方法xml配置 <bean id="birda" class="com.pojo.BirdA"></bean> <bean id="person" class="com.pojo.Person"></bean> <aop:config> <aop:aspect> <aop:declare-parents
2021-01-03 21:46:11
232
原创 touch事件实现拖动分隔线改变上下div高度
效果html结构<div class="root"> <div id="head"> <div class="top"></div> <div class="line" @touchstart="touchstart" ...
2019-11-25 16:34:54
622
原创 android scrollview(textview)内长文本定位到指定行
在做项目的时候需要对一个长文本某一行进行挖空做选择题,需要将滚动条定位到某一行(填空行)当时查了蛮久没解决这个问题,后来发现主要是定位偏移量和scrollTo()失效两个原因造成的。假设我们要实现类似这样在一个滚动文本框中显示长条文本,然后需要定位到某一行scrollView.scrollTo(0, textView.getLineHeight() * lineY);...
2019-05-04 20:33:45
1685
原创 由二叉树的前序和中序序列求后序序列
碰到这题的时候第一时间是想先还原二叉树,不过这样总归是绕了。记录下https://blog.youkuaiyun.com/qq_29375837/article/details/81160362看到的递归思路private static void coverTree(int[] pre, int[] order, int[] post, int i) { for (int j = 0; j...
2019-04-13 20:24:24
773
原创 Android异步处理:AsyncTask运用实例(动态打印一定范围内的素数)
AsyncTask简介实例功能模块说明图运行后效果图代码部分界面代码<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://...
2019-01-10 16:25:31
511
1
原创 android通过HttpURLConnection获取网页内容是获取内容为空(《第一行代码》通过HTTP访问网站例子)
问题描述:在《第一行代码(第二版)》的第九章通过HttpURLConnection访问网站并将其get的内容铺到TextView中按着书上打始终没有内容出来,后来发现StringBuilder的length是0,但是读到的输入流并不是null,不过readLine读到的是null解决方案:换个网站,或者把url的地址换成https开头就有内容了...
2019-01-07 16:57:51
578
转载 第一行代码中的GitHub控制
文章转载自:https://www.jianshu.com/p/89f0d3b056a6 1. 创建代码仓库虽然在Windows 上安装的Git 是可以在图形界面上进行操作的,但是这里我并不建议你使用这一功能,因为Git 的各种命令才是你应该掌握的核心技能,并且不管你是在哪个操作系统中,使用命令来操作Git 肯定都是通用的。那么我们现在就来尝试一下如何通过命令来使用Git,如果你使用...
2019-01-06 09:26:45
463
4
原创 2048js实现
算法的实现游戏初始化时: 生成两个坐标位置(i, j),(含位置判重)坐标范围为格盘坐标范围。两个位置的内容分别是2和(2或4) 开始游戏后: 用户点击上下左右后,格盘中的所有格子向移动方向对齐 ...
2018-07-26 10:26:53
5523
原创 web-inf目录下的jsp无法引用外部css的解决方案
看大多数的方法时<c:set value="${pageContext.request.contextPath}" var="path" scope="page"/><link type="text/css" href="${path}/css/xxx.css" rel="stylesheet">//貌似是这样是会返回we
2018-07-18 10:29:37
1935
4
原创 Ajax异步提交(用户名判重)
项目结构网页代码<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><script type="text/javascript" src="js/
2018-07-17 16:50:44
1322
转载 LintCode-k数和
给定n个不同的正整数,整数k(k < = n)以及一个目标数字。 在这n个数里面找出K个数,使得这K个数的和等于目标数字,求问有多少种方案?您在真实的面试中是否遇到过这个题? Yes样例 给出[1,2,3,4],k=2, target=5,[1,4] and [2,3]是2个符合要求的方案分析:动态规划dp(i , j , k)表示前i个数字中找出j个数,使得这 j 个数的和等于 k...
2018-05-24 17:12:28
184
原创 算法提高 合并石子 (GarsiaWachs算法)
对于石子合并问题,有一个最好的算法,那就是GarsiaWachs算法。时间复杂度为O(n^2)。它的步骤如下:设序列是stone[],从左往右,找一个满足stone[k-1] <= stone[k+1]的k,找到后合并stone[k]和stone[k-1],再从当前位置开始向左找最大的j,使其满足stone[j] > stone[k]+stone[k-1],插到j的后面就行。一直重复,...
2018-05-23 10:07:12
586
原创 连续邮资问题(DP)
连续邮资问题: 假设国家发行了n种不同面值的邮票,并且规定每张信封上最多只允许贴m张邮票。连续邮资问题要求对于给定的n和m的值,给出邮票面值的最佳设计,在一张信封上可以贴出从邮资1开始,增量为1的最大连续邮资区间。 举例分析: 当n=2,m=3时,如果面值分别为1和4,则可以获得的邮资范围为1~6 加上 8 , 9 , 12 因为8.9.12和1~6并不连续,使用最大能取到的是6用动态规划的思想...
2018-05-22 10:32:27
2126
5
原创 关于LIS(最长上升子序列)DP
最长上升子序列就是给一个序列,求出其中非递减形式的子序列。O(n²)算法 设数串的长度为n,L[i]为以第i个数为末尾的最长上升子序列的长度,a[i]为数串的第i个数。 L[i]的计算方法为:从前i-1个数中找出满足a[j]<a[i](1<=j<i)条件的最大的L[j],L[i]等于L[j]+1。动归表达式:#include <iostream>#in...
2018-05-22 08:36:38
243
原创 矩阵翻转、镜像
矩阵的翻转思想顺时针:先将矩阵转置 再依次将各行按中间的元素进行对称交换,一行只有3个元素时为首尾互换逆时针:先将矩阵转置 再依次将各列 按中间的元素进行对称交换,一列只有3个元素时为首尾互换上下镜像:画个图就可以看出来相当于第一行和最后一行对换,第二行和倒数第二行对换,以此类推左右镜像:同理可以理解成第一列和最后一列对换以此类推,或者是每一行倒转#include <iostream...
2018-05-16 21:06:19
4828
1
gradle-6.5-all
2020-11-27
markdown的预览效果和实际发布的效果不同咋办?
2021-03-26
去除字符串两头的换行符,或通过正则匹配不以换行结尾及开头的字符串_(:з」∠)_
2019-04-25
关于qq中好友消息及其他个人设置的问题
2017-11-14
一道关于点连线最短路径的算法问题-----------
2017-10-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人