09 2020 档案
摘要:一.斐波那契数列 写入一个函数,输入一个数字n,求斐波那契数列的第n项,该数列的定义如下: F(0)=0,F(1)=1 F(N)=F(N-1)+F(N+2),其中N>1 斐波那契数列由0和1开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需取模1e9+7 解决方案: 1.递归法(分治) 原理
阅读全文
摘要:一.二叉树的镜像 请完成一个函数,输入一个二叉树,要输出它的镜像 例如: 解决方案:通过分析上面的例子我们可以得到二叉树的镜像其实就是每个节点的左右节点交换位置后的二叉树,所以我们可以遍历二叉树的同时交换左右子节点的位置即可 代码: TreeNode test(TreeNode root){ if(
阅读全文
摘要:一.合并两个排序的链表 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的 解决方案:新建两个节点,一个用于记录开始位置,一个用于移动排序 ListNode help=new ListNode();//新建节点,用于移动排序,相当于一个中间变量 ListNode end=hel
阅读全文
摘要:1.替换空格 实现一个函数,把字符串s中的每一个空格替换成“%20” 解法:调用String中的replace和replaceAll方法都可以完成 s=s.replace(" ","%20");//replace方法的两个输入参数都是字符串 s=s.replaceAll("\\s","%20");/
阅读全文
摘要:一.找出数组中重复的数 在长度为n的数组nums里面的所有数字都在0~n-1的范围内,数组中某些数字是重复的,但不知道是哪几个,也不知道重复了几次,请找出数组中任意重复的数字 解法: 1.暴力解法:循环遍历逐个比较,我们可以利用两次循环找出一对相等的数返回 //双层循环遍历 for(int j=0;
阅读全文
摘要:一.解决方法: 在相关的书籍中描述了一个递归的解决方法,其算法思想如下: 1.从前序序列中第一个元素开始,取出一个元素,索引后移一位(preIndex+1) 2.根据选择到的数值创建一个树节点newNode 3.然后查找所选的数值在中序序列中的索引,用inIndex存储 4.递归调用此方法为inIn
阅读全文