太仓java培训班要多少钱_太仓JAVA培训
来源:教育联展网 编辑:佚名 发布时间:2018-10-26
吴嘉俊(Stef)高级讲师
拥有多年的Java开发经验,CTO,EasyJF开源团队创始人之一、负责 EasyJWeb项目的开发和维护。曾在国内多家大型软件公司负责公司内部框架的开发和维护,为多个大中型公司做过架构和技术咨询。曾组织开发了蓝源 装饰行业ERP、美国EMR、蓝源服装行业连锁管理系统、蓝源SaaS服务平台、蓝源Eloan互联网金融综合解决方案等系统产品。具有非常丰富项目开发和 管理经验。
擅长技术:主流JavaEE,Android技术,对 Spring、JPA、Hibernate、 MyBatis、Struts2、MongoDB、Redis等技术领域有深入研究。
吴老师有丰富的Java培训经验和IT培训行业顾问经验;授课激情,有感染力 ,注重对底层原理的剖析和理解;善于培养学生对编程的兴趣;
学习Java编程需要参加Java培训吗?
随着社会信息的发展,Java技术已经无处不在,无论是手机软件、手机Java 游戏还是电脑软件等,只要你使用到电子产品就会碰到和Java有关的东西,更多的企业正采用Java语言开发网站,而在所有程序员中,Java开发工程师 就占据20%的比例。所以,现在依然有很多人选择学习Java语言。
学Java参加Java培训很有必要吗?很有必要,理由如下:
当下选择自学Java的朋友,大部分都会考虑网上查找Java入门视频跟着学习 ,网上的Java入门视频质量有没有保障呢?首先数量多,你该怎么选择好的Java入门视频资料呢?哪些Java入门视频资料中包含着已经淘汰的Java技术 ,你可以区分出来吗?
当然,如果你只是想先了解下Java编程,学一些基础的皮毛,那么Java基础 教程还是可以满足你的需求。但Java培训小编提醒你,真想学习Java基础教程就该找全套的教学视频,零零凑凑的建议你还不如不学。推荐**网的全套 免费Java教学视频针对零基础,想要入门的同学十分的靠谱,简单易懂。
自学Java首先Java学习资料的选择就是个相当大的问题,抛去这个问题。自 学Java没有专业Java老师在旁辅导,那么你势必要花出更多的时间和精力学Java,你口上说着计划每天花八个小时学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库快速搭建原型界面;
357. Count Numbers with Unique Digits -Medium
>
Question
Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n.
给出一个非负整数n,在 0 <= x <10 ^n 的范围内,统计每一位都不重复的数字的个数
Example
Given n = 2, return 91. (The answer should be the total numbers in the range of 0 ≤ x < 100, excluding [11,22,33,44,55,66,77,88,99])
Solution
想到的**种方法是回溯,在个位数遍历1 - 9,在其他位数上遍历0-9(当然要注意已使用过的数字不能再使用),终止条件为当前的数字大于**大的数字(10 ^ n)
class Solution(object): def countNumbersWithUniqueDigits(self, n): """ :type n: int :rtype: int """ count = 1 # 因为个位数不能有0,所以个位数的循环放到回溯外面,分别统计一次个位数为 1 - 9 的元素不重复数字个数 for i in range(1, 10): selectable = list(range(10)) selectable.remove(i) count = self.solve(list(range(2, 10)), pow(10, n), i) return count def solve(self, selectable, max_num, current_num): count = 0 # 只要小于**大数字,都保存统计,否则返回 if current_num < max_num: count = 1 else: return count # 遍历 0 - 9 数字 for index_s, s in enumerate(selectable): count = self.solve(selectable[:index_s] selectable[index_s 1:], max_num, current_num * 10 s) return count不过得到了 Time Limit Exceeded
第二种方法是动态规划。
位数 | 不重复元素个数 | 总数 |
---|---|---|
1 | 10 | 10 |
2 | 9 * 9 | 91 |
3 | 9 * 9 * 8 | 739 |
4 | 9 * 9 * 8 * 7 | 986410 |
考虑以上规律,我们只需保存两个变量,一个是上一个位数的不重复元素个数dp,另一个是可选数字个数selectable,这样我们就可以得到递推式 dp = dp * selectable,同时我们额外在维护一个总数就可以了
class Solution(object): def countNumbersWithUniqueDigits(self, n): """ :type n: int :rtype: int """ if n == 0: return 1 selectable = 9 # 当前可选项个数 dp = 9 # 保存当前位数的元素不重复数字个数(不包括个位数) res = 10 # 元素不重复数字的总个数 # 个位数的情况已经统计完成了,所以只需要统计n - 1次 for _ in range(n - 1): if selectable > 0: dp = dp * selectable res = dp selectable -= 1 return res
相关推荐:
上一篇:太仓java方法培训_太仓JAVA培训 下一篇:苏州包就业的java培训_苏州JAVA培训