
题解
杨儿的聪明难以想象
冲冲冲!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode---剑指 Offer 10- II. 青蛙跳台阶问题
剑指 Offer 10- II. 青蛙跳台阶问题1.题目链接2.题目描述3.题解 1.题目链接 剑指 Offer 10- II. 青蛙跳台阶问题 2.题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 示例 3: 输入:n = 0 输出:1 3.题解 递归法 //原创 2021-09-19 17:46:35 · 373 阅读 · 0 评论 -
牛客---两数之和
1.链接 牛客—两数之和 2.题目描述 给出一个整数数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数, 你给出的函数twoSum 需要返回这两个数字的下标(index1,index2)组成的数组,需要满足 index1 小于index2.。注意:下标是从1开始的 保证给出的数组中只存在唯一解。 例如: 给出的数组为 [20, 70, 110, 150] , 目标值为90 返回一个数组 [1,2] ,因为 numbers _1+numbers _2=20+70=90n原创 2021-09-15 12:39:59 · 332 阅读 · 0 评论 -
牛客网---倒置字符串
牛客网---倒置字符串1.链接2.题目描述3.题解 1.链接 牛客网—倒置字符串 2.题目描述 将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I 输入描述: 每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100 输出描述: 依次输出倒置之后的字符串,以空格分割 示例1 输入 I like beijing. 输出 beijing. like I 3.题解 import java.util.Arra原创 2021-09-14 18:39:13 · 147 阅读 · 0 评论 -
牛客网----排序子序列
1.链接:https://www.nowcoder.com/questionTerminal/2d3f6ddd82da445d804c95db22dcc471 2.题目描述 牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列. 如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出原创 2021-09-14 14:51:16 · 147 阅读 · 0 评论 -
删除公共字符
1.题目链接 删除公共字符 2.题解 import java.util.Arrays; import java.util.HashMap; import java.util.Scanner; /** * User:yang */ public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str原创 2021-09-12 17:50:59 · 142 阅读 · 0 评论 -
牛客-----组队竞赛
1.题目链接 牛客-----组队竞赛 2.题解 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextInt()) { int n = sca原创 2021-09-12 17:33:22 · 171 阅读 · 0 评论 -
leetCode---合并两个有序链表
1.题目链接 leetCode—合并两个有序链表 2.题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 3.题解 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val原创 2021-09-10 23:58:17 · 125 阅读 · 0 评论 -
牛客网---链表中倒数第k个结点
1.题目链接 链表中倒数第k个结点 2.题目描述 输入一个链表,输出该链表中倒数第k个结点。 3.题解 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode FindKthToTail(ListNode head,int k)原创 2021-09-10 23:07:13 · 175 阅读 · 0 评论 -
LeetCode---链表的中间结点
链表的中间结点1.题目链接2.题目描述3.题解 1.题目链接 链表的中间结点 2.题目描述 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 3.题解 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int v原创 2021-09-10 20:01:17 · 169 阅读 · 0 评论 -
leetcode--反转链表
反转链表1.链接2.题目描述3.题解 1.链接 反转链表 2.题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 3.题解 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } *原创 2021-09-10 19:25:49 · 183 阅读 · 0 评论 -
LeetCode----移除链表元素
移除链表元素1.题目链接2.题目描述3.题解 1.题目链接 移除链表元素 2.题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 3.题解 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} *原创 2021-09-10 17:38:16 · 114 阅读 · 0 评论 -
Fibonacci数列
1.题目链接 Fibonacci数列 2.题目描述 Fibonacci数列是这样定义的: F[0] = 0 F[1] = 1 for each i ≥ 2: F[i] = F[i-1] + F[i-2] 因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数原创 2021-08-20 13:33:52 · 183 阅读 · 0 评论 -
牛客网--下厨房
1.题目链接 下厨房 2.题目描述 牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。 输入描述: 每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。 输出描述: 输出一行一个数字表示完成所有料理需要多少种不同的材料。 示例1 输入 BUTTER FLOUR HONEY FLOUR EGG 输出 4 3.题解 impo原创 2021-08-20 11:16:44 · 126 阅读 · 0 评论 -
eetcode---复制带随机指针的链表
复制带随机指针的链表1.题目链接2.题目描述3.题解 1.题目链接 复制带随机指针的链表 2.题目描述 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点原创 2021-08-15 22:47:42 · 231 阅读 · 0 评论 -
合并两个有序数组
合并两个有序数组1.题目链接2.题目描述3.题解 1.题目链接 合并两个有序数组 2.题目描述 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。 示例 1: 输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n原创 2021-08-13 16:10:32 · 79 阅读 · 0 评论 -
删除有序数组中的重复项
删除有序数组中的重复项1.题目链接2.题目描述3.题解 1.题目链接 删除有序数组中的重复项 2.题目描述 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 3.题解 class Solution { public int removeDuplicates(int[] nums) { if(nums==null||nums.原创 2021-08-13 11:09:28 · 79 阅读 · 0 评论 -
删除重复字符
删除重复字符1.题目链接2.题目描述3.题解 1.题目链接 删除重复字符 2.题目描述 描述 牛牛有一个由小写字母组成的字符串s,在s中可能有一些字母重复出现。比如在"banana"中,字母’a’和字母’n’分别出现了三次和两次。 但是牛牛不喜欢重复。对于同一个字母,他只想保留第一次出现并删除掉后面出现的字母。请帮助牛牛完成对s的操作。 输入描述: 输入包括一个字符串s,s的长度length(1 ≤ length ≤ 1000),s中的每个字符都是小写的英文字母(‘a’ - ‘z’) 输出描述: 输出一个字原创 2021-08-12 23:07:53 · 184 阅读 · 0 评论 -
二叉树的后序遍历
这里写目录标题1.题目链接2.题目描述3.题解3.1递归3.2非递归 1.题目链接 二叉树的后序遍历 2.题目描述 3.题解 3.1递归 //递归 class Solution { public List<Integer> postorderTraversal(TreeNode root) { List<Integer> list=new ArrayList<>(); if (root == null) return list;原创 2021-08-10 16:26:50 · 86 阅读 · 0 评论 -
二叉树的中序遍历
二叉树的中序遍历1.题目链接2.题目描述3.题解3.1递归题解3.2非递归题解 1.题目链接 二叉树的中序遍历 2.题目描述 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 3.题解 3.1递归题解 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {原创 2021-08-10 13:53:32 · 94 阅读 · 0 评论 -
二叉树的前序遍历
二叉树的前序遍历1.题目链接2.题目描述.3. 题解3.1递归3.2非递归 1.题目链接 二叉树的前序遍历 2.题目描述. 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 3. 题解 3.1递归 // 递归实现 class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> list=new ArrayList<>();原创 2021-08-10 10:51:44 · 91 阅读 · 0 评论 -
根据一棵树的中序遍历与后序遍历构造二叉树
根据一棵树的中序遍历与后序遍历构造二叉树1.题目链接2.题目描述3.题解 1.题目链接 根据一棵树的中序遍历与后序遍历构造二叉树 2.题目描述 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 3 / 9 20 / 15 7 来源:力扣(LeetCode) 链接:https://leetcode-cn.com原创 2021-08-08 23:12:54 · 208 阅读 · 0 评论 -
leetcode------从前序与中序遍历序列构造二叉树
leetcode------从前序与中序遍历序列构造二叉树1.题目链接2.题目描述3.题目思路4.题解 1.题目链接 从前序与中序遍历序列构造二叉树 2.题目描述 给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。 示例 1: Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7] Output: [3,9,20,null,null,15,7] 示例 2: Input: preorder = [-1原创 2021-08-08 22:21:33 · 104 阅读 · 0 评论 -
剑指offer -二叉搜索树与双向链表
1.题目链接 二叉搜索树与双向链表 2.题目描述 描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。如下图所示 注意: 1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继 2.返回链表中的第一个节点的指针 3.函数返回的TreeNode,有左右指针,其实可以看成一个双向链表的数据结构 4.你不用输出或者处理,示例中输出里面的英文,比如"From left to right are:"这样的,程序会根据你的返回原创 2021-08-07 19:19:25 · 129 阅读 · 0 评论 -
leetcode之二叉树的最近公共祖先
二叉树的最近公共祖先1.题目链接2.题目描述3.思路4.题解5.大家记得每天开心快乐子 1.题目链接 二叉树的最近公共祖先题目链接 2.题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例 1: 输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1原创 2021-08-06 22:59:40 · 266 阅读 · 2 评论 -
LeetCode杨辉三角
杨辉三角 1.首先,将其写为二维数组 第三行中的2:[i,j]=[i-1,j]+[i-1][j-1]原创 2021-06-23 19:30:15 · 131 阅读 · 0 评论