剑指offer
文章平均质量分 50
剑指offer
Java追求者
坚持每天学习!
展开
-
Leetcode之118.杨辉三角
1. 题目描述给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2:输入: numRows = 1输出: [[1]]题目链接:https://leetcode-cn.com/problems/pascals-triangle2. 分析题目先分析杨辉三角的行数和位置原创 2021-08-25 10:03:22 · 243 阅读 · 0 评论 -
剑指offer10-栈的压入、弹出序列
1. 栈的压入、弹出序列1.1 题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(原创 2021-04-08 12:23:16 · 120 阅读 · 0 评论 -
剑指offer09-包含min函数的栈
1. 包含min函数的栈1.1 题目定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.pop();minStack.top();原创 2021-04-07 11:00:47 · 96 阅读 · 0 评论 -
剑指offer08-调整数组顺序使奇数位于偶数前面
1. 调整数组顺序使奇数位于偶数前面1.1 题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。提示:0 <= nums.length <= 500001 <= nums[i] <= 10000题目链接:https://leetcode-cn.com/problems/diao-zhen原创 2021-04-06 14:30:56 · 150 阅读 · 0 评论 -
剑指offer07-旋转数组的最小数字
1. 旋转数组的最小数字1.1 题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0题目链接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-z原创 2021-03-23 11:46:21 · 125 阅读 · 0 评论 -
剑指offer06-用两个栈实现队列
1. 用两个栈实现队列1.1 题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHea原创 2021-03-19 21:50:38 · 83 阅读 · 0 评论 -
剑指offer05-替换空格
1. 替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”题目链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof2 题目分析2.1 利用Java中replaceAll进行替换2.2 代码实现class Solution { public String replaceSpace(String s) {原创 2021-03-18 23:27:20 · 109 阅读 · 0 评论 -
剑指offer04-二维数组中的查找
1. 二维数组中的查找1.1 题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 targe原创 2021-03-18 00:58:17 · 128 阅读 · 0 评论 -
剑指offer03-变态跳台阶
1. 变态跳台阶1.1 题目一只青蛙一次可以跳上1级台阶,也可以跳上2级…它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。1.2 题目分析1.2.1 找规律分析如图所示:当 n = 1 时 number = 1;当 n = 2 时 number = 2;当 n = 3 时 number = 4;当 n = 4 时 number = 8;当 n = n时 f(n) = 2^(n-1)f(1) = 1;1.2.2 从尾分析如图所示:当f(n)时,f(n) =原创 2021-03-15 23:49:51 · 109 阅读 · 0 评论 -
剑指offer02-青蛙跳台阶
1. 青蛙跳台阶1.1 题目一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。题目链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof1.2 题目分析1.2.1 找规律分析如图所示:当 n = 1 时 number = 1;当 n = 2 时 number原创 2021-03-15 22:46:18 · 135 阅读 · 0 评论 -
剑指offer01-斐波那契数列
1. 斐波那契数列1.1 什么是斐波那契数列0 1 1 2 3 5 8 13n = 0, num = 0n = 1, num = 1n = 2, num = 1…当 n = k(n>1),f(k) = f(k-1) + f(k-2)当 n = 1, f(1) = 1当 n = 0, f(0) = 01.2 题目写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出原创 2021-03-14 16:33:26 · 121 阅读 · 1 评论