自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决vim中文乱码问题

在服务器上遇到一个问题,tail -f实时查看日志时,中文显示正常,vim时中文乱码。解决如下:方法一:vim /etc/vim/vimrc末尾加上:set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936set termencoding=utf-8set encoding=utf-8方法二:同样修改vim文件,末尾...

2020-01-17 17:23:24 494

原创 golang善用go func和defer

一、error与panic:error:可预见的错误panic:不可预见的错误,panic一般通过defer中的recover()捕获对于有风险的代码,若发生panic则会导致程序异常退出,例如数组越界。1. panic的操守panic是有秩序的,退出之前会执行完先处理完当前goroutine已经defer【挂上去】的任务,若某个defer在panic之后,则不会被执行。pani...

2020-01-17 14:52:08 12550

原创 Java8之新特性Optional的使用

最近在写项目的时候频繁用到Java8的一个新特性,Optional,总结一下。1. 服务中要尽量避免使用null,Optional是为了解决使用null引起的NullPointerException异常。2. 在引入Optional之前,对于null的处理需要额外判断。(不判断而侥幸逃脱NullPointerException是不合格的代码)    例如下面这段代码,若不加null !...

2019-01-04 12:25:01 485

原创 mac系统docker发布镜像报错:错误"the user name or passphrase you entered is not correct"解决

docker build镜像完成后,发布镜像时提示权限不足,使用命令docker login进行登录,输入用户名密码后报错:"the user name or passphrase you entered is not correct",尝试过重装docker、重设密码均不奏效。解决方法:1. Finder-应用程序-实用工具-钥匙串访问2. 右键“登录“锁定钥匙串,然后再解锁3....

2018-11-21 11:50:32 3774

原创 python-reraise重新抛出自定义异常——如何使traceback选择性保留?

1. 自定义异常 在python中,自定义一个异常类的方法如下:新建一个python文件exception.py,以后可以将该工程内的所有自定义异常类都写到该文件下。代码如下:"""自定义异常类"""# 参数类型异常类class ParameterTypeError(Exception): _error_code = -1 _error_type = "T...

2018-11-16 15:45:04 2091

原创 java读取文件与写入文件

