Moz的博客

  • 首页

  • 读书

  • 标签

  • 分类

  • 归档

  • 搜索

字符串相乘

发表于 2018-09-09 | 分类于 算法 , LeetCode

LeetCode 第43题

问题描述

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

示例 1:

1
2
输入: num1 = "2", num2 = "3"
输出: "6"

示例 2:

1
2
输入: num1 = "123", num2 = "456"
输出: "56088"

说明:

  1. num1 和 num2 的长度小于110。
  2. num1 和 num2 只包含数字 0-9。
  3. num1 和 num2 均不以零开头,除非是数字 0 本身。
  4. 不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。
阅读全文 »

接雨水

发表于 2018-09-08 | 分类于 算法 , LeetCode

LeetCode 第42题

问题描述

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

img

上面是由数组 [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。

示例:

1
2
输入: [0,1,0,2,1,0,1,3,2,1,2,1]
输出: 6
阅读全文 »

摆渡人

发表于 2018-08-30 | 分类于 读书 , 小说

一本好书就像毒瘾一样,总能让你疯狂的沉迷其中。这次要推荐的,就是这本小说——《摆渡人》。

首先看着标语,就知道这是一本心灵拷问的书:

I exist because you need me.

Life, Death, Love - Which would you choose?

阅读全文 »

一个人的朝圣

发表于 2018-08-26 | 更新于 2018-08-28 | 分类于 读书 , 小说

哈罗德·弗莱,六十五岁,是一名酿酒厂的退休工人。由于从小家境环境的影响(父亲的暴烈,母亲的出走),哈罗德成为了一个自卑、胆怯、内向的人。在酿酒厂干了四十年的销售代表,没有升迁,没有朋友(可能奎宁是一个),没有敌人,退休后连欢送会都没开。在一次偶然的酒会上,他遇到了漂亮的妻子莫琳,两人一见钟情,并生下了一个聪明的儿子戴维。然而,平凡的生活终究被无情的打破,他迎来了人生中最沉痛的打击——戴维的自杀。妻子莫琳对哈罗德甚是生气,她将儿子的死归结到哈罗德的冷漠、胆怯、懦弱等等。从此,一段长达二十年的冷战在他们俩之间拉开了序幕。住在一个屋檐下,却好似两个冷淡的陌生人,每日寥寥几句,没有了欢笑,没有了感情。

阅读全文 »

LeetCode41 缺失的第一个正数

发表于 2018-08-18 | 更新于 2018-09-08 | 分类于 算法 , LeetCode

LeetCode 第41题

问题描述

给定一个未排序的整数数组,找出其中没有出现的最小的正整数。

示例 1:

1
2
输入: [1,2,0]
输出: 3

示例 2:

1
2
输入: [3,4,-1,1]
输出: 2

示例 3:

1
2
输入: [7,8,9,11,12]
输出: 1

说明:

你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。

阅读全文 »
相关文章
  • LeetCode31 下一个排列
  • LeetCode39 组合总和

linux环境下如何修改PIPE BUFFER SIZE

发表于 2018-08-03 | 更新于 2018-08-26 | 分类于 Python

转载自Python:linux 环境下如何修改PIPE bufer size

当 PIPE 的写入方写的太快,但是读取方来不及读取的时候,就会把 buffer 给写满从而出现 resource temporarily unavailable 错误。在 linux 下可以通过 fcntl.fcntl(fd, fcntl.F_SETPIPE_SZ, size) 来设置 PIPE 的 buffer 大小。

相关 Python 代码如下:

1
2
3
4
5
6
7
8
9
import fcntl
import platform

try:
if platform.system() == 'Linux':
fcntl.F_SETPIPE_SZ = 1031
fcntl.fcntl(fd, fcntl.F_SETPIPE_SZ, size)
except IOError:
print('can not change PIPE buffer size')

一般可以通过 read_fd, write_fd = os.pipe() 来生成 pipe, 此时上面的 fd 对应 read_fd 和 write_fd 。

  • 捕获 IOError 异常是因为有的 linux 内核版本不支持修改 PIPE buffer 大小。
  • python 的 fcntl 没有 F_SETPIPE_SZ 属性,所以我们定义了这个属性,它的值来自 fcntl.h 。

Thrift 使用指南

发表于 2018-07-31 | 更新于 2018-08-26 | 分类于 网络编程 , RPC , thrift

Thrift: The Missing Guide

subprocess-call, check_call, check_output, Popen

发表于 2018-07-23 | 分类于 Python

在Python中,我们通过使用标准库中的subprocess模块来fork一个子进程,并运行一个外部的程序(类似于在linux中fork一个子进程,然后在子进程中exec另外一个程序)。

阅读全文 »

Python有GIL,为什么还需要线程同步

发表于 2018-07-11 | 更新于 2018-07-23 | 分类于 Python

GIL的作用是,对于一个解释器,只能有一个thread在执行bytecode。所以任何时刻只有一条bytecode在被一个thread执行。Python的多线程并不是严格意义上的并行执行,GIL在bytecode层面上保证了thread safe,但是python多线程包里依然提供了加锁机制,这是为何?

阅读全文 »

LeetCode39 组合总和

发表于 2018-06-15 | 更新于 2018-06-19 | 分类于 算法 , LeetCode

LeetCode 第39题

问题描述

给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。

candidates 中的数字可以无限制重复被选取。

说明:

  • 所有数字(包括 target)都是正整数。
  • 解集不能包含重复的组合。

示例 1:

1
2
3
4
5
6
输入: candidates = [2,3,6,7], target = 7,
所求解集为:
[
[7],
[2,2,3]
]

示例 2:

1
2
3
4
5
6
7
输入: candidates = [2,3,5], target = 8,
所求解集为:
[
[2,2,2,2],
[2,3,3],
[3,5]
]
阅读全文 »
相关文章
  • LeetCode31 下一个排列
  • LeetCode41 缺失的第一个正数
123
Moz

Moz

24 日志
13 分类
49 标签
GitHub
友情链接
  • 王辉的博客
  • lxw的大数据田地
  • Marko A. Rodriguez
© 2018 Moz
由 Hexo 强力驱动 v3.7.1
|
主题 – NexT.Pisces v6.4.0