算法题
倔强的瓶盖儿
要么做最好的一个,要么做最努力的一个。----倔强的瓶盖儿
展开
-
JZ10 矩形覆盖 java
JZ10 矩形覆盖 java一、题目1.思路:2.代码:一、题目1.思路:(1) 如果target1=1,则只能覆盖一个如果target2=2,则只能覆盖两个如果target3=3,则target3=target2+target1=3,能覆盖三个如果target4=4,则target4=target3+target2=5,能覆盖五个…以此类推,targetN=n,则能覆盖(targetN-1+targetN-2)个所以通过迭代,从target==3开始进行迭代,直到迭代到目标值(原创 2021-09-22 17:33:48 · 154 阅读 · 0 评论 -
JZ8 跳台阶 java
JZ8 跳台阶 java一、题目1.思路:2.代码:一、题目1.思路:(1) 方法一:动态规划:由题知:第一个台阶:1种方法第二个台阶:2种方法第三个台阶:第二个台阶+第一个台阶方法总和=1+2=3第四个台阶:第三个台阶+第二个台阶方法总和=3+2=5第五个台阶:第四个台阶+第三个台阶方法总和=5+3=8…第target台阶:第target-1个台阶+第target-2个台阶方法总和所以只要通过循环,每个台阶跳的方法都是前两个台阶的总和,只要加到target就可以得到了注原创 2021-09-22 14:05:13 · 168 阅读 · 0 评论 -
JZ7 斐波那契数列 java
JZ7 斐波那契数列 java一、题目1.思路:2.代码:一、题目1.思路:方法一:(1)由题知,可以定义一个长度为40的数组作为存储值,其中当n=0时默认为sum[0]=0,n=1时默认sum[1]=1;(2)通过for循环进行累加知道加到i=n,循环结束。输出sum[n];方法二:(1)定义三个变量,a,b,sum,其中,a为第一个值,b为第二个值,如果n=0,则输出0,如果n=1,则输出1,如果n>=2,经过每次循环得到前两个数和最终输出sum;2.代码:代码如下:publ原创 2021-09-20 11:41:27 · 144 阅读 · 0 评论 -
JZ6 旋转数组的最小数字 java
JZ6 旋转数组的最小数字 java一、题目1.思路:2.代码:一、题目1.思路:(1)定义两个指针,一个指向最左面,一个指向最右面,用来进行比较,如图:(2)如果array[left]<array[right],说明array[left]为最小值直接返回array[left]找到中间值作为比较(3)如果中间值大于最右面的(array[right]),则说明最小值在中间值的右面所以将left变为mid+1,如图:(4)如果中间值小于最后面的(array[right]),则说明最原创 2021-09-20 10:55:40 · 134 阅读 · 0 评论 -
JZ4 重建二叉树 java
JZ4 重建二叉树 java一、题目1.思路:2.代码:一、题目1.思路:首先要了解前序遍历和中序遍历:前序遍历:中(根节点)左(左节点)右(右节点)中序遍历:左(左节点)中(根节点)右(右节点)由例子可知:前序遍历:1、2、4、5、3中序遍历:4、2、5、1、3所以,通过前序遍历我们能知道,“1”为根节点,通过找到根节点再去中序遍历中找到“1”,那么“1”的左面数字则为根节点的左子树,右面的数字则为根节点的右子树。上面了解了,回归本题,就轻而易举了!(1)首先判断两个数组的前序原创 2021-09-20 00:08:40 · 184 阅读 · 0 评论 -
JZ3 从尾到头打印链表 java
JZ3 从尾到头打印链表一、题目1.思路:2.代码:一、题目1.思路:(1)先创建一个节点作为指针,首先指向链表头节点,进行while循环当节点不为空则将该节点添加到list集合中。(2)唯一的亮点在于这个add方法,它是可以进行插入,每次添加时都是在索引为0的地方添加,所以在循环完之后,这个list便为一个倒叙了2.代码:代码如下:import java.util.*;public class Solution { public ArrayList<Integer>原创 2021-09-19 15:44:16 · 100 阅读 · 0 评论 -
JZ1 二维数组中的查找 Java
JZ1 二维数组中的查找前言一、pandas是什么?一、题目1.思路:2.代码:2.读入数据总结前言一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。一、题目1.思路:(1)首先判断数组是否符合,从行和列看,如果不符合则返回false。(2)首先将左下角的数作为第一个和target比较一点点向右上角移动,原因是:由题知在一行中逐渐递增,在一列中之间递增,所以当进行比较时,有三种情况: &n原创 2021-09-17 20:42:10 · 60 阅读 · 0 评论 -
在二叉树中找到两个节点的最近公共祖先
在二叉树中找到两个节点的最近公共祖先一、描述一、解题步骤一、描述给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。注:本题保证二叉树中每个节点的val值均不相同。示例1输入:[3,5,1,6,2,0,8,#,#,7,4],5,1返回值:3一、解题步骤(1)首先判断树的根节点的val是否为空,如果为空返回错误信息(2)其次判断根节点的val是否等于题中的o1或者o2,是则返回root(3)如果以上都不符合,原创 2021-09-04 22:54:40 · 430 阅读 · 0 评论 -
合并两个排序的链表
合并两个排序的链表代码如下(示例):/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { //创建新链表用来存储比较后的节点原创 2021-09-03 18:03:11 · 55 阅读 · 0 评论 -
面试题----栈和队列
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言根据上一文章的集合简要的提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤原创 2021-06-26 17:14:20 · 151 阅读 · 0 评论 -
求二叉树的层序遍历
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-09-03 16:17:00 · 208 阅读 · 0 评论