李明杰(MJ)高级讲师
多年软件开发经验和教学经验,尤其精通Android和iOS平台的开发,还开发了2个iOS的流行开源框架(MJRefresh、MJExtension), 目前在国内的使用率非常高。
李老师曾负责主导开发过装饰ERP系统手机端、服装连锁管理系统手机及平板客户端、自动鸡尾酒调酒机系统、网络斗地主RPG、游戏 引擎等。曾以架构师及技术总监的角色帮客户成功获得多家风投,并上了中央电视台《给你一个亿》节目。除了Android和iOS平台,李老师也深入研究 HTML5、phoneGap、Sencha-Touch、Less、Bootstrap、AngularJS、NodeJS等前端利器。
2015年8月 CCTV发现之旅《华商论见》栏目特约嘉宾,受邀参加节目《互联网 浪潮下的创业之道》,接受央视著名主持人水均益采 访。2015年10月 曾受邀加入中国经贸代表团随总理出访韩国,参与总理访韩午餐会以及中日韩工商峰会。2015年12月 荣获中国经济新模 式创新与发展峰会“2015中国IT教育培训行业**具创新人物”奖。
李老师不但具有丰富的软件开发经验,并且懂得如何把自己掌握的知识及技能传授给他人,曾给多家企业提供Android/iOS技术培训 、技术支持、技术咨询等服务。李老师的授课视频深得学生们的喜爱,已培养出好几千名iOS程序员。
多年Java开发从业者:首先,这个问题主要问:自学Java编程技术,如果才 能找到一份Java编程的工作。按照现在的招聘标准来看,无论你去哪个公司面试,你只需要满足他们公司的需求就可以。
找到一份Java编程工作需要掌握的内容如下 :
首先是Javase作为Java**基本的学习 内容,不在多说。
然后是掌握Java的基本原理,因为做Java 编程开发必须学会Java,用到Java非常多,但是现在很多公司是不用去写原生的Java,但是如果你想成为一个厉害的Java开发者,Java必须从理论到实 际操作中都要非常得心应手。
现在公司是必须要求会用框架的,所以取代Java的就是jQuery,这是一个非 常简易的框架,学jQuery的时候你就会觉得它比Java好用的多。所以jQuery是你必须掌握的。
还有必须学一些框架,比如SpringMVC、Spring、Mybatis、Struts、Hibernate等等,这些就会难理解一些,但是公司是需要要求你会框架的,目前国内的公司应用SSH比 较多,建议至少学三个框架,这是找到工作的基本需求。
数据库技术是Java工作者必须掌握的技能常用就是Mysql。
Javaweb的内容还有html、css、jsp、Servlet等技术,这些都是现在找Java开发必须掌握的东西。
以上就是粗略的必须掌握的技术,如果你想找到一份Java开发的工作,上述 相关技术必须熟练掌握并且应用到项目中。
JavaEE进阶课程介绍
JavaEE进阶
JavaWeb后端开发
Tomcat服务器
Nginx服务器配置
dubbo
SOA 微服务
JavaWeb开发核心
JavaEE主流框架
Spring框架
SpringMVC框架
Struts框架
Hibernate框架
MyBatis
阶段综合项目
微信
点餐系统
吃了吗app
课程优势
1.掌握当前流行的Nginx服务器后台程序开发
2.使学员具备企业级服务器、网站的项目开发经验。
本阶段学习目标
1.掌握Tomcat/Nginx服务器搭建。
2.掌握Jsp&Servlet的使用。
3.精通SSH、SSM两大流行框架的原理及使用。
本阶段学习效果
1.掌握html5相关知识能够**需求搭建高质量网站;
2.可以实现原生js搭建动态效果界面;
3.使用JQuery库快速搭建原型界面;
Leetcode 144. Binary Tree Preorder Traversal
>
Given a binary tree, return the PReorder traversal of its nodes’ values.
For example: Given binary tree {1,#,2,3},
1 2 / 3return [1,2,3].
Note: Recursive solution is trivial, could you do it iteratively?
s思路: 1. pre-order之前有遇到过:先根,再左,后右。recursive确实容易。iterative稍微比in-order麻烦一些,需要用stack,关键是使用两个指针pnow和pre,防止做回头路! 2. 这个pre和pnow的关系是:pnow访问了左边,移动到右边之前,pre被赋值为pnow;当pnow访问了右边,移动到上层之前,pre被赋值为pnow。
//方法1:recursive: pre-order class Solution { public: void helper(vector<int>&res,TreeNode* root){ if(!root) return; res.push_back(root->val);//root helper(res,root->left);//left helper(res,root->right);//right } vector<int> preorderTraversal(TreeNode* root) { // vector<int> res; helper(res,root); return res; } }; //方法2:iterative: pre-order;stack;pre pnow class Solution { public: vector<int> preorderTraversal(TreeNode* root) { // vector<int> res; stack<TreeNode*> ss; TreeNode* pnow=root,*pre=NULL; while(!ss.empty()||pnow){ while(pnow){ res.push_back(pnow->val); ss.push(pnow); pnow=pnow->left; } pnow=ss.top(); if(pnow->right&&pnow->right!=pre){ pnow=pnow->right; }else{ pre=pnow; ss.pop(); pnow=NULL; } } return res; } };
相关推荐: