摘要: 剑指offer 26,27,28 这三道题代码结构相似,可以放在一起练习。 剑指offer 28 对称的二叉树 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; 阅读全文
posted @ 2020-08-07 17:09 yawenw 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 首先将dfs代码贴出来。然后再结合leetcode200 Number of Islands 和 leetcode130 Surrounded Regions 这两道题看具体应用 dfs代码如下: public void dfs(char[][] grid, int i, int j){ if(i 阅读全文
posted @ 2020-06-17 20:36 yawenw 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 1.JAVA 基本数据类型的转换: 在Java中类型由低到高的顺序为:byte、short、char、int、long、float、double 由低到高可以自动转换,由高到低必须强制转换 2.JAVA String类及包装类之间的转换:具体是 valueOf 方法 与 parse.. 方法 两者区 阅读全文
posted @ 2020-06-07 22:41 yawenw 阅读(354) 评论(0) 推荐(0) 编辑
摘要: topk问题是一个十分经典的问题,解决该问题主要有两种思路。 第一种是利用 堆 结构,讲解:https://www.cnblogs.com/chengxiao/p/6129630.html 第二种是利用 快速排序 先回顾一下实现堆结构的代码: package LCtest.com; import j 阅读全文
posted @ 2020-06-04 23:18 yawenw 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 1.判断最简分数gcd函数 class Solution { public List<String> simplifiedFractions(int n) { List<String> res = new ArrayList<>(); for(int molecule = 1; molecule < 阅读全文
posted @ 2020-06-04 10:53 yawenw 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 本题的关键是要知道图论中的一个原理:无向图中, n个结点 至少需要 n-1条边,才能使各个结点相连。 有两种解法: 1.用递归遍历的方式,计算有多少个独立的连通的部分,我称为“簇”。需要移动的边就是 簇的个数减1。 2.使用并查集,计算有几个联通部分,有几条多余的边。如果多余的边小于联通部分,返回- 阅读全文
posted @ 2020-06-03 16:51 yawenw 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 本题是一个很经典的图论问题,可以简化为判断有向图是否有环。 class Solution { private Map<Integer, List<Integer>> graph= new HashMap<>(); private int[] visited; public boolean canFi 阅读全文
posted @ 2020-06-02 22:19 yawenw 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 4种解法 1.pop count public class Solution { public int[] countBits(int num) { int[] ans = new int[num + 1]; for (int i = 0; i <= num; ++i) ans[i] = popco 阅读全文
posted @ 2020-06-02 20:05 yawenw 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 二分图问题:首先要用HashMap构造图结构。然后用colors数组表示结染色情况。 遍历N个结点,从N个结点分别出发进行染色尝试,进行递归。 如果结点没有被染色并且不能被染成指定的颜色,返回失败。 对结点的dislike邻居结点进行递归,递归过程中,如果该结点已经被染色,返回是否和想要染的颜色相等 阅读全文
posted @ 2020-06-01 19:02 yawenw 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 本题目过于经典,所以在这里好好记录一下。 总共有三种解法 1.因为二叉搜索树的特性,将preorder数组排序,得到inorder。再将inorder的元素和下标用map存储起来,再对其进行递归。 2.利用二叉树的特性,初始化最小值,最大值,进行递归 3.用栈结构进行迭代。 class Soluti 阅读全文
posted @ 2020-06-01 17:59 yawenw 阅读(204) 评论(0) 推荐(0) 编辑