刷题
ouyixi
这个作者很懒,什么都没留下…
展开
-
JZ27 字符串的排列
a为固定位,b依次与b、c、d进行交换;上图只展示了b与自身、c交换的过程,其他情况同理ArrayList<String> arrayList = new ArrayList<String>();public ArrayList<String> Permutation(String str) { StringBuilder str2= new StringBuilder(str); //以StringBuilder的形式存储str,方便后面的swap和存储到.原创 2021-07-19 10:42:05 · 85 阅读 · 0 评论 -
JZ58 对称的二叉树
boolean isSymmetrical(TreeNode pRoot) { if (pRoot==null) return true; if (pRoot.left==null&&pRoot.right==null) return true; return test(pRoot.left,pRoot.right); } boolean test(TreeNode lNode,TreeNode rNode){ ...原创 2021-07-14 18:50:39 · 69 阅读 · 0 评论 -
JZ24 二叉树中和为某一值的路径
这道题目让我最难想到的是怎么保存符合条件的路径1、满足条件的路径:从根节点到叶子节点的和==target的值那么就用target-node.val如果减掉叶子节点的val后==0,就说明从root节点到这个leaf的路径满足要求2、如何保存路径:声明一个ArrayList前序遍历到某个节点的时候就add进去,然后判断一下是否是leaf节点,是否满足target==0条件如果找到了满足条件的leaf节点,怎么把完整路径保存,这个我是没有想到的ArrayList<ArrayList<I原创 2021-07-14 11:21:25 · 82 阅读 · 0 评论 -
JZ23 二叉搜索树的后序遍历序列
首先二叉搜索树满足的条件:rightchild.val>root.val>leftchild.val后续遍历的顺序是:左右根,那么数组的最后一个位置就是root节点的值,比如[4,8,6,12,16,14,10] 根节点就是10;定位到了根节点,开始定位root节点的左右child,左孩子是第一个小于root的节点,右孩子是第一个大于root的节点leftchild的查找int l=endNode-1;for(;l>=startNode;l--){//从右往左查找,第一个比e原创 2021-07-13 10:44:51 · 95 阅读 · 0 评论 -
JZ22 从上往下打印二叉树
public class levelTree { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> queue = new ArrayList<Integer>(); Queue<TreeNode> queueTree = new LinkedList<TreeNode>();原创 2021-07-12 21:08:40 · 69 阅读 · 0 评论 -
JZ20 包含min函数的栈
Stack<Integer> mainStack = new Stack<Integer>(); Stack<Integer> supportStack = new Stack<Integer>(); public void push(int node) { //主栈正常pop和push mainStack.push(node); if (supportStack.empty()){...原创 2021-07-12 19:05:55 · 77 阅读 · 0 评论 -
剑指offer:矩阵中的路径
题目链接:https://www.nowcoder.com/practice/2a49359695a544b8939c77358d29b7e6?tpId=13&&tqId=11218&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在原创 2021-07-11 11:41:04 · 60 阅读 · 0 评论