ARTS 打卡 Week 10
发布于: 2020 年 08 月 09 日
每周完成一个 ARTS:
Algorithm: 每周至少做一个 LeetCode 的算法题
Review: 阅读并点评至少一篇英文技术文章
Tips: 学习至少一个技术技巧
Share: 分享一篇有观点和思考的技术文章
Algorithm
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */class Solution { int postOrderEndPosition ; public TreeNode buildTree(int[] inorder, int[] postorder) { postOrderEndPosition = postorder.length-1; return makeTree(inorder, postorder, 0, inorder.length-1); } public TreeNode makeTree(int []in, int []post, int low, int high){ if( low <= high ){ int pos = returnRootPosition(in, post, low, high); TreeNode root = new TreeNode( in[pos] ); root.right = makeTree(in,post, pos+1, high); root.left = makeTree(in,post, low, pos-1); return root; } return null; } int returnRootPosition(int []in, int []post, int low, int high ){ if( low == high){ return low; } if(low < high){ for(int k = postOrderEndPosition; k >= 0; k--){ for(int i = low; i<=high; i++){ if( post[k] == in[i]){ postOrderEndPosition--; return i; } } } } return -1; }}/*和105. (Preorder and Inorder)不同的点是要找到rootpostorder -> L, Right, Rootinorder -> L, Root, Rightfroot: 在postorder中找到第一个在inorder倒序遍历时出现的元素,就是当前点元素 build([9, 15, 7, 20, (3)], [9, (3), 15, 20, 7]) root=3 / \ / \ build([9]) build([15, 20, 7]) foort()=9 froot()=20 / \ / \ build([15]) build([7]) root=15 root=15*/
Review
见:Android VectorDrawable系列文章Review
Tips
学习了ReactiveCocoa基本知识,简单看它对应于Android里的:LiveData + Coroutines/RxAndroid。
Share
可能不能说敏捷已死,只是在不同的项目中,适应性存在新挑战。
划线
评论
复制
发布于: 2020 年 08 月 09 日阅读数: 50
teoking
关注
Monkey plays software. 2018.11.28 加入
程序员。目前主要从事Android和iOS开发。
评论