算法和数据结构
guozhenqiang1992
这个作者很懒,什么都没留下…
展开
-
缺失的第一个正整数
描述:给定一个无重复元素的整数数组nums,请你找出其中没有出现的最小的正整数进阶:你能用O(n)时间复杂度并且O(1)的空间复杂度的方法实现吗示例1输入:[1,0,2]返回值:3示例2输入:[-2,3,4,1,5]返回值:2示例3输入:[4,5,6,8,9]返回值:1public class T11 { public static void main(String args[]){ int[] nums = {3,2,1}; System.原创 2021-10-06 18:30:47 · 279 阅读 · 0 评论 -
栈的压入和弹出序列
描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)import java.util.ArrayList;import java.util.*;public class Solution { public boolean IsPopOrde原创 2021-09-26 23:40:27 · 124 阅读 · 0 评论 -
旋转数组的最小数字
描述有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。有一种特殊的case需要注意:[1, 0, 1, 1, 1]和[1, 1, 1, 0, 1]public class Solution { public int minNumberInRotateArray(int [] array) {原创 2021-09-26 22:51:14 · 134 阅读 · 0 评论 -
重建二叉树
描述给定节点数为 n 二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。提示:1.vin.length == pre.length2.pre 和 vin 均无重复元素3.vin出现的元素均出现在 pre里4.只需要返回根结点,系统会自动输出整颗树做答案对比数据范围:,节点的值要求:空间复杂度O(n) ,时间复杂度O(n)public class S原创 2021-09-26 21:45:47 · 110 阅读 · 0 评论 -
按照给定值划分链表
描述:给出一个长度为 nn 的单链表和一个值 xx ,单链表的每一个值为 list[i]list[i],请返回一个链表的头结点,要求新链表中小于 xx 的节点全部在大于等于 xx 的节点左侧,并且两个部分之内的节点之间与原来的链表要保持相对顺序不变。例如:给出 1→4→3→2→5→2 和 x=3返回 1→2→2→4→3→5复杂度要求:时间 O(n)空间 O(1)import java.util.*;/* * public class ListNode { * int val;原创 2021-09-23 23:34:27 · 150 阅读 · 0 评论 -
数组中未出现的最小正整数
描述:给定一个无序数组arr,找到数组中未出现的最小正整数例如:arr = [-1, 2, 3, 4]。返回1arr = [1, 2, 3, 4]。返回5[要求]时间复杂度为O(n),空间复杂度为O(1)public class T2 { public static void main(String[] args) {// int[] arr = {1, 2, 3, 4}; int[] arr = {-1, 2, 3, 4}; System原创 2021-09-21 17:32:13 · 140 阅读 · 0 评论 -
集合的所有子集
描述:现在有一个没有重复元素的整数集合S,求S的所有子集注意:1.你给出的子集中的元素必须按升序排列2.给出的解集中不能出现重复的元素示例1输入:[1,2,3]返回值:[[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]public class T1 { public static void main(String[] args) { int[] arr = {4, 1, 2, 3}; ArrayList<Arra原创 2021-09-21 16:01:35 · 179 阅读 · 0 评论 -
合并重叠区间
描述:给出一组区间,请合并所有重叠的区间,请保证合并后的区间按区间起点升序排列。示例1输入:[[10,30],[20,60],[80,100],[150,180]]返回值:[[10,60],[80,100],[150,180]]public class Solution { public ArrayList<Interval> merge(ArrayList<Interval> intervals) { ArrayList<Interval>原创 2021-09-15 16:08:55 · 703 阅读 · 0 评论 -
最长递增子序列
描述:给定数组arr,设长度为n,输出arr的最长递增子序列示例1输入:[2,1,5,3,6,4,8,9,7]返回值:[1,3,4,8,9]示例2输入:[1,2,8,6,4]返回值:[1,2,4]public class T8 { public static void main(String args[]){ int[] arr = {2,1,5,3,6,4,8,9,7};// System.out.println(fun(arr));原创 2021-09-15 15:15:28 · 87 阅读 · 0 评论 -
二叉树根节点到叶子节点的所有路径和
给定一个仅包含数字0−9 的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。例如根节点到叶子节点的一条路径是1→2→3,那么这条路径就用123 来代替。找出根节点到叶子节点的所有路径表示的数字之和例如:这颗二叉树一共有两条路径,根节点到叶子节点的路径1→2 用数字12 代替根节点到叶子节点的路径1→3 用数字13 代替所以答案为12+13=25import java.util.*;/* * public class TreeNode { * int val = 0;原创 2021-09-11 19:10:22 · 601 阅读 · 0 评论 -
删除有序链表中重复的元素
给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。例如:给出的链表为1→2→3→3→4→4→5, 返回1→2→5.给出的链表为1→1→1→2→3, 返回2→3.class ListNode { int val; ListNode next = null; public ListNode(int val, ListNode next){ this.val = val; this.next = next;原创 2021-09-11 17:43:25 · 337 阅读 · 0 评论 -
数组循环移位问题
数组循环移位问题原创 2016-07-01 17:35:39 · 927 阅读 · 0 评论 -
最大值与最小值问题
最大值与最小值问题原创 2016-07-01 12:07:54 · 1995 阅读 · 0 评论 -
快乐数问题
快乐数问题原创 2016-07-15 09:10:09 · 1892 阅读 · 0 评论 -
常见的缓存算法设计策略
常见的缓存算法设计策略原创 2016-06-27 22:00:40 · 387 阅读 · 0 评论 -
数组元素前移问题(今日头条笔试题)
数组元素前移问题(今日头条笔试题)原创 2016-05-08 17:48:15 · 2215 阅读 · 0 评论 -
给定一个整数数组,找出两个下标,要求后面下标所指的数减去前面下标所指的数之差最大
给定一个整数数组,找出两个下标,要求后面下标所指的数减去前面下标所指的数之差最大原创 2017-05-23 18:30:52 · 2121 阅读 · 0 评论 -
单链表的节点内数据值的删除问题(携程网笔试题)
单链表的节点内数据值的删除问题(携程网笔试题)原创 2016-05-08 16:50:26 · 1092 阅读 · 0 评论 -
常见排序算法小结
常见排序算法小结转载 2016-08-04 13:41:35 · 334 阅读 · 0 评论 -
打印蛇形矩阵
打印蛇形矩阵原创 2016-05-11 17:03:27 · 1113 阅读 · 0 评论 -
从右上角到左下角沿反对角线打印方阵中的元素
从右上角到左下角沿反对角线打印方阵中的元素原创 2016-08-08 17:47:49 · 1224 阅读 · 0 评论 -
KMP算法实现
KMP算法实现原创 2016-09-04 16:37:42 · 302 阅读 · 0 评论 -
完全平方数和问题(创新工厂涂鸦移动面试题)
给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n。你需要让平方数的个数最少。原创 2016-11-30 11:28:05 · 566 阅读 · 0 评论 -
将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并使奇数之间顺序反转,偶数之间顺序反转(创新工厂涂鸦移动面试题)
将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并使奇数之间顺序反转,偶数之间顺序反转原创 2016-11-30 11:33:41 · 1149 阅读 · 1 评论 -
B-树、B+树、B*树的区别
B-树、B+树、B*树的区别转载 2017-05-11 10:29:16 · 251 阅读 · 0 评论 -
频繁项集挖掘算法之FPGrowth
频繁项集挖掘算法之FPGrowth转载 2017-05-14 17:27:55 · 1573 阅读 · 0 评论 -
求链表的倒数第k个节点
求链表的倒数第k个节点原创 2016-05-11 18:21:29 · 516 阅读 · 0 评论 -
子树判断问题(百度笔试题)
子树判断问题(百度笔试题)原创 2016-05-08 15:32:15 · 492 阅读 · 0 评论 -
最长公共子序列问题
最长公共子序列问题原创 2016-04-23 16:35:47 · 494 阅读 · 0 评论 -
将字符串编码成数值,求数值最大和问题(今日头条笔试题)
将字符串编码成数值,求数值最大和问题(今日头条笔试题)原创 2016-04-30 01:12:09 · 684 阅读 · 0 评论 -
链表的倒序打印
链表的倒序打印原创 2016-04-30 00:30:37 · 565 阅读 · 0 评论 -
求方程的近似解,不用库函数求一个数的平方根
求方程的近似解,不用库函数求一个数的平方根原创 2016-04-30 00:06:03 · 2151 阅读 · 0 评论 -
多边形构成问题(今日头条笔试题)
多边形构成问题(今日头条笔试题)原创 2016-04-29 17:02:24 · 3976 阅读 · 0 评论 -
合并两个已经排序的链表
合并两个已经排序的链表原创 2016-05-11 18:33:15 · 341 阅读 · 0 评论 -
将字符串编码成数值,求数值最大和问题
将字符串编码成数值,求数值最大和问题原创 2016-04-28 01:15:32 · 825 阅读 · 0 评论 -
海量数据处理面试题
海量数据处理面试题转载 2016-04-25 18:41:26 · 330 阅读 · 0 评论 -
Top k问题(线性时间选择算法)
Top k问题(线性时间选择算法)原创 2016-04-25 18:38:24 · 2980 阅读 · 1 评论 -
最大连续子数组和
最大连续子数组和原创 2016-04-25 15:53:07 · 335 阅读 · 0 评论 -
寻找最小的k个数
寻找最小的k个数原创 2016-04-25 14:43:18 · 465 阅读 · 0 评论 -
求数组排列的范围
求数组排列的范围原创 2016-05-11 20:48:00 · 518 阅读 · 0 评论