Skip to content

Instantly share code, notes, and snippets.

View superlayone's full-sized avatar
👻

superlayone superlayone

👻
  • Ant Group,Zhima Enterprise Credit
  • Yuan Space,Zhejiang,Hangzhou,China
View GitHub Profile
@superlayone
superlayone / reverseListBetweenMandN.md
Last active July 10, 2019 12:53
Reverse a linked list from position m to n in-place and in one-pass.

##Leetcode-Reverse Linked List II##

Reverse a linked list from position m to n. Do it in-place and in one-pass.

For example: Given 1->2->3->4->5->NULL, m = 2 and n = 4,

return 1->4->3->2->5->NULL.

Note: Given m, n satisfy the following condition:

@superlayone
superlayone / prop.md
Last active June 17, 2016 22:52
等概率问题

概率问题

  • 由非等概率Rand生成随机序列

题目:已知随机函数rand(),以p的概率产生0,以1-p的概率产生1,现在要求设计一个新的随机函数Rand(), 使其以1/n的等概率产生1~n之间的任意一个数

1、该问题可以先生成一个等概率0、1生成器。由于以p的概率产生0,以1-p的概率产生1,所以00、01、10、11的生成概率分别是p^2、p(1-p)、p(1-p)和(1-p)^2,我们发现生成01和10的概率是一样的,所以我们可以标记这两个序列构造0、1等概率生成器

    int gen(){
 int i1 = rand();
@superlayone
superlayone / wechat.md
Last active January 14, 2016 08:45
WeChat Live Coding

##WeChat Live Coding

实验室人的TST计划——微信面试题,一个小时内做出如下5道题,在collabedit上在线coding

拿来学习一下。。。啦啦啦啦啦啦

###思路

  • 1、哈希表
  • 2、递归解决,按照中序遍历的反方向查找
#! /usr/bin/env python
# coding=utf-8
__author__ = 'jszhou'
from bottle import *
import hashlib
import xml.etree.ElementTree as ET
import urllib2
# import requests
import json
@superlayone
superlayone / cantor.md
Last active August 29, 2015 14:06
Cantor

###利用康托展开求第K个全排列

  • 利用康托编码的思路,假设有 n 个不重复的元素,第 k 个排列是 a1,a2,a3,...,an

  • 那么我们把 a1 去掉,那么剩下的排列为 a2,a3,...,an,共计 n−1 个元素,n−1 个元素共有 (n−1)! 个排列

  • 于是就可以知道

                 a1 = k/(n−1)!
                 
                 
                 k2 = k%(n−1)! 
    
@superlayone
superlayone / merge.md
Created September 16, 2014 04:06
Merge sort

###Merge sort

    #include <iostream>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    void merge(vector<int>& array,int left,int pivot,int right){
    	int leftLen = pivot - left + 1;
@superlayone
superlayone / uset.md
Last active August 29, 2015 14:06
并查集

###并查集

假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。 假如:n = 5 , m = 3 , r = {{1 , 2} , {2 , 3} , {4 , 5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1、2、3属于一个朋友圈,4、5属于另一个朋友圈,结果为2个朋友圈。

    int uset[10001];
    
    int find(int x){
 if (x != uset[x]){
@superlayone
superlayone / auto_ptr.md
Last active August 29, 2015 14:06
auto_ptr

###auto_ptr的实现

    
    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    template<class T>
@superlayone
superlayone / heap_sort.md
Last active August 29, 2015 14:05
Heap sort

##Heap sort

  • Using template
  • Using functional
  • Using vector
        #include <iostream>
        #include <vector>
        #include <algorithm>
@superlayone
superlayone / rvo.md
Last active August 29, 2015 14:05
Return value optimization

###Return value optimization

我们知道,在函数内如果需要以value方式返回对象,那么需要生成临时匿名对象,然后以这个临时对象去通过copy构造函数生成新的对象,最后调用析构函数销毁对象

    A method(){
        ...
        A temp;
        ...
        return temp;
    }