自定义博客皮肤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%为1 random(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 1349

原创 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 268

转载 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 174

原创 GenerateParenthes——22

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

2016-09-07 23:32:23 211

原创 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 238

原创 RansomNote_383

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

2016-08-25 21:49:47 322

原创 单链表 回文

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

2016-08-18 22:06:33 446 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 122

原创 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 144

空空如也

空空如也

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

TA关注的人

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