刷题
故渊~
这个作者很懒,什么都没留下…
展开
-
【剑指offer】变态跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 因为n级台阶,第一步有n种跳法:跳1级、跳2级、到跳n级 跳1级,剩下n-1级,则剩下跳法是f(n-1) 跳2级,剩下n-2级,则剩下跳法是f(n-2) 所以f(n)=f(n-1)+f(n-2)+…+f(1) 因为f(n-1)=f(n-2)+f(n-3)+…+f(1) 所以...原创 2019-02-27 22:52:07 · 113 阅读 · 0 评论 -
【LeetCode】21-合并两个有序链表
题目描述 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 合并两个有序链表,首先创建一个头结点,然后根据两个链表的val大小插入新链表中,当一个链表结点为空时,跳出循环,将另一个链表的剩余所有节点接到新链表后...原创 2019-03-04 17:30:59 · 162 阅读 · 0 评论 -
【剑指Offer】从尾到头打印链表
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 思路 因为要反转链表,所以链表的尾做头结点,链表的头做尾结点,这样就想到了栈的先进后出原则,将链表的所有结点入栈,然后每次取栈顶的结点放入ArrayList中,然后将栈顶元素出栈,即可达到效果。 代码 /** * struct ListNode { * int val; * struct ...原创 2019-03-03 16:48:55 · 101 阅读 · 0 评论 -
【LeetCode】206-反转链表
题目描述 反转一个单链表。 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路 这道题的首节点会一直改变,我们先创建一个 result 空结点,然后通过循环,将链表反向链接起来,因为反向链接会丢失原链表的下一个结点的指针,所以要先将下一个原创 2019-03-03 16:43:14 · 111 阅读 · 0 评论 -
【剑指offer】跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 比较倾向于找规律的解法,f(1) = 1, f(2) = 2, f(3) = 3, f(4) = 5, 可以总结出f(n) = f(n-1) + f(n-2)的规律,但是为什么会出现这样的规律呢?假设现在6个台阶,我们可以从第5跳一步到6,这样的话有多少种方案跳到5就有多少...原创 2019-02-26 21:44:02 · 129 阅读 · 0 评论 -
【剑指offer】求1+2+3+....+n
题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 方法一:构造函数求阶乘 设置一个静态变量N和sum,在构造函数中进行累加运算; 然后构造一个以辅助类为类型、大小为n的数组,重复调用此构造函数n次来实现n次的累加运算 class temp { public: static void re...原创 2019-02-26 13:29:05 · 403 阅读 · 0 评论 -
【LeetCode】28.实现strStr()
题目描述 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例1: 输入: haystack = “hello”, needle = “ll” 输出: 2 示例2 输入: haystack = “aaaaa”, needle = “bba” 输出: -1 ...原创 2019-03-01 15:00:02 · 114 阅读 · 0 评论 -
【剑指Offer】调整数组顺序使奇数位于偶数前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 首先看到这个题,我的第一反应是定义 begin 和 end 两个标志位,begin 从数组 0 位置开始加,end 从数组 size-1 位置开始减,当 begin 找到偶数时,end 找到奇数时,begin 和 e...原创 2019-02-28 23:20:06 · 152 阅读 · 0 评论 -
【LeetCode】876. 链表的中间结点
题目描述 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返回了一个 ListNode 类型的对象 ans,这样: ans.val = 3, ans....原创 2019-03-04 17:53:29 · 111 阅读 · 0 评论