1. Java按行读取Resource目录下的文件List<String> historyList = new ArrayList<>();ClassPathResource classPathResource = new ClassPathResource("test.txt");try { historyList.addAll(IOUtils.read...

2018-11-07 16:05:14 725

原创 leetcode-24. Swap Nodes in Pairs

题目类型:链表题意:给出一个链表,按对交换节点, - 常数空间 - 不能用改变节点的值的方法做,需要交换节点本身。我的思路:迭代。两两交换,修改next等指针 效率:10%对于当前节点first,和下一个节点second - 记录上一次交换后的最后一个节点pre - 因为交换后链表断裂,所以暂存second下一个节点的位置,temp = second.ne...

2018-08-07 18:02:56 196

原创 leetcode-23. Merge k Sorted Lists

题目类型:链表、分治、归并21题的变式题意:合并k个已排序的链表解法一:暴力–错误复杂度O(k^2^ * N) 类似两个链表的合并,第一个节点全部对比,小的取出,指针后移,再比较。。。。解法二:暴力遍历k个链表,将节点全部添加至集合,对集合排序。解法三:分治–归并排序 复杂度O(kNlogN)两个链表排序四个链表8个...

2018-08-07 17:42:55 213

原创 leetcode-22. Generate Parentheses

题目类型:回溯法,递归题意:给出一个整数n,表示有n组括号,输出所有正确的括号组合。例子:输入3,我的思路:回溯+递归递归一:以==剩余==未添加的左右括号数目为判断条件 50%递归函数:传递string对于这道题,第一个肯定是’(‘,接下来即可以是’(‘也可以是’)’ left:表示==剩余==左括号的数目 right:表示...

2018-08-07 16:58:36 247

原创 leetcode-21. Merge Two Sorted Lists

题目类型:链表合并排序题意:合并两个升序排列的链表为一个有序链表例子:Input: 1->2->4, 1->3->4Output: 1->1->2->3->4->4我的思路:设置两个指针,分别指向两个链表的头,比较大小,将较小的一个节点加入新的list并且往前移动。循环直至某一个链表为空,将另一个剩余...

2018-08-07 16:28:16 203

原创 leetcode-19. Remove Nth Node From End of List

题目类型链表题意:给出一个链表和一个数字n移除链表中从后往前的第n个节点,输出新的链表。例子:Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end, the linked list becomes 1->2->...

2018-08-07 15:57:32 242

原创 leetcode-18. 4Sum

15题的变式题意:给出一个数组和目标和target,在数组中找到四个数,使他们相加之和为target我的思路: 双层循环(最优解法即为O(N^2^)) 51%, O(N^2^)类似15题,先排序,外层是两层循环,内层是两个指针找剩余两个数的和步骤: 1. 数组排序 2. 双层遍历数组nums[i]和nums[j],如果i>0且nums[i]不等于nums...

2018-08-07 14:56:12 195

原创 leetcode-17. Letter Combinations of a Phone Number

题目类型:字符串题意:类似电话键盘,给出一个由数字组成的字符串,输出对应字母的所有组合。例子:Input:Digit string “23”Output: [“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].我的思路:递归 22%前两个任意组合,结果再与第三个组合,结果再与第四个组合…...

2018-08-07 14:36:40 188

原创 leetcode-16. 3Sum Closest

类似15题和18题的结合题意:给出一个数组和一个目标值,找出数组中的饿三个数,使他们的加和最接近target,输出和。(注意不是输出解)我的思路: 数组排序外层循环找第一个数low = i + 1,high = len - 1如果sum == target, return target如果sum大于target,high–如果sum小于target,low++...

2018-08-07 13:50:09 184

原创 leetcode-15. 3Sum

题意:给出一个数组,在其中找到三个数,之和为0,输出所有的解。例子:输入S = [-1, 0, 1, 2, -1, -4],输出[ [-1, 0, 1], [-1, -1, 2] ]错误尝试一:三层循环- –超时正确做法:确定一个数,再用双指针法找剩余两个数 beadt 91%数组由小到大排序遍历每一个数num,若num不等于他之前的...

2018-08-07 12:10:05 214

原创 leetcode-14. Longest Common Prefix

题目类型:字符串题意:Write a function to find the longest common prefix string amongst an array of strings.找出一个字符串数组中所有字符串的最长共同==前缀==。字符串API:==indexOf()的用法==:返回字符中indexof(string)中字串string在父串中首次出现的...

2018-08-07 11:48:18 235

原创 解决Go上传文件报错:找不到Boundary的问题

最近要做一个组件,即接收客户端的请求,经过一系列的封装,将请求发送给真正的服务端器。可以理解为:客户端使用Http的Request的Body存储文件流,将Request发送给服务器。遇到一个问题:传入的是一个文件句柄File,需要转换成byte[]存到request的body中,但是发现boundary找不到,自行在content-Type中加上Boundary字段,发现后台读取不到文件流。1...

2018-08-03 12:07:27 8773

原创 leetcode-13. Roman to Integer

leetcode12题的变式,罗马数字转换为阿拉伯数字题目类型:HashMap,字符串题意:Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.我的思路: 66%步骤:将字符串的各位转化为...

2018-08-01 23:03:19 289

原创 12. Integer to Roman

题目类型:HashMap,字符串  beat:87%题意:Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.罗马数字的写法:![罗马数字的写法](https://ss0.bdstat...

2018-08-01 22:21:00 201

原创 leetcode-11. Container With Most Water

题目类型:双指针题意:给定n个非负整数a1,a2,…,an,其中每个代表坐标(i,ai)处的一个点。 绘制n条垂直线,使得线i的两个端点处于(i,ai)和(i,0)处。 找到两条线,它们与x轴一起形成一个容器,使得容器包含最多的水。分析:即:有n个点,横坐标为0->n-1,纵坐标为a~i~,找到两个点,使得他们向x轴做垂线,变成一个一边长一边短的杯子,使得短垂线*...

2018-07-26 22:06:57 191

原创 leetcode-9. Palindrome Number

题目类型:数学问题题意:判断一个数是否是回文数(定义:反向排序仍与原数相同) - 不使用额外空间分析:如果Integer转换成String处理,递归会使用额外的存储空间。负数不是回文数我的思路: 效率:58%步骤:转化成字符串,双指针分别指向头和尾 ,判断每一个字符是否相同class Solution { publi...

2018-07-26 18:19:33 143

原创 leetcode-8. String to Integer (atoi)

题目类型:字符串题意:实现atoi函数(String转化成int) - 注意各种边界情况。我的思路:循环遍历string的每一个字符,res += res * 10 + c; - 如果string为空,return 0; - 如果只有符号,非法–return 0 - 如果有多个符号,非法–return 0 - 若字符串开头有空格,不影响–==string.trim()...

2018-07-26 18:06:37 158

原创 leetcode-7. Reverse Integer

题目类型:字符串题意:数字反转,给出一个数字,将他的各个位反转,例如123->321,-123->-321 - 注意负数符号不参与。 - 注意反转后开头的0要去掉,例如120->21 - 注意int反转后可能成为double:1534236469/-1534236469,当数组越界int输出0知识点:String转化成int, - valueOf ...

2018-07-25 21:00:07 208

原创 LeetCode-5. Longest Palindromic Substring

题目类型:回文、字符串题意:给出一个字符串,输出其中最长的回文子串方法一:中心展开法:O(N^2^) 95%时间O(N^2^)空间O(1)思路:要求的是回文【子串】,那么必须是连续的。对于每一个字符,向左向右查找,两个字符若相同那么继续向左向右,否则已找到以当前字符为中心的最长回文子串难点:当前字符可能是奇数回文串中的中心,也可能是偶数回文...

2018-07-25 18:05:53 110

原创 leetcode-4. Median of Two Sorted Arrays

4. Median of Two Sorted Arrays20min题意:给出两个有序数组,找出他们的中位数,时间复杂度控制在O(log(m+n))方法一:归并做法,O(m+n)时间O(M+N)空间O(1) 两个数组长度之和为len那么对于奇数个元素,中位数的下标是len/2对于偶数个元素,中位数是:(len/2-1 + len/2)/2所以,利用归并...

2018-07-25 18:04:57 234

原创 leetcode-6. ZigZag Conversion

题目类型:字符串题意:之字形结构 给出一个字符串和一个数字n,将字符串每个字符按照n行之字形结构重新排布,按行重新拼接输出。例子:我的思路:找每行下标的规律 97%观察几个例子可知,temp = n+(n - 2)个字符一组所以可将字符串分割,每组中第0行元素只有一个,下标为0,第一行:1, 1 + n,第二行:2, 1+n - 1,第三行:3,1+...

2018-07-25 18:03:52 141

原创 leetcode-3. Longest Substring Without Repeating Characters

无重复元素的最长子串(不是子序列,子序列可以不连续,子串必须是一段连续)题意:给出一个字符串,输出他的无重复元素的最长子串的长度: - 无重复元素 - 最长 - 子串的字符在父串中连续,不可以间隔方法一如果s长度小于等于1,直接输出其长度遍历每一个字符,维护两个指针,left无重复子串的左边界,right为当前遍历到的字符 当前字符在map中找到,left移到map...

2018-07-25 18:02:28 127

原创 leetcode-2. Add Two Numbers

题目类型:递归、链表耗时:一刷:1h二刷:22min题意:给出两个链表,将链表中的数逆向得到的int相加,再逆序输出,用链表存储每一位。 - 若两个链表不一样长,不足位为0例子:错误尝试:Stack分别遍历两个链表,将数字存入stack,再依次出栈拼接成int,相加后不断除以10,从最后一位开始形成链表 public ListN...

2018-07-25 18:00:50 139

原创 leetcode-1. Two Sum

1. Two Sum二刷用时5min题意:给出一个int数组和一个target,从数组中找到两个数,使他们的和=target,输出两个数的下标假设每个输入只有一种解决方案,且每个数只能用一次可以有正数负数我的方法: 开始考虑可以用target/2作区分,必须是一个<=target/2和一个>=target/2的数相加才能得到target,但...

2018-07-25 17:59:02 149

原创 Python初探之实现机器人聊天+微信自动回复

最近看到公司代码平台上有小伙伴用Python实现了聊天机器人功能,一直很想学Python却没有开始,自己实现一下算做入门吧~接入图灵机器人+接入微信自动回复。一、图灵机器人1. 在图灵机器人官网注册一个账号http://www.turingapi.com/#/platfrom2. 注册登录后点击创建机器人,填写基本信息3. 创建成功,在机器人设置界面找到APp Key...

2018-07-12 11:52:20 3985 2

原创 python入门之Anaconda安装

一、 Anaconda介绍Anaconda是一个包管理软件,将Python版本和许多常用的package打包发布的一个开源版本,使用它可以减少很多后续安装python各种包的麻烦,且自带Jupyter编辑器,可以实时编辑代码。安装Anaconda后可以使用conda来安装更新卸载工具包。二、Anaconda安装1. 官网下载,下载链接:https://www.anaconda.com/downlo...

2018-07-11 17:47:57 300

原创 fasthttp client解析--Golang更快的http组件

流程解析:1. test中调用Get方法2. 调用clientGetURL方法3. 首先调用AcquireRequest()方法得到一个复用的request1. 从requestPool中任意选择一个空的request,若该request不再需要可以将其传给releaseRequest,这将会将request回收,减少GC压力。2. 对pool操作要加锁。3. 若pool中没有request,那么...

2018-07-10 11:18:49 5434

原创 Golang之消息机制channel

1. 背景:1. 对于以下这段代码:按照想法应该输出0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9但是,输出结果是:0 1 2 3 4 5 6 7 8 92. 原因:在goroutine还未来得及跑loop函数时,主函数main已经退出。解决主函数退出太快最直接的方法是让主函数睡眠一段时间:这次输出结果确实是两趟。可是等待的办法并不好,因为并不知goroutine要...

2018-07-06 18:15:49 1705

原创 goroutine与协程

一、线程与协程的区别1. 调度上的区别1. 进程线程都是由操作系统进行调度, 有CPU时间片的概念,进行抢占式调度2. 协程是用户态的轻量级线程,对内核透明,所以协程的调度与切换完全由用户控制3. 正因为协程不由操作系统调度,才有:线程是操作系统调度的最小单位。2. 切换开销的区别线程太重,资源占用太高,频繁创建销毁会带来严重的性能问题;协程切换远比线程小3. 协程的好处:一个协程几乎就是一个普通...

2018-07-06 18:06:43 2455

原创 Golang之net/http包的httpClient与Transport源码详解

一、net/http的httpclient发起http请求方法第二步:Do/Get/Post方法的实现(以Do为例)第三步:精髓:调用transport的RoundTrip方法struct:RoundTrip方法:第一步:获取TCP长连接pconn, err := t.getConn(req, cm)第二步:调用这个持久连接persistConn 这个struct的roundTr...

2018-07-06 10:06:35 10287

原创 第一个Go项目

一、新建项目1. 新建一个项目在配置的GOPATH下2. 新建以下三个文件夹src pkg, bin,在src下新建main文件夹,其中写代码3. 为项目建立一个独有的GOPATH,重要,否则第5步会因找不到PATH下的Package而出错4. 编辑配置文件5. 左上角点击+,选择Go BuildRun kind选Package,选择运行文件的包Output directory填写你自己项目bin...

2018-07-06 10:03:13 3162

原创 Go入门之——Go开发环境配置

一.配置Go开发环境1. 到这个网站https://studygolang.com/dl下载对应的安装包,msi包表示安装后不需要配置环境变量,会自动配置2. 安装位置为默认即可。3. 查看环境变量已经自动更改。4. 检查是否成功:命令行输入go verison,若出现go版本号,成功。5. 修改一下GOPATH,指向代码目录,类似于eclipse的workspace。6. go env可以看到g...

2018-07-06 09:54:32 6974

原创 java应用之——读取word英文文档,统计单词频次并输出到excel

该文是java读取文件写入文件的应用,相关知识见上篇博文https://blog.csdn.net/nnnora/article/details/80734917一个例子:读取word英文文档,统计单词频次并输出到excel public FileOutputStream getwordsFrequency(MultipartFile file) { FileOutputSt...

2018-06-19 16:10:06 1640

原创 java读取txt,写入txt,读取word,写入excel总结

1. 读取txt文件:使用ClassPathResource的原因在https://blog.csdn.net/nnnora/article/details/80734326中阐述过,因为是springboot内置web容器所以不能使用FileInputStream的方式获取文件流。 //读取txt文件 ClassPathResource classP...

2018-06-19 16:03:28 2189

原创 web项目下读取classpath下的文件心得--使用springboot遇到的大坑

在读取springBoot+gradle构建的项目时,如果使用传统的FileInputStream读取文件流或者ResourceUtils工具类的方式,都会失败,下面解释原因:一、读取文件的三种方式:1. ResourceUtils工具类import org.springframework.util.ResourceUtils;//使用:File file= ResourceUtils.get...

2018-06-19 15:43:57 6910 1

空空如也

空空如也

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

TA关注的人

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