摘要: 题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 一 . 题目解析 简而言之,给你一个数组,返回一个数组,返回的数组内容不包含A[i], 阅读全文
posted @ 2019-05-21 17:04 WeiMLing 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 一 . 个人想法 这个题目搞了一段时间,因为解法好多,比如:是用递归法呢还是循环呢,要不要使用栈呢等等.. 所以,每一种想法都写一下吧,还有一点点的小细节什么的。 这个题目就不用解释了吧,举个例子:输入1→2→3→4→5,输 阅读全文
posted @ 2019-05-20 15:43 WeiMLing 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 一 . 题目该怎么想 1 . 定义栈的数据结构;实现Push、Pop、Top、Min方法;时间复杂度为O(1) 。 思路:定义两个栈。一个存储栈,一个辅助栈。 Push方法:1. 存储栈 阅读全文
posted @ 2019-05-19 22:57 WeiMLing 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 一 . 概念! 首先要理解栈和队列的概念。 1. 栈:咱可以简单的把栈理解成装羽毛球的球桶、或者我们吃的桶装可比克薯片。为啥这么说呢,因为这两样东西都遵循着一个规律,即先进后出的规律,通俗解释一下:羽毛球 阅读全文
posted @ 2019-05-19 18:26 WeiMLing 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 一 . 自己的想法 老实说,貌似直接可以实现。。代码如下: class Solution { public string repl 阅读全文
posted @ 2019-05-19 17:26 WeiMLing 阅读(622) 评论(0) 推荐(0) 编辑
摘要: 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 一 . 解题思路 该题目有两个重要条件!该数组从左到右以及从上到下均为递增,这样我们可以在右上或 阅读全文
posted @ 2019-05-19 17:12 WeiMLing 阅读(789) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 一 . 二叉树的概念 树形结构是一种典型的非线性结构,除了用于表示相邻关系外,还可以表示层次关系。每个结点最多有两棵子树。左子树和右子树是有顺序的,次序不能任意颠倒。即使树中某结点只有一棵子树,也要 阅读全文
posted @ 2019-05-19 16:28 WeiMLing 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 一 . 题目分析 根据题意,可得出,该题目要求两个单增的链表合成一条单增的链表。 链表一:1→5→9→11 链表二:2→4→10→12 新链表为:1→2→4→5→9→10→11→12 二 . 解题 阅读全文
posted @ 2019-05-19 15:09 WeiMLing 阅读(362) 评论(0) 推荐(1) 编辑
摘要: 题目描述 输入一个链表,反转链表后,输出新链表的表头。 一 . 概念普及 关于线性表等相关概念请点击这里。 二 . 实现方法 目前,可以有两种方法实现该要求。 方法一:借助外部空间实现。这里可以将单链表储存为数组,然后按照数组的索引逆序进行反转。此处,可理解为将链表装换为顺序表,然后把队伍方向反转, 阅读全文
posted @ 2019-05-19 14:39 WeiMLing 阅读(498) 评论(0) 推荐(1) 编辑
摘要: 题目描述 输入一个链表,输出该链表中倒数第k个结点。 一 . 数据结构基础概念普及(线性表)。 线性表可分为顺序表与链表,它们是堆栈、队列、树、图等数据结构的实现基础。 顺序表,线性表的顺序存储结构是指:用一块地址连续的存储空间依次存储线性表中的数据元素。他在逻辑上相邻的元素在物理上也是相邻的。什么 阅读全文
posted @ 2019-05-19 12:41 WeiMLing 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 一 . 解题思路 这个貌似就是普通的跳台阶问题。 二 . 代码实现 方法一:递归法 class Solution { public int rectCover( 阅读全文
posted @ 2019-05-18 18:04 WeiMLing 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 一 . 解题思路。 该题目为跳台阶题目的延伸,普通跳台阶每次跳的阶数(1或2),而该题目每次跳的阶数进化为(1~N),其实万变不离其宗,看下图: 其实想法和普通跳台阶完全一致,跳 阅读全文
posted @ 2019-05-18 17:14 WeiMLing 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 一 . 解题思路。 由题目可知,青蛙一次可以跳一阶或者两阶。假设台阶为N阶,我们可以这样想: 假设青蛙最后一跳为一阶,此时预留出最后的一阶,是不是青蛙跳(N-1)阶与跳N 阅读全文
posted @ 2019-05-18 16:27 WeiMLing 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 一 . 理解概念 斐波那契数列概念:斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为 阅读全文
posted @ 2019-05-18 14:20 WeiMLing 阅读(295) 评论(0) 推荐(0) 编辑