- 博客(17)
- 收藏
- 关注
原创 变态跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。Javapublic class Solution { public int JumpFloorII(int target) { if(target == 0) return 0; int[] a = new int[targe
2016-08-31 21:19:30 246
原创 斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。C++class Solution { public: int Fibonacci(int n) { int a[3] = {0,1}; if(n<=0) return 0; else if(n == 1) return
2016-08-31 20:40:36 455
原创 Remove Duplicates from Sorted Array II
Follow up for “Remove Duplicates”: What if duplicates are allowed at most twice?For example, Given sorted array nums = [1,1,1,2,2,3], Your function should return length = 5, with the first five ele
2016-08-30 15:58:11 330
原创 Remove Duplicates from Sorted Array
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this in place with cons
2016-08-30 15:54:55 311
原创 Search in Rotated Sorted Array II
Follow up for “Search in Rotated Sorted Array”: What if duplicates are allowed?Would this affect the run-time complexity? How and why?Write a function to determine if a given target is in the array.允
2016-08-30 15:15:04 248
原创 Search in Rotated Sorted Array
**Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are given a target value to search. If found in the array return its ind
2016-08-30 14:44:47 332
原创 抽象工厂(Abstract Factory)
抽象工厂(Abstract Factory)(对象创建型模式) ——提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。 结构 AbstractFactory 声明一个创建抽象产品对象的操作接口。 ConcreteFactory 实现创建具体产品对象的操作。 AbstractProduct 为一类产品对象声明一个接口。 ConcreteProduc
2016-08-29 15:57:18 272
原创 工厂方法(Factory Method)
工厂方法(Factory Method)(对象创建型模式) ——定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到子类。 设计原则 要依赖抽象,不要依赖具体类。——依赖倒置原则(Dependency Inversion Principle)。 结构 Product 定义工厂方法所创建的对象的接口。 C
2016-08-29 15:56:42 413
原创 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。Search in Rotated Sorted Arrayimport java.util.ArrayList; public
2016-08-29 15:46:12 396
原创 用两个栈实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 C++class Solution { public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()){ while(!stack1
2016-08-29 14:21:38 471
原创 重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 C++/** * Definition for binary tree * struct TreeNode { * int val; * T
2016-08-29 12:28:30 436
原创 从尾到头打印链表
仅作为个人笔记 输入一个链表,从尾到头打印链表每个节点的值。 C++递归/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ class S
2016-08-28 21:10:21 464
原创 替换空格
仅作为个人笔记 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 C++class Solution { public: void replaceSpace(char *str,int length) { if(str == NULL && length <= 0)
2016-08-28 21:05:26 452
原创 二维数组中的查找(行递增矩阵的查找)
仅作为个人笔记 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。C++class Solution { public: bool Find(vector<vector<int> > array,int target) { int rowCount = arra
2016-08-27 12:37:50 1359
原创 荷兰国旗
现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换任意两个球,使得从左到右依次为红球、白球、蓝球。可以借鉴快速排序的思路,先看三路快速排序的实现三路快速排序法适用于有大量重复元素的排序。public class Quick3Way { public static void sort(Comparable[] a) { sort(a, 0, a.lengt
2016-08-26 16:21:16 583
原创 奇偶数排序
给定一个整数数组,请调整数组中数的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。一头一尾指针往中间扫描import java.util.Arrays;public class OddEvenSortTest { private static boolean IsOddNumber(int data) { return (data & 1) == 1;
2016-08-26 15:51:18 684
原创 跳台阶问题
一个台阶总共有n级,如果一次可以跳1级,也可以跳2级,求总共有多少种跳法。递归法long long Fibpnacci(unsighed int n) { int result[3] = {0, 1, 2}; if(n <= 2) { return result[n]; } teturn Fibonacci(n - 1) + Fibonacci
2016-08-04 11:25:05 462
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人