自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

坑底Z蛙

该来的自然会来

  • 博客(193)
  • 收藏
  • 关注

原创 初识NGINX

前言此文是翻译的http://nginx.org/en/docs/beginners_guide.html,由于本人不做php部分的开发,所以去掉了最后一节关于php部分的引用。正文此文对nginx有一个基本的介绍,并提供了几个nginx可以解决的任务。本文假设读者在电脑上已经安装了nginx,如果没有安装,可以按照nginx安装页面的介绍进行安装。此文档介绍了如何启动和安装nginx,根据...

2020-01-26 11:54:29 340

原创 sync.RWMutex 解决读写问题

在一个共享的数据需要被多个线程访问的时候就会出现很多读写问题(由于读写问题有很多变种,所以用许多来形容)。有两种类型的线程需要访问数据—读线程和写线程。读线程仅仅读数据,写线程修改数据。当写线程有权限访问数据的时候,其他线程(包括读线程和写线程)是不可以访问这个共享的数据。这个限制在日常生活中是真的发生的,当写线程无法以原子性的操作修改数据的时候,读线程必须被阻塞,以防读取到脏数据(译者注:为了使...

2019-11-16 17:35:53 2144

原创 你真的懂Go的切片吗?

介绍Go中的切片提供了一种方便、有效的处理一系列特定类型值的方式。切片在其他语言中和数组是相似的,但是有一些不同的特性。这篇文章将会讨论切片,以及如何使用它们。数组在go中切片是建立于数组之上的,所以在理解切片之前,我们必须先理解数组。数组在定义的时候需要明确长度和元素的类型。例如,类型[4]int表示的是一个长度为4的数组。数组的长度是固定的,长度是数组类型的一部分。也就是说[4]int...

2019-11-03 11:40:13 471

翻译 JavaScript异步编程: 从回调地狱到async和await

写好一个优秀的web应用关键之一就是可以在一个页面上做许多AJAX请求前言我们可以从一个简单的例子的每个解决方式来思考JavaScript异步编程的进步为了做到这些,我们可以来做一个简单的任务,这个任务是完成下面这些流程:验证用户的名称和密码获取应用中用户的角色打印用户访问应用的时间回调地狱的方式最古老的解决这些问题的方式是通过一层套一层的的回调。这在过去是解决简单的异步任务的...

2019-10-20 16:54:53 213

原创 Promise对象和任务队列

Promise对象的两个特点对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)一旦状态改变,就不会再变。状态的改变有两种可能:从pending到fulfilled和从pending变为rejected。优点有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌...

2019-09-21 09:16:12 554

原创 JavaScript的作用域

前言js中的一个常见异常是ReferenceError,表示引用的变量不存在js其实不像大多数认为的那样是一个脚本语言,他是一个编译语言。代码中包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理编译语言变量提升console.log(a)a = 2console.log(a)var a 上述代码是不会报错的。只不过console.log(a)的时候,打印的是undef...

2019-08-18 08:26:11 106

原创 go中的select

go中的select提供了一种方式来处理多个channels,select语句满足如下条件每个channel的值都会被计算如果没有channel有产出的话,会阻塞直到一个channel产出如果多个channel有产出的话,会选择假随机(pseudo-randomly)的选择一个产出在有default语句的情况下,没有channel准备好的时候,会立即执行default的语句下面有一个...

2019-07-16 21:23:53 742

原创 gawk匹配特定的行

文章目录gawk匹配特定的行使用正则表达式匹配操作符数学表达式gawk匹配特定的行使用正则表达式打印所有包含字符’abc’的行,其中test.txt包含的内容如下1 abc def ghk2 def ghk iou3 qwe rtu oip使用如下gawk来打印匹配的行的话gawk '/abc/{print $0}' test.txt输出的记过如下➜ scripts gaw...

2019-07-09 08:14:50 509

原创 python实现单例模式总结

装饰器def singleton(cls): def get_instance(*args, **kwargs): if not hasattr(cls, "_instance"): cls._instance = cls(*args, **kwargs) return cls._instance return get_i...

2018-07-30 17:29:47 1146

原创 Python中的descriptor中的一点疑问

在我的印象中,类中的函数是可以有两种调用方式的,如下:class B: def func(self): return 10b = B()b.func()B.func(b)       于是,在之前研究descriptor的时候,我就有了几点困惑    我将代码更换成了如下两个版本版本1import timeclass LazyProperty(object):...

2018-07-15 15:31:35 351

原创 Python中的descriptor

1. 一切皆对象    在python中不仅仅是类的实例是对象,包括类和函数也是对象。2.函数对象       可以看看下面的outer 返回的是什么def outer(): def inner(): return 10 return innerfunc = outer()print(func)    可以看出,func为一个函数对象:&l...

2018-07-13 10:42:03 1137

原创 study by example 1

背景需求产生的原因:今有一商户,有这个月每日的销量数据,想知道两个特定日期的销量,比如说10号和13号。这个时候用眼睛一扫就可以知道结果了。但是,如果需要在一年的数据中,找到给定的多个日期的销量,那么应该如何找呢?使用到的文件year.txt2019/12/13 12019/12/14 22019/12/15 32019/12/16 42019/12/17 52019/12/18...

2019-12-28 13:11:27 238

原创 buildout制作特定的脚本

buildout制作特定的脚本安装buildoutpip install zc.buildout初始化创建文件夹firstbuildout,然后进入该文件夹执行buildout命令,会产生如下就结果├── bin│ └── buildout├── buildout.cfg├── develop-eggs│ ├── setuptools.egg-link│ └── z...

2019-07-23 21:43:47 248

原创 通过shell将一个文件划分为多个文件

通过shell将一个文件划分为多个文件需求是将下面文件的内容,根据第二列的内容,划分为多个文件原始文件名为test.xt,文件内容如下sort a # 3|4sort a # 2|5sort b # 1|2sort b # 2|5分割后的文件file1sort a # 3|4sort a # 2|5file2sort b # 1|2sort b # 2|5解决方案...

2019-07-21 11:08:50 1844

原创 mysql中create table的时候设定的int(M)后面的数字的含义

MySQL可以为整数类型指定宽度,例如INT(11),对大多数应用是没有意义的:它不会限制值得合法范围,只是规定了MySQL的一些交互工具(例如MySQL命令行客户端)用来显示字符的个数。对于存储和计算来说,INT(1)和INT(20)是相同的。...

2019-07-15 07:55:13 2134

原创 Python2的编码问题

Python2的编码问题UnicodeUnicode 的学名是”Universal Multiple-Octet Coded Character Set”,简称为UCS。它为世界上每一种语言的每一个字符定义了一个唯一的字符码,Unicode 标准使用十六进制数字表示,数字前面加上前缀 U+,比如字母『A』的Unicode编码是 U+0041,汉字『中』的Unicode 编码是U+4E2D其他...

2019-07-13 11:14:19 184

原创 go解析json

package mainimport ( "bytes" "encoding/json" "fmt" "path/filepath" "regexp" "runtime")type Contact struct { Name string `json:"name"` Title string `json:"title,omitempty"` Contact struc...

2019-06-18 21:28:13 3693

原创 有缓冲的channel

package mainimport ( "fmt" "math/rand" "sync" "time")const ( numberGoroutines = 4 taskLoad = 10)var wg sync.WaitGroupfunc init() { rand.Seed(time.Now().Unix())}func worker...

2019-06-15 11:06:09 636

原创 go 利用channel进行接力赛

package mainimport ( "fmt" "sync" "time")var wg sync.WaitGroupfunc Runner(baton chan int) { var newRunner int runner := <- baton fmt.Printf("Runner %d runs with baton\n", runner) i...

2019-06-15 10:46:40 199

原创 Go中的无缓冲channel

package mainimport ( "fmt" "math/rand" "sync" "time")func init() { rand.Seed(time.Now().UnixNano())}var wg sync.WaitGroupfunc player(name string, court chan int) { defer wg.Done() fo...

2019-06-15 10:11:58 214

原创 318. 最大单词长度乘积

class Solution: def maxProduct(self, words): """ :type words: List[str] :rtype: int """ mark = {word: (self.tool(word), len(word)) for word in words} ...

2019-01-04 08:09:16 172

原创 23. 合并K个排序链表

 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[  1-&gt;4-&gt;5,  1-&gt;3-&gt;4,  2-&gt;6]输出: 1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4-&gt;5-&gt;6 # Definition for singly-linked list.# class List...

2018-10-19 15:51:10 133

原创 128. 最长连续序列

给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为4class Solution(object): def longestConsecutive(self, nums): """ ...

2018-10-18 20:14:25 218

原创 只出现一次的数字 II leetcode

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99 class Solution(object): def sing...

2018-10-18 12:57:31 107

原创 环形链表

 142. 环形链表 II 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。说明:不允许修改给定的链表。进阶:你是否可以不用额外空间解决此题?设环的长度为z,n表示在快的跑到了(x + y)之后在环形上跑的圈数,head到入口的长度为x, 环的入口到第一次相遇的位置的长度为y。第一次相遇快的跑了(x + y + n * z), 慢的跑...

2018-10-17 16:13:29 118

原创 leetcode 最长上升子序列

给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗? 这个超...

2018-10-17 15:25:06 186

原创 第一个缺失的正整数 leetcode

为什么不能nums这样赋值呢?nums[nums[i]] = nums[i]呢例如 如果数组中存在3 那么我们可不可以nums[3] = 3呢?这样最后的结果会不会和 [0, 1, 2, 3, 4, 5]吗?然后对这个数组从1开始遍历不就好了吗这样做事不行的,因为[1,2,3,0]这样最后的结果就是[1, 1, 0, 3]。因为值1 会对数组中索引为1的值进行修改,然后数组中索...

2018-10-15 16:54:19 733

原创 第一个缺失的正整数 超级容易理解的方法 leetcode

之前看了这题,完全没有思路。看了答案,也是可以懂得原理。但是,依然还是看无数次,忘记无数次,不晓得再看多少次才能熟记。看了bitmap算法之后,对这个题产生了思路。首先,找到传入数组的最大值,这个的时间复杂度是O(n)。然后创建一个长度为n+1,全为'0'的字符串。为什么要取n+1,我只是为了后面取值的时候容易计算。也可以按照长度为n来做。然后遍历数组nums,例如遇见...

2018-10-13 14:03:19 347

原创 Python: 实现bitmap数据结构

这是根据网上看的一篇文章,对代码进行了修改。原网站的地址是:https://my.oschina.net/goal/blog/200347bitmap是很常用的数据结构,比如用于Bloom Filter中、用于无重复整数的排序等等。bitmap通常基于数组来实现,数组中每个元素可以看成是一系列二进制数,所有元素组成更大的二进制集合。对于Python来说,整数类型默认是有符号类型,所以一个整...

2018-10-13 13:31:24 362

转载 用信鸽来解释 HTTPS

英文:Andrea Zanin,翻译:开源中国 www.oschina.net/translate/https-explained-with-carrier-pigeons 密码学是一门难以理解的学科,因为它充满了数学定理。但是除非你要实际开发出一套加密算法系统,否则你是没必要强制理解那些深奥的数学定理的。 如果你阅读本文的目的是想设计下一套 HTTPS 协议,那我只能抱歉...

2018-10-12 09:23:57 174

原创 有序链表转换二叉搜索树 leetcode

给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 ...

2018-10-11 21:21:27 423

转载 扔鸡蛋

###Google面试题:扔鸡蛋问题####原题描述 两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事。有座100层的建筑,要你用这两个鸡蛋通过最少的次数确定哪一层是鸡蛋可以安全落下的最高位置。可以摔碎两个鸡蛋####方法分析 看到这个题目,最保险的方法就是一层一层试验,但这样只需要一个鸡蛋就可以了。我们现在有两个鸡蛋,完全可以用有更快的方法。进一步呢...

2018-10-11 19:45:15 131

原创 最接近的三数之和 leetcode

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). class Solution:...

2018-10-11 19:25:53 86

原创 滴滴笔试碰到的一题

完全没有思路滴滴出行 2019校招 研发试卷在线考试编程题 | 20.0分1/2魔法权杖强化时间限制:C/C++语言 1000MS;其他语言 3000MS内存限制:C/C++语言 65536KB;其他语言 589824KB题目描述:有一把魔法权杖,权杖上有n颗并排的法术石(编号为1到n)。每颗法术石具有一个能量值,权杖的法术强度等同于法术石的最小能量值。权杖可以强化,一次强化可以...

2018-10-10 20:44:32 572

原创 leetcode 第k个排列

给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:"123" "132" "213" "231" "312" "321"给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。 给定 k 的范围是[1,  n!]。示例 1:输入: n = 3

2018-10-09 21:50:20 118

转载 Python正则表达式指南

本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。注意:本文基于Python2.4完成;如果看到不明白的词汇请记得百度谷歌或维基,whatever。尊重作者的劳动,转载请注明作者及原文地址 &gt;.&lt;html1. 正则表达式...

2018-10-09 08:29:40 243

原创 leetcode 下一个全排列

实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1 class Solution: """ ...

2018-10-08 21:10:33 447

原创 正则表达式中的re.findall

  最近在复习正则表达式,想起之前使用re.findall的时候出现的问题。  就是则pattern中含有分组的时候,数据是不一样的。  例如:import rere.findall(r'\d+', '123 321')  输出的结果为['123', '321']当包含分组的时候,下面的输出结果让我有点意外,re.findall(r'(\d+)w(er)', '...

2018-10-08 20:09:58 5026

原创 leetcode 全排列2

给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]class Solution: def permuteUnique(self, nums): """ :type nums: List[int] :rtype: L...

2018-10-06 22:27:21 365

原创 leetcode 全排列

给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] class Solution: def permute(self, nums): """ :type nums:...

2018-10-06 21:45:12 257

空空如也

空空如也

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

TA关注的人

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