随笔分类 -  算法

牛客网算法
摘要:JZ45 把数组排成最小的数 描述 输入一个非负整数数组numbers,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 例如输入数组[3,32,321],则打印出这三个数字能排成的最小数字为321323。 1.输出结果可能非常大,所以你需要返回一个字符串而不是整数 2.拼接 阅读全文
posted @ 2022-12-12 14:26 loongnuts 阅读(85) 评论(0) 推荐(0) 编辑
摘要:JZ43 整数中1出现的次数(从1到n整数中1出现的次数) 描述 输入一个整数 n ,求 1~n 这 n 个整数的十进制表示中 1 出现的次数 例如, 1~13 中包含 1 的数字有 1 、 10 、 11 、 12 、 13 因此共出现 6 次 思路:暴力统计法 遍历1到n的每个数字,然后对每个数 阅读全文
posted @ 2022-12-11 10:52 loongnuts 阅读(136) 评论(0) 推荐(0) 编辑
摘要:JZ38 字符串的排列 描述 输入一个长度为 n 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。 例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。 题目主要信息 给定一个长度为n的字符串,求其中所有字符 阅读全文
posted @ 2022-12-09 13:47 loongnuts 阅读(92) 评论(0) 推荐(0) 编辑
摘要:JZ36 二叉搜索树与双向链表 描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表 注意: 1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继 2.返回链表中的第一个节点的指针 3.函数返回的TreeNo 阅读全文
posted @ 2022-12-08 11:21 loongnuts 阅读(59) 评论(0) 推荐(0) 编辑
摘要:JZ34 二叉树中和为某一值的路径(二) 描述 输入一颗二叉树的根节点root和一个整数expectNumber,找出二叉树中结点值的和为expectNumber的所有路径。 1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点 2.叶子节点是指没有子节点的节点 3.路径只能从父节点到子 阅读全文
posted @ 2022-12-06 14:27 loongnuts 阅读(44) 评论(0) 推荐(0) 编辑
摘要:JZ33 二叉搜索树的后序遍历序列 描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回 true ,否则返回 false 。假设输入的数组的任意两个数字都互不相同。 提示: 1.二叉搜索树是指父亲节点大于左子树中的全部节点,但是小于右子树中的全部节点的树。 2.该题我 阅读全文
posted @ 2022-12-05 11:04 loongnuts 阅读(70) 评论(0) 推荐(0) 编辑
摘要:JZ31 栈的压入、弹出序列 描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序 阅读全文
posted @ 2022-12-04 10:36 loongnuts 阅读(77) 评论(0) 推荐(0) 编辑
摘要:JZ26 树的子结构 描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下,可以看出B是A的子结构 题解1 深度遍历 思路 既然是要找到A树中是否有B树这样子树,如 阅读全文
posted @ 2022-12-03 10:45 loongnuts 阅读(66) 评论(0) 推荐(0) 编辑
摘要:JZ23 链表中环的入口结点 描述 给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。 解析 环很大 在前面我们提到过快慢指针,判断是否有环。如果有环,在来找环的入口。如果没环直接返回null即可,我们假设是有环的,那么会有两种情况,一种是O型,一种是6型,其实原理都 阅读全文
posted @ 2022-12-02 10:31 loongnuts 阅读(56) 评论(0) 推荐(0) 编辑
摘要:JZ21 调整数组顺序使奇数位于偶数前面(一) 描述 输入一个长度为 n 整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路: 既然要把所有的奇数放在数组前面,所有的偶数放在数组后面, 阅读全文
posted @ 2022-12-01 09:53 loongnuts 阅读(74) 评论(0) 推荐(0) 编辑
摘要:JZ16 数值的整数次方 描述 实现函数 double Power(double base, int exponent),求base的exponent次方。 注意: 1.保证base和exponent不同时为0。 2.不得使用库函数,同时不需要考虑大数问题 3.有特殊判题,不用考虑小数点后面0的位数 阅读全文
posted @ 2022-11-30 09:45 loongnuts 阅读(309) 评论(0) 推荐(0) 编辑
摘要:JZ12 矩阵中的路径 描述 请设计一个函数,用来判断在一个n乘m的矩阵中是否存在一条包含某长度为len的字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 思路 我们看到他 阅读全文
posted @ 2022-11-28 14:05 loongnuts 阅读(73) 评论(0) 推荐(0) 编辑
摘要:JZ8二叉树的下一个结点 描述 给定一个二叉树其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的next指针。 示例: 输入:{8,6,10,5,7,9,11},8 返回:9 解析:这个组装传入的子树根节点,其实就是整颗树,中序遍历{5, 阅读全文
posted @ 2022-11-27 10:19 loongnuts 阅读(49) 评论(0) 推荐(0) 编辑
摘要:JZ7重建二叉树 描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6} 提示: 1.vin.length == pre.length 2.pre 和 vin 阅读全文
posted @ 2022-11-26 10:23 loongnuts 阅读(49) 评论(0) 推荐(0) 编辑
摘要:JZ4二维数组中的查找 描述 在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 [[1,2,8,9], [2,4,9,12], [4,7,10,1 阅读全文
posted @ 2022-11-25 09:45 loongnuts 阅读(103) 评论(0) 推荐(0) 编辑
摘要:JZ82 二叉树中和为某一值的路径(一) 代码 package esay.JZ82二叉树中和为某一值的路径1; import java.util.*; class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; 阅读全文
posted @ 2022-11-22 09:01 loongnuts 阅读(71) 评论(0) 推荐(0) 编辑
摘要:JZ81调整数组顺序使奇数位于偶数前面(二) 描述 输入一个长度为 n 整数数组,数组里面可能含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,对奇数和奇数,偶数和偶数之间的相对位置不做要求,但是时间复杂度和空间复杂度必须如下要求。 阅读全文
posted @ 2022-11-21 09:39 loongnuts 阅读(77) 评论(0) 推荐(0) 编辑
摘要:JZ79 判断是不是平衡二叉树 描述 输入一棵节点数为 n 二叉树,判断该二叉树是否是平衡二叉树。 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树 平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个 阅读全文
posted @ 2022-11-20 10:03 loongnuts 阅读(87) 评论(0) 推荐(1) 编辑
摘要:JZ71跳台阶扩展问题 描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。 数据范围:1 \le n \le 201≤n≤20 进阶:空间复杂度 O(1)O(1) , 时间复杂度 O(1)O(1) 方法1 动态规划 思路 阅读全文
posted @ 2022-11-18 08:43 loongnuts 阅读(68) 评论(0) 推荐(0) 编辑
摘要:JZ69 跳台阶 描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 数据范围:1 \leq n \leq 401≤n≤40 要求:时间复杂度:O(n)O(n) ,空间复杂度: O(1)O(1) 方法1 递归 思路 题目分 阅读全文
posted @ 2022-11-17 09:24 loongnuts 阅读(195) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示