随笔分类 - 牛客编程题
摘要:[编程题] JZ57 二叉树的下一个节点 题目描述 参考 参考讲解 思路 主要根据中序遍历二叉树的特点: 如果此节点有右子树,就循环找出该右子树的最深处的左子树。 如果此节点无右子树,则返回的就应该是其父亲节点(这里存在一直往上返回其父节点。) 代码 /* public class TreeLink
阅读全文
摘要:[编程题] JZ4 重建二叉树 参考 参考讲解 思路 我们根据前序遍历的首节点就指定二叉树的根,我们在中序遍历中查找这个根,就可以把中序遍历分为两部分,即左子树和右子树。那么,我们知道了左子树的长度,我们也可以在前序遍历中知道前序遍历中左子树的数组范围。此时: 我们知道了前序遍历中的左子树的子数组,
阅读全文
摘要:[编程题] lc: 面试题 10.09. 排序矩阵查找 时间:2020.07.23 题目描述 给定M×N矩阵,每一行、每一列都按升序排列,请编写代码找出某元素。 输入输出案例 思路 从矩阵的右上角的元素开始找,右上角的元素与target比较: 如果右上角的元素和target相等,返回true 如果右
阅读全文
摘要:单链表快排与数组快排 时间:2020.07.23 一、传统快排思想 思想简介: 传统的快速排序算法使用到递归 快排是对冒泡排序算法的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据小,然后再按照此方法对两部分数据使用**递归**进行如上
阅读全文
摘要:[编程题] nk:链表中的入环节点 题目描述 输入输出例子 无 思路 方法1、借助哈希表 思想:我们通过一个dummyNode不断遍历每一个节点,当我们每次遍历到这个当前节点的时候就看他在不在哈希表中,不在的话加入进去;在的时候就恰好这个节点就是入环节点。 时间复杂度:O(n) Java代码 imp
阅读全文
摘要:[编程题] lc:剑指 Offer 14- I. 剪绳子 题目描述 输入输出例子 思路 方法1、从数据公式上探索 Java代码 class Solution { public int cuttingRope(int n) { //情况1:对于两种极端情况先讨论 if(n==1 || n==2){re
阅读全文
摘要:lc 剑指 Offer 09. 用两个栈实现队列 题目描述 输入输出描述 思路 1、使用传统的栈Stack即可完成 2、使用Deque数据结构堵住一端(堵住首) (addLast(),removeLast) 或者堵住尾(addFirst();removeFirst) 3、使用Deque数据结构堵住一
阅读全文
摘要:[编程题] 牛客输入输出练习1-计算a+b(多组输入)] 1、牛客输入输出练习1-计算a+b(多组输入) 题目描述 计算多组输入的a+b 示例 输入输出描述: 输入描述: 输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。 输出描述: 输出a+b的结果 例如2: 输入
阅读全文
摘要:牛客输入输出练习1-计算a+b(多组输入) 题目描述 计算多组输入的a+b 示例 输入输出描述: 输入描述: 输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。 输出描述: 输出a+b的结果 例如2: 输入: 1 5 10 20 输出: 6 30 Java代码 imp
阅读全文
摘要:找出前边比自己高的人的身高--字节笔试题 题目描述 存在一个多组的输入,第一行输入是有N个同学,接下来的一行分别是N个同学的身高。某同学X前的第一个比他高的同学,记录下其身高值。返回是一行每个同学对应找到的其前边的第一个比自己高的身高值。 示例 例如1: 输入: 5 1 2 3 4 5 输出: -1
阅读全文
摘要:字符串成环判断是否为回文字符串 题目描述 输入一个字符串,将该字符串首尾成环,判断能否从中某位置切分,然后产生回文字符串,是则输出Yes,否则输出No 示例 例如1: 输入(字符串) aab 成环后从a a 中切分,得到回文字符串: aba 输出:Yes Java代码 package ncompan
阅读全文
摘要:打印出失序的线程ID 题目描述 输入一个正整数n.表示接下来有n行数字,每行一个数字(不重复,可能无序),表示线程id,输出未出现的失序的线程ID n的大小是小于等于2的32次方 示例 例如1: 输入(输入的线程ID不一定有序) 5 2 3 4 5 6 输出: 1 例如2: 输入: 4 1 2 3
阅读全文
摘要:从尾到头打印链表 题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 思路 把栈从头到尾的遍历,在遍历的时候放入栈中,栈使用(LinkedList结构模拟),然后在存完后把栈中的一个个元素pop出放入list中。 Java代码 import java.util.*; /** *
阅读全文
摘要:数组中的重复数字 题目描述 Java代码 、import java.util.*; public class Solution { // Parameters: // numbers: an array of integers // length: the length of array numbe
阅读全文
摘要:枪打出头鸟 题目描述 实例 Java代码 import java.util.*; public class Solution { /** * * @param n int整型 n个人 * @param a int整型一维数组 ai代表第i个人的高度 * @return long长整型 */ publ
阅读全文
摘要:回文数问题 题目描述 输入输出例如: 样例 方法1:对子串的首位比较,向中间进行 思想 我们每次拿出一个子串,然后一个头指针和一个尾指针分别指向前后,然后依次比较最后和第一个值是否是相等的,如果是相等,再比较第2个数和倒数第2个数是否相等,相等就依次向前推进,直到head>tail的时候停止。如果在
阅读全文
摘要:合并两个有序链表 题目描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 思考分析(递归思想) 初始化:定义cur指向新链表的头结点 操作: 如果l1指向的结点值小于等于l2指向的结点值,则将l1指向的结点值链接到cur的next指针,然后l1指向下一个结点
阅读全文
摘要:链表反转 题目描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 思考分析(递归思想) 我们可以借助栈结果,把链表存入栈中的时候,再次拿出来的时候就是逆序的了。但是要注意其中关键一步,取出的时候要消除每个节点的next域的指向(正向存入栈中的每个节点的next域的指向是没
阅读全文
摘要:二叉树求深度 题目描述 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 来源:力扣(LeetCode) 链接:https://leetcode-cn
阅读全文
摘要:把二叉树打印成多行 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 思考分析(类似二叉树的程序遍历) 参考:二叉树层序遍历 要把二叉树按照每行打印出来,我们可以借助一个队列来处理,一开始把root节点放入到对列中,每次处理,把队列中的元素取出,放入到一个行中(list),
阅读全文

浙公网安备 33010602011771号