1 | 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 |
1 | /** |
1 | 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 |
1 | /** |
难度简单294
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2]
为 [1,2,3,4,5]
的一个旋转,该数组的最小值为1。
示例 1:
1 | 输入:[3,4,5,1,2] |
示例 2:
1 | 输入:[2,2,2,0,1] |
注意:本题与主站 154 题相同:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/
通过次数176,968
提交次数359,125
1 | class Solution { |
1 | class Solution { |
1 | class Solution{ |
1 |
|
1 | 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 |
假设有10个台阶需要跳,那么到达第10阶台阶的步骤只有两种即step(9)和step(8)两种,两种方法相互独立,即到达第10阶台阶的路线数量等于到达第9阶台阶的数量加上到达第8阶台阶的数量,即step[10]=step[9]+step[8]
1 | step[N]=step[N-1]+step[N-2],其中(N>=3) |
计算时可采用自底向上的方式,减少计算量,节省内存
1 |
|
1 | 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) |
1 | class CQueue { |
删除元素对应方法 deleteHead
如果 stack2 为空,则将 stack1 里的所有元素弹出插入到 stack2 里
如果 stack2 仍为空,则返回 -1,否则从 stack2 弹出一个元素并返回
1 | static class CQueue { |
参考文献
1 | 作者:LeetCode-Solution |
1 | 输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) |
1 | /** |
1 | class Solution { |
参考文献
1 | 作者:xmblgt |
1 | 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 |
1 | public static double myPow(double x, int n) { |
1 | 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 |
对于一根长度为n的绳子,当n为1和2时,结果只能是1,当n大于2时,有两种处理方式:
1 | class Solution { |
i
乘以剩余部分的子问题dp[i-j]
的结果j*(i-j)
1 | class Solution { |
参考文献
1 | 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子? |
1 | class Solution { |
1 | class Solution { |
1 | class Solution { |
参考文献
1 | 作者:LeetCode-Solution |
难度中等423
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
例如,给出
1 | 前序遍历 preorder = [3,9,20,15,7] |
返回如下的二叉树:
1 | 3 |
限制:
1 | 0 <= 节点个数 <= 5000 |
注意:本题与主站 105 题重复:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/
每次递归中从前序遍历中选择第一个元素作为根节点,递归地生成左子树和右子树。在前序遍历中要想获取左子树的节点数目和右子树的节点的数目,需要借助中序遍历的根的index计算,计算完成后,即可正确获得左子树的根的位置和右子树的根的位置,从而可以递归的进行生成其左右子树。
1 | /** |
1 | /** |
参考文献
1 | 作者:LeetCode-Solution |
1 | 给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。 |
1 | class Solution { |
1 | class Solution { |
参考文献
1 | 作者:LeetCode-Solution |
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true