自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 只调用random(0, 1),实现random(a, b)

只调用random(0, 1),实现random(a, b)?random(0, 1),50%为0,50%为1random(a, b),b-a+1个数,调用random(0,1)后采取某种方法得到a~b之间。2^n = m ,bit表示此二进制值的位数思路:找到包含b-a+1范围的二进制数,random(0,1)求和,相当于二进制的每一位都是等概率的值,结果

2016-11-03 22:55:42 1361

原创 KMP 算法

KMP算法解决的问题:给定字符串s(长度为n)和模式串f(长度为m),判断f是否在s中出现。如果存在,则返回f首次出现的位置。子字符串通用的方法是遍历目的串和模式串,先遍历目的串s,然后遍历模式串f,复杂度是O(n*m)。KMP算法,利用构造跳转表next,字符串的前后缀。目的串s为:BBCABCDAB ABCDABCDABDE模式串f为:ABCDA

2016-09-15 11:23:00 271

转载 Parentheses——22 序

成对的括号卡特兰数Catalan数的定义令h(1)=1,Catalan数满足递归式:h(n)= h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1),n>=2该递推关系的解为:h(n)= C(2n-2,n-1)/n,n=1,2,3,...(其中C(2n-2,n-1)表示2n-2个中取n-1个的组合数)总的个数 C(

2016-09-07 23:45:16 175

原创 GenerateParenthes——22

GenerateParenthes给定一个数n,排列出所有可以成对的组合()例如:n=3((( )))(()())(())()()()()()(())先不说程序(越来越懒了哈),说说这个问题的思想。所有满足条件的结果应有以下特点:设两个变量leftnum,rightnum表示剩余的左右括号,其中,leftnum= rightnum

2016-09-07 23:32:23 215

原创 Add Two Numbers 2

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a link

2016-08-29 22:36:21 240

原创 RansomNote_383

RansomNote勒索信从杂志中选取字符,作为勒索信的内容,判断勒索信字符串的内容是否都能从杂志字符串中获取?bool canConstruct(char* ransomNote, char* magazine)思路:字符串问题。该题目与字符串顺序无关,是字符个数统计。26个英文字母数组统计。判断ransom中的个数是否大于mag中的个数。此外

2016-08-25 21:49:47 324

原创 单链表 回文

判断一个单链表是否是回文数。要求  时间复杂度O(n) 空间复杂度O(1)分析:如果是连续内存的数组a[n],可以直接比较;if a[i] == a[n-1-i]单链表无法直接处理。怎么能同时满足时间复杂度和空间复杂度的要求呢?为了满足O(n)的时间复杂度,只能遍历一次;为了满足O(1)的空间复杂度,得利用单链表的特点;构造反向链表,将正向链表和反向链表

2016-08-18 22:06:33 448 2

原创 【LetCode——342】Power of four

一个正整数,判断是否是4的次方;(不使用循环、递归)首先想到的是不停的除4,判断最后是否为1;循环、递归bool isPowerOfFour(int num){    if(num    return false;while(num && (num % 4 == 0)){num = num / 4;}        return num == 1;

2016-08-14 21:57:25 124

原创 3Sum_15

数组中的三个数的和为0?思路:1、首先想到的是遍历,三层遍历,复杂度O(n^3),肯定不是最好的方法;2、优化:自己想了下,结合网上的方法,至少需要两次遍历1)原理:数组中两个数的和为M,先将数组排序,利用两个游标j、k分别标识数组的最大/最小位置,一次遍历即可,复杂度O(n)。if a[j] + a[k]     j++;else if a[j] + a[k]

2016-08-03 23:38:06 147

空空如也

空空如也

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

TA关注的人

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