Loading

上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 18 下一页
摘要: 题目 447. 回旋镖的数量 思路1(暴力,不推荐) 暴力三层循环,搜索所有的结果 超时,不推荐 代码 class Solution { public int numberOfBoomerangs(int[][] points) { int res = 0; for (int i = 0; i < 阅读全文
posted @ 2020-11-24 14:30 linzeliang 阅读(98) 评论(0) 推荐(0)
摘要: 题目 347. 前 K 个高频元素 思路1(哈希表与排序) 先用哈希表记录所有的值出现的次数 然后将按照出现的次数进行从高到低排序 最后取前 k 个就是答案了 代码 class Solution { public int[] topKFrequent(int[] nums, int k) { Has 阅读全文
posted @ 2020-11-24 09:30 linzeliang 阅读(122) 评论(0) 推荐(0)
摘要: 在Java中有两个比较器:Comparable、Comparator 对于Integer、Double等等类型,可以直接对他们进行比较,因为已经实现了比较的方式,然而在平时常常会面临需要对集合进行排序的情况,这种情况下我们需要人工定义Java比较器,告诉程序两个对象如何比较大小。 Comparabl 阅读全文
posted @ 2020-11-24 00:20 linzeliang 阅读(198) 评论(0) 推荐(0)
摘要: 题目 1. 两数之和 思路1(暴力枚举) 遍历数组 在每次遍历时,记录下target减去当前数组的值为temp 再从当前位置开始的后一个(因为同一个元素不能遍历两次)元素开始遍历到结束,如果和temp值相等,那么就将i和j的索引值记录到res中,返回res即可 代码 class Solution { 阅读全文
posted @ 2020-11-23 14:44 linzeliang 阅读(92) 评论(0) 推荐(0)
摘要: 题目 1382. 将二叉搜索树变平衡 思路 由于BST二叉搜索树的中序遍历是升序的,所以我们可以先通过中序遍历将该树转换为链表 然后再通过中序遍历,此时选取的是链表的中点作为树的根节点,将链表恢复为一颗平衡的二叉搜索树 代码 class Solution { class ListNode{ int 阅读全文
posted @ 2020-11-22 20:07 linzeliang 阅读(83) 评论(0) 推荐(0)
摘要: 题目 108. 将有序数组转换为二叉搜索树 思路(中序遍历的递归) 中序遍历,选择中间位置作为根节点 二叉搜索树的中序遍历是升序的,所以我们可以根据升序遍历来恢复二叉搜索树 又因为是要平衡的,所以我们选取数组中间位置的值创建节点 代码 class Solution { public TreeNode 阅读全文
posted @ 2020-11-22 18:49 linzeliang 阅读(87) 评论(0) 推荐(0)
摘要: 题目 110. 平衡二叉树 思路1(自顶向下的递归) 要判断是否为平衡二叉树,那么首先就判断他的左右子树高度差有没有超过1,没有超过1的话就继续判断他的左右子树是否为平衡二叉树 将大问题分成小问题进行解决,自顶向下 判断高度用dfs来计算 代码 class Solution { public boo 阅读全文
posted @ 2020-11-22 17:16 linzeliang 阅读(108) 评论(0) 推荐(0)
摘要: 题目 987. 二叉树的垂序遍历 思路 垂直遍历就是在同一行中,由上到小输出,然后再由小的列到大的列进行输出 可以将节点用二维坐标表示, 先将节点绑定坐标信心存入到locations集合中,按照我们自定义的方式进行排序 排序完后,在遍历该集合,如果x相同,那么就加入到同一个子集合中,如果x不相同,那 阅读全文
posted @ 2020-11-19 07:18 linzeliang 阅读(100) 评论(0) 推荐(0)
摘要: 题目 剑指 Offer 37. 序列化二叉树 思路 序列化其实就是层序遍历 但是,要能反序列化的话,前、中、后、层序遍历是不够的,必须在序列化时候保存所有信息,这样子反序列化才可以完全恢复一颗树 利用层序遍历,在遍历时候同时计算序列化结果,注意最后一个没有逗号 反序列化其实也是使用了层序遍历 由于起 阅读全文
posted @ 2020-11-18 01:39 linzeliang 阅读(86) 评论(0) 推荐(0)
摘要: 题目 513. 找树左下角的值 思路1(BFS 广度优先搜索) 本题用BFS好做,因为求得是最后一行的最左边的值 BFS广度优先搜索其实就是层序遍历 层序遍历是一层一层的遍历,我们只需要在每层遍历开始将最左边的数记录下来即可 遍历结束那个值就是结果了 代码 class Solution { publ 阅读全文
posted @ 2020-11-17 17:49 linzeliang 阅读(79) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 18 下一页