自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指Offer 15: 反转链表

Description输入一个链表,反转链表后,输出新链表的表头。Solution:其实只需要用头插法再插一遍List即可//C++ ListNode* ReverseList(ListNode* pHead) { if(NULL == pHead) return NULL; ListNode* rev = NULL; ...

2019-03-19 14:08:42 122

原创 剑指Offer 14:链表中倒数第k个结点

Description输入一个链表,输出该链表中倒数第k个结点。Solution 1: Recursion自己刚开始写了一个递归的思路,到tail就开始计数,计到k就用ans存起来return即可。//C++ ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ListNode* an...

2019-03-19 14:04:57 114

原创 剑指Offer 13: 调整数组顺序使奇数位于偶数前面

Description输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。Solution:这道题的思路大概是这个样子:用一个临时的新vector按顺序把奇数存起来修改array使得偶数按顺序在后面排好把之前存好的奇数copy回来这样就可以在O(n)的时间解决...

2019-03-19 13:37:33 128

原创 剑指Offer 12:数值的整数次方

Description给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。Solution 1:用Divide & Conquer的思路可以每次平方,最后堆起来得到答案。最开始的时候我搞不太清exp =0, 1这种情况怎么合并,所以就单独分了出来。//C++ double Power(double base...

2019-03-19 13:28:01 125

原创 剑指Offer 11: 二进制中1的个数

Description输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。Solution:n & n - 1会消除n的二进制位最后一个1(无论正负),所以消除的次数就代表了二进制中1的个数。循环会终结因为二进制中1的个数是有限的,而每次一定会消掉一个0//C++ int NumberOf1(int n) { int cnt = ...

2019-03-19 12:59:05 136

原创 剑指Offer 10:矩形覆盖

Description我们可以用2 ×1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2×1的小矩形无重叠地覆盖一个2×n的大矩形,总共有多少种方法?Solution 1: Dynamic Programming注:n = 0时return 0对于一个2×n的大矩形,我们最左边的小格子最多有两种摆法:竖着摆一个1×2,这样其余是F(n-1)种摆法横着摆两个1×2,这样其余...

2019-03-18 09:38:34 175

原创 剑指Offer 9:变态跳台阶

Description一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。Solution 1: Dynamic Programming延续跳台阶的思路,我们仍然可以用DP解决这道题。//C++ int jumpFloorII(int number) { int* dp = new int[number...

2019-03-18 09:32:16 132

原创 剑指Offer 8:跳台阶

Description一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。Solution:和斐波那契数列的做法一样,Recursion关系F(n) = F(n-1) + F(n-2). 因为跳n级台阶,可以由n-1级跳一级上来,也可以由n-2级跳两级上来。最后DP一下即可。//C++ int jumpFlo...

2019-03-18 09:01:56 110

原创 剑指Offer 7:斐波那契数列

Description大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39Solution:比较经典的DP,Recursion是F(n) = F(n-1) + F(n-2)所以反过来用两个int从前往后填就行。//C++ int Fibonacci(int n) { int a = 0, b...

2019-03-18 08:55:16 108

原创 剑指Offer 6:旋转数组的最小元素

Description把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。Solution:可以直接Binary Search,每次mid和r的大小关系有三种:...

2019-03-18 08:44:11 93

原创 剑指Offer 5:用两个栈实现队列

Description用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。Solution:注:不考虑边缘情况,如:在两个stack都空的时候pop作为一个LIFO的数据结构,stack中的元素在弹出的时候为反序。而为了实现一个FIFO的queue,我们就需要将反序的元素再push进令一个stack,把顺序正回来。//C++public: ...

2019-03-18 05:39:45 96

原创 剑指Offer 4:重建二叉树

Description输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。Solution:两个遍历序列的特点:前序遍历:root,左子树,右子树中序遍历:左子树,root,右子树依此,我们可以...

2019-03-18 05:25:46 109

原创 剑指Offer 3:从尾到头打印链表

Description输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。Solution 1: Recursionhead recursion//C++//Time: O(n)/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(...

2019-03-17 11:02:36 147

原创 剑指Offer 2:替换空格

Description请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。Solution:注:这里length为str最大长度,不是str当前长度。这道题要在原str上进行操作,而不能新建一个char*来覆盖。所以如果从前往后将一个字符的空格替换成三个字符,就不免会影响到后...

2019-03-17 10:23:29 132

原创 剑指Offer 1: 二维数组查找

Description在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。Solution:从右上角(或左下角)开始与target比较。如果大,那么同一列下面的所有元素都会比target大,均可排除;如果小,那么同一行左边的所有元素都会比target小...

2019-03-17 08:38:20 116

原创 Leetcode640. Solve the Equation

DescriptionSolve a given equation and return the value of x in the form of string “x=#value”. The equation contains only ‘+’, ‘-’ operation, the variable x and its coefficient.If there is no solutio...

2019-02-20 05:48:32 105

原创 Leetcode136. Single Number

Leetcode 136. Single NumberDescriptionGiven a non-empty array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime compl...

2019-02-09 06:39:20 100

空空如也

空空如也

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

TA关注的人

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