上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 26 下一页
摘要: 剑指 Offer 53 - I. 在排序数组中查找数字 I Offer_53_1 题目描述 方法一:使用HashMap package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/9 20:10 */ import 阅读全文
posted @ 2021-02-09 20:32 Garrett_Wale 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 52. 两个链表的第一个公共节点 Offer_52 题目详情 题解分析 可以使用两个指针 node1,node2 分别指向两个链表 headA,headB 的头结点,然后同时分别逐结点遍历。 当 node1 到达链表 headA 的末尾时,重新定位到链表 headB 的头结点;当 阅读全文
posted @ 2021-02-09 20:10 Garrett_Wale 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 51. 数组中的逆序对 Offer_51 题目描述 方法一:暴力法(双层循环,超时) package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/9 9:12 */ /** * 题目详情:在数组中的 阅读全文
posted @ 2021-02-09 19:08 Garrett_Wale 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 50. 第一个只出现一次的字符 Offer_50 题目详情 方法一:使用无序哈希表 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/8 22:13 */ import java.util 阅读全文
posted @ 2021-02-09 09:12 Garrett_Wale 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 49. 丑数 Offer_49 题目详情 解法一:小根堆+哈希表/HashSet 根据丑数的定义,如果a是丑数,那么a2, a3以及a*5都是丑数 可以使用小根堆存储按照从小到大排序的丑数。 package com.walegarrett.offer; import java.ut 阅读全文
posted @ 2021-02-08 22:13 Garrett_Wale 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 48. 最长不含重复字符的子字符串 Offer_48 题目详情 解法分析 解法一:动态规划+哈希表 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/8 20:52 */ import j 阅读全文
posted @ 2021-02-08 21:39 Garrett_Wale 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 46. 把数字翻译成字符串 Offer_46 题目描述 题解分析 本题的解题思路是使用动态规划,首先得出递推公式如下 dp[i] = dp[i-1]+dp[i-2](如果s[i-1]+s[i]可以形成合法的数字:10-25) dp[i] = dp[i-1](如果s[i-1]+s[i 阅读全文
posted @ 2021-02-08 20:53 Garrett_Wale 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 剑指 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 阅读(49) 评论(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 阅读(96) 评论(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 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 41. 数据流中的中位数 Offer_41 题目详情 题解分析 本题使用大根堆和小根堆来解决这个寻找中位数和插入中位数的问题。 其实本题最直接的方法是先对数组进行排序,然后取中位数。但是,这种方法的此方法的时间复杂度为 O(N),其中包括: 查找元素插入位置 O(logN) (二分 阅读全文
posted @ 2021-02-08 09:29 Garrett_Wale 阅读(63) 评论(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 阅读(94) 评论(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 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 38. 字符串的排列 Offer_38 题目描述 解题思路 可以使用递归实现全排列,每次都确定一个数的位置,当所有位置的数都确定后即表示一个排列。 但是考虑到本题需要排除重复的排列, 所以可以递归时判断同一个字符是否出现在某个位置多次,如果出现多次则跳过。 java代码 packa 阅读全文
posted @ 2021-02-06 23:15 Garrett_Wale 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 37. 序列化二叉树 Offer_37 题目描述 题目解析 本题主要考察的就是二叉树的层次遍历。 层次遍历时可以根据二叉树的特点将空结点也进栈。 反序列化时同样可以根据层次遍历的思路,每次生成当前结点的左右子树指针结点。 java代码 package com.walegarrett 阅读全文
posted @ 2021-02-05 22:45 Garrett_Wale 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 36. 二叉搜索树与双向链表 Offer_36 题目描述 题解分析 本题考查的是二叉树的中序遍历以及二叉排序树的特征(二叉排序树的中序遍历序列是升序序列) 利用排序二叉树中序遍历的性质,可以设置一个前置指针和当前指针。 再遍历完当前结点的所有左子树后,可以得到一个数据值仅次与当前结 阅读全文
posted @ 2021-02-04 23:01 Garrett_Wale 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 35. 复杂链表的复制 Offer_35 题目详情 方法一 可以使用一个HashMap来存储旧结点和新结点的映射。 这种方法需要遍历链表两遍,因为需要首先知道映射关系才能求出next和random结点。 package com.walegarrett.offer; import j 阅读全文
posted @ 2021-02-03 23:11 Garrett_Wale 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 34. 二叉树中和为某一值的路径 Offer_34 题目详情 题解分析 本题是二叉树相关的题目,但是又和路径记录相关。 在记录路径时,可以使用一个栈来存储一条符合的路径,在回溯时将进栈的元素出栈,以此可以找到所有的Path。 package com.walegarrett.offe 阅读全文
posted @ 2021-02-01 20:46 Garrett_Wale 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 33. 二叉搜索树的后序遍历序列 Offer_33 题目详情 题解分析 本题需要注意的是,这是基于一颗二叉排序树的题目,根据排序二叉树的定义,中序遍历序列就是数据从小到大的排序序列。 这里有很多的细节问题,特别是在递归时,需要注意递归的出口和判断条件。 解法一:传统的方法 pack 阅读全文
posted @ 2021-02-01 18:09 Garrett_Wale 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 32 - III. 从上到下打印二叉树 III Offer_32_3 题目详情 题解分析 本题我想的比较复杂,其实题目的要求只是需要遍历的结果逆序和正序交替,这个其实可以使用Collections工具类的reverse函数来实现。 这里我根据偶数层和奇数层改变了遍历的顺序,相对较复 阅读全文
posted @ 2021-02-01 16:44 Garrett_Wale 阅读(99) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 26 下一页