
leetcode
瑞雨
这个作者很懒,什么都没留下…
展开
-
一文完全搞懂二叉树的递归和迭代算法(前、中、后序)
一、递归算法 递归算法就很简单了,有固定的模板,前中后序万变不离其宗,代码如下(只在注释处有改动)。 前序遍历: class Solution { List<Integer> res = new ArrayList<>(); public List<Integer> preorderTraversal(TreeNode root) { if(root == null) return res; dfs(root);原创 2020-08-31 21:00:01 · 263 阅读 · 0 评论 -
【LeetCode】108、109题——将有序数组、链表转化为二叉搜索树
1.题目 108题 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 109题 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 2.解法 108题——递归 解题思路: 类似于二分法,数组两边边界下标,取中值mid,mid下标所在的数值及为二叉树的根节点。 取mi原创 2020-08-20 21:29:19 · 165 阅读 · 0 评论 -
Leetcode只出现一次的数字
Leetcode136.只出现一次的数字 Leetcode137.只出现一次的数字Ⅱ Leetcode260.只出现一次的数字Ⅲ Leetcode136.只出现一次的数字 题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 解题思路: 1.利用HashMap,对数组进行遍历,将数组元素添加到Map中去,再对Map遍历,找到只出现一次的元素。时间和空间复杂度都是O( n )。 2.利用HashSet,对数组进行遍历,新出现的元素添加到Set中,如果.原创 2020-08-19 20:03:12 · 650 阅读 · 0 评论 -
【剑指Offer】面试题16—— 数值的整数次方
1.题目 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 2.解法 快速幂 解题思路:我们可以将幂 n 表示成二进制的形式,比如若 n = 9,用二进制表示为 1001 1001 = 1 x 1 + 0 x 2 + 0 x 4 + 1 x 8 = 1 x 20 + 0 x 21 + 0 x 22 + 1 x 23 xn = x9 = x1x1 + x0x2 + x0x4 + x原创 2020-08-17 19:58:01 · 123 阅读 · 0 评论 -
【剑指Offer】面试题52——两个链表的第一个公共节点
1.题目 2.解法 暴力解法 解题思路:类似于两个数组的嵌套循环,找到公共的节点。 代码实现: public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ListNode curA = headA, curB = headB; //两层循环 while(curA != null){ while(原创 2020-08-17 19:56:17 · 200 阅读 · 0 评论