随笔分类 -  Java

上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
使用java编写的程序或者和java有关的题目
摘要:剑指 Offer 45. 把数组排成最小的数 Offer_45 题目描述 解题分析 java代码 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/8 16:34 */ import java.util.A 阅读全文
posted @ 2021-02-08 20:31 Garrett_Wale 阅读(54) 评论(0) 推荐(0)
摘要:剑指 Offer 44. 数字序列中某一位的数字 Offer_44 题目描述 题解分析 java代码 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/8 10:01 */ /** * 题目描述: * 数字 阅读全文
posted @ 2021-02-08 16:33 Garrett_Wale 阅读(149) 评论(0) 推荐(0)
摘要:剑指 Offer 43. 1~n 整数中 1 出现的次数 Offer_43 题目描述 题解分析 java代码 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/8 9:29 */ /** * 题目详情: * 阅读全文
posted @ 2021-02-08 10:02 Garrett_Wale 阅读(47) 评论(0) 推荐(0)
摘要:剑指 Offer 41. 数据流中的中位数 Offer_41 题目详情 题解分析 本题使用大根堆和小根堆来解决这个寻找中位数和插入中位数的问题。 其实本题最直接的方法是先对数组进行排序,然后取中位数。但是,这种方法的此方法的时间复杂度为 O(N),其中包括: 查找元素插入位置 O(logN) (二分 阅读全文
posted @ 2021-02-08 09:29 Garrett_Wale 阅读(73) 评论(0) 推荐(0)
摘要:剑指 Offer 40. 最小的k个数 Offer_40 题目描述 解法一:排序后取前k个数 /** * 题目描述:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 */ /** * 方法一:先对数字进行排序,然 阅读全文
posted @ 2021-02-07 22:03 Garrett_Wale 阅读(106) 评论(0) 推荐(0)
摘要:剑指 Offer 39. 数组中出现次数超过一半的数字 Offer_39 题目描述 方法一:使用map存储数字出现的次数 public class Offer_39 { public int majorityElement(int[] nums) { Map<Integer,Integer> map 阅读全文
posted @ 2021-02-07 21:00 Garrett_Wale 阅读(74) 评论(0) 推荐(0)
摘要:剑指 Offer 38. 字符串的排列 Offer_38 题目描述 解题思路 可以使用递归实现全排列,每次都确定一个数的位置,当所有位置的数都确定后即表示一个排列。 但是考虑到本题需要排除重复的排列, 所以可以递归时判断同一个字符是否出现在某个位置多次,如果出现多次则跳过。 java代码 packa 阅读全文
posted @ 2021-02-06 23:15 Garrett_Wale 阅读(142) 评论(0) 推荐(0)
摘要:剑指 Offer 37. 序列化二叉树 Offer_37 题目描述 题目解析 本题主要考察的就是二叉树的层次遍历。 层次遍历时可以根据二叉树的特点将空结点也进栈。 反序列化时同样可以根据层次遍历的思路,每次生成当前结点的左右子树指针结点。 java代码 package com.walegarrett 阅读全文
posted @ 2021-02-05 22:45 Garrett_Wale 阅读(82) 评论(0) 推荐(0)
摘要:剑指 Offer 36. 二叉搜索树与双向链表 Offer_36 题目描述 题解分析 本题考查的是二叉树的中序遍历以及二叉排序树的特征(二叉排序树的中序遍历序列是升序序列) 利用排序二叉树中序遍历的性质,可以设置一个前置指针和当前指针。 再遍历完当前结点的所有左子树后,可以得到一个数据值仅次与当前结 阅读全文
posted @ 2021-02-04 23:01 Garrett_Wale 阅读(93) 评论(0) 推荐(0)
摘要:剑指 Offer 35. 复杂链表的复制 Offer_35 题目详情 方法一 可以使用一个HashMap来存储旧结点和新结点的映射。 这种方法需要遍历链表两遍,因为需要首先知道映射关系才能求出next和random结点。 package com.walegarrett.offer; import j 阅读全文
posted @ 2021-02-03 23:11 Garrett_Wale 阅读(51) 评论(0) 推荐(0)
摘要:剑指 Offer 34. 二叉树中和为某一值的路径 Offer_34 题目详情 题解分析 本题是二叉树相关的题目,但是又和路径记录相关。 在记录路径时,可以使用一个栈来存储一条符合的路径,在回溯时将进栈的元素出栈,以此可以找到所有的Path。 package com.walegarrett.offe 阅读全文
posted @ 2021-02-01 20:46 Garrett_Wale 阅读(82) 评论(0) 推荐(0)
摘要:剑指 Offer 33. 二叉搜索树的后序遍历序列 Offer_33 题目详情 题解分析 本题需要注意的是,这是基于一颗二叉排序树的题目,根据排序二叉树的定义,中序遍历序列就是数据从小到大的排序序列。 这里有很多的细节问题,特别是在递归时,需要注意递归的出口和判断条件。 解法一:传统的方法 pack 阅读全文
posted @ 2021-02-01 18:09 Garrett_Wale 阅读(118) 评论(0) 推荐(0)
摘要:剑指 Offer 32 - III. 从上到下打印二叉树 III Offer_32_3 题目详情 题解分析 本题我想的比较复杂,其实题目的要求只是需要遍历的结果逆序和正序交替,这个其实可以使用Collections工具类的reverse函数来实现。 这里我根据偶数层和奇数层改变了遍历的顺序,相对较复 阅读全文
posted @ 2021-02-01 16:44 Garrett_Wale 阅读(118) 评论(0) 推荐(0)
摘要:剑指 Offer 32 - II. 从上到下打印二叉树 II Offer_32 题目描述: 题解分析: 这道题我一开始想到的解决方法较粗暴,就是使用两个变量来记录当前层的节点数和下一层的结点数。 以上的方法虽然可行,但是较复杂。实际每次队列里存储的就是当前层的所有结点,利用这个性质可以较快解题。 解 阅读全文
posted @ 2021-02-01 15:53 Garrett_Wale 阅读(81) 评论(0) 推荐(0)
摘要:剑指 Offer 32 - I. 从上到下打印二叉树 Offer_32_1 题目描述 解题思路 这题属于简单题,考察的是我们对二叉树以及层次遍历的方法。 这里只需要使用简单的队列即可完成二叉树的层次遍历。 此外,由于这道题需要返回一个定长数组,但是我一时没有找到合适的将Integer转换为int的方 阅读全文
posted @ 2021-02-01 15:22 Garrett_Wale 阅读(87) 评论(0) 推荐(0)
摘要:剑指 Offer 31. 栈的压入、弹出序列 Offer_31 题目详情: 解析: 这里需要使用一个栈来模仿入栈操作。 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/1/31 14:12 */ import 阅读全文
posted @ 2021-01-31 14:57 Garrett_Wale 阅读(105) 评论(0) 推荐(0)
摘要:剑指 Offer 30. 包含min函数的栈 Offer_30 题目描述: 相似题目 剑指 Offer 30. 包含min函数的栈 面试题59 - II. 队列的最大值 155. 最小栈 题解分析: 题目其实考察的是栈的知识,本题的目的是使用两个栈来求解最小值。 第二个栈主要用来维护第一个栈中的最小 阅读全文
posted @ 2021-01-31 14:12 Garrett_Wale 阅读(100) 评论(0) 推荐(0)
摘要:剑指 Offer 29. 顺时针打印矩阵 Offer_29 题目描述: 题解分析: 题目的初衷是将这道题当做一个简单题处理 这道题一开始想的太复杂了,其实可以参考迷宫广度优先搜索的过程,只不过在选定一个方向遍历时,除非遇到改变方向的情况,否则一直走下去。 需要注意的是:这里的方向二维数组(direc 阅读全文
posted @ 2021-01-31 13:27 Garrett_Wale 阅读(89) 评论(0) 推荐(0)
摘要:剑指 Offer 26. 树的子结构 Offer 26 题目详情: 题解分析 解法一: 第一种比较容易想到的解法就是查看这两棵树的前序遍历和中序遍历序列是否都匹配。 因为前序遍历和中序遍历可以唯一确定一棵树,所以这种方法是有效的,尽管有些复杂。 解法二: 题目是要求一个树是否是另一棵树的子结构。 如 阅读全文
posted @ 2021-01-27 09:25 Garrett_Wale 阅读(69) 评论(0) 推荐(0)
摘要:剑指 Offer 25. 合并两个排序的链表 Offer 25 该问题的原型就是多项式的合并。 实现较简单,没有特殊需要注意的问题。 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/1/26 21:04 */ 阅读全文
posted @ 2021-01-26 21:20 Garrett_Wale 阅读(56) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 10 下一页