Skip to content

Instantly share code, notes, and snippets.

View sing1ee's full-sized avatar
🏠
Working from home

zhangcheng sing1ee

🏠
Working from home
View GitHub Profile
@sing1ee
sing1ee / gist:e3e95c7deafc3be885f0a29e19177d1f
Created September 14, 2022 03:18
key steps for install osmosis full node for pocket network
1. install
```shell
cd ~/chain_bin/
wget https://github.com/osmosis-labs/osmosis/releases/download/v11.0.1/osmosisd.tar.gz
wget https://github.com/cosmos/cosmos-sdk/releases/download/cosmovisor%2Fv1.3.0/cosmovisor-v1.3.0-linux-amd64.tar.gz
@sing1ee
sing1ee / linecolor.py
Created March 21, 2017 06:46
small tools for colorful output of stdout
# /usr/bin/python
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8') # @UndefinedVariable
# 格式:\033[显示方式;前景色;背景色m
# 说明:
@sing1ee
sing1ee / centos6.5_nginx
Created October 16, 2016 12:52 — forked from ifels/centos6.5_nginx
centos 6.5 nginx安装与配置
第一步,在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo:
cd /etc/yum.repos.d/
vim nginx.repo
填写如下内容:
[nginx]
name=nginx repo
@sing1ee
sing1ee / 51hunter_crawler.py
Last active April 22, 2016 01:59
crawl skill tags from 51hunter
# -*- coding: utf-8 -*-
import requests
import sys
reload(sys)
sys.setdefaultencoding('utf8') # @UndefinedVariable
skills = '''

###数对数目分析

####原题 给定两个数组X和Y,元素都是正数。请找出满足如下条件的数对的数目:

  1. x^y > y^x,即x的y次方>y的x次方
  2. x来自X数组,y来自Y数组

####分析 假设数组X的长度为m,数组Y的长度为n,最直接的暴力法,时间复杂度为O(m*n),但这样的话,并不需要都是正数这个条件的。那么,我们该如何优化呢?

###LIS问题分析

####原题 这个LIS问题,可不是Longest Increasing Subsequence,而是Largest Independent Set,含义如下:给定一棵二叉树,找到满足如下条件的最大节点集合:集合中的任意两个节点之间,都没有边。如下图: tree

LIS大小为5,为{10,40,60,70,80}.

####分析 这个题目与前几期的题目颇有类似,而且,一个二叉树的问题。通常来讲,树的问题一般都是可以通过递归来解决的。递归是自顶向下的分析问题,分析原问题是否能够分解为子问题。那么LIS问题呢?我们从LIS集合大小入手,设f(x)为以x为根的数的LIS的大小,根据题目中的定义:

###最少插入字符分析

####原题 给定字符串,可以通过插入字符,使其变为回文。求最少插入字符的数量。例如:

  1. ab最少插入1个字符,变为bab
  2. aa最少插入0个字符
  3. abcd最少插入3个字符,dcbabcd

####分析

####分词问题

####原题 给定字符串,以及一个字典,判断字符串是否能够拆分为字段中的单词。例如,字段为{hello,world},字符串为hellohelloworld,则可以拆分为hello,hello,world,都是字典中的单词。

####分析 这个题目唤作“分词问题”,略显宽泛。只是想提及这个问题,这是在自然语言处理,搜索引擎等等领域中,非常基础的一个问题,解决的方法也比较多,相对比较成熟,不过这仍旧是一个值得进一步探索的问题。那我们先从这个简单的题目入手,看看如何处理题目中这个问题。 最直接的思路就是递归,很简单。我们考虑每一个前缀,是否在字典中?如果在,则递归处理剩下的字串,如果不在;则考虑其他前缀。示例代码如下:

###最大乘积分析

####原题 一根绳子,长度为n米。将其切成几段,每一段的长度都是整数。请给出一种切法,使得切成的各段绳子之间的乘积是最大的。注意,最少要切一下的。 ####分析 这个题目如何一步一步的分析呢?不管切几段,总有第一段,第二段…等等。第一段的长度有哪些选择呢?可以是1、2、3...一直到n-1(至少要切一下),我们用max_prod(n)表示长度为n的绳子的切法中,乘积最大的值。那么:

  1. 当第一段长度为1时,最大的乘积为:max(1×max_prod(n-1), 1×(n-1))
  2. 当第一段长度为2时,最大的乘积为:max(2×max_prod(n-2), 2×(n-2))
@sing1ee
sing1ee / gist:0a62fd2a99caecf9e373
Created October 8, 2013 16:13
leetcode gas station

###加油站分析

####原题 城市的环形路有n个加油站,第i个加油站的油量用gas[i]来表示,你有如下的一辆车:

  1. 它的油缸是无限量的,初始是空的
  2. 它从第i个加油站到第i+1个加油站消耗油量为cost[i]

现在你可以从任意加油站开始,路过加油站可以不断的加油,问是否能够走完环形路。如果可以返回开始加油站的编号,如果不可以返回-1。注意,解决方案保证是唯一的。