韩奇峰高级讲师
多年实战工作经验曾参与制作宝马Usage Training项目、DMS项目,奥迪全
息投影项目,奔驰等多家汽车门户行业大型项目,负责UI设计、界面设计、3D模型制作、前端开发等职务。
从事设计行业多年,精通PhotoShop、UI设计、AfterEffects、Flash、
Actionscript、HTML、CSS、JavaScript、jQuery、资深动画设计师,设计作品曾获得全国动画设计三等奖。
课程讲解注重实战应用,对讲述知识点穿插案例制作,使课程内容更加接近
工作中实际的项目。授课风格注重实战经验分析,深受学生喜欢。
Java和Python哪个就业情况更好?
首先,在了解一个语言就业好不好之前,
得先明确语言的发展方向
(1)Python
Python:数据分析,人工智能,web开发,测试,运维,web安全。
(2)Java
Java:web开发,大数据开发,安卓开发,服务器开发, 桌面开发,游戏开
发。
Java作为全球占比**高的开发语言,有着她独一无二的优势,但因竞争太大
,就业方面并不比Python好。
而基于目前国内python人才需求呈大规模上升,薪资水平也水涨船高。学
python的人大多非科班出身。很多大学并没有开始此专业,因此就出现了大量的人才缺口。
从图上可以清晰的判断未来python就业形势,是大幅度上升的,加上互联网
行业正在进入成长爆发期,所以现在开始学习python的小伙伴果然是明智滴。
就业发展
与此同时,目前的互联网行业在高速发展的过程中,对于人工智能,数据分
析在北京、上海、深圳各大互联网发达的一线城市越发的火热,招聘优秀的Python程序员的难度尤为突出,为此选择就业Python更易成功。
Python人气爆棚的秘密
Python之所以排名上的如此之快,和它本身的特点也有关系,他是一种简单
、易用但专业、严谨的通用组合语言,或者叫胶水语言,让普通人也能够很容易的入门,把各种基本程序元件拼装在一起,协调运作。比如任何一个人
,只要愿意学习,可以在几天的时间里学会Python基础部分,然后干很多很多事情,这种投入产出比可能是其他任何语言都无法相比的而且Python的应
用很广,很多行业都会应用。
Java编程语言概述
1.Java编程语言发展简史
2.Java编程语言主要特征
3.Java技术体系平台
4.Java核心机制与JVM运行原理
5.搭建 Java开发环境
6.JDK 的安装与配置
7.开发体验 Java 应用程序
8.Java 程序的执行原理
9.Java Code Style
10.变量的声明与使用
11.变量内存空间分配与原理
12.进制与位运算
13.变量的数据类型
14.数据类型之间的转换
15.变量的运算与底层运算原理
每日一道算法题——1
>
每日一道算法题——1
从昨天开始,我想每天写一道算法题,虽然比较简单,但是相信积累起来还是有借鉴意义的。所以想用博客的方式记录下来。
题目
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, the answer is "wke"
, with the length of 3. Note that the answer must be a substring , "pwke"
is a subsequence and not a substring.
分析 给定一个字符串,求出该字符串的**长字串的长度。
要求:
字串不能包含重复字母
是字串,而不是子序列
测试数据 输入:abcabcbb 输出:3
输入:aab 输出:2
参考答案 这个题的解法有很多,这里只给出我自己的代码和我认为比较好的代码。
自己的答案:
算法思想:
从左到右遍历给定的字符串,用subString临时保存字串。
每加入一个新的字母,检查subString是否包含该字母,
如果有,那么从subString中那个字母的下标 1开始,构造新的字串。
如果没有包含,那么subString末尾加上新字母,并且记录下**大值。
public int lengthOfLongestSubstring(String s) {
String subString = "";
String temp;//用与保存字母
int max = 0;//**大长度
for(int i =0;i<s.length();i ){
temp = s.charAt(i) "";
if(subString.contains(temp)){
//包含temp字母 如:abc temp=b
//那么index = 1 且subString = cb
int index = subString.indexOf(temp);
subString = subString.substring(index 1) temp;
}else{
//没有包含 构造新的字符串
subString = temp;
max=Math.max(subString.length(),max);
}
}
return max;
}
更好的答案
采用哈希表来存储字串的字母,查看新字母是否有重复更快捷。
public class Solution {
public int lengthOfLongestSubstring(String s) {
int n = s.length(), ans = 0;
Map<Character, Integer> map = new HashMap<>(); // current index of character
// try to extend the range [i, j]
for (int j = 0, i = 0; j < n; j ) {
if (map.containsKey(s.charAt(j))) {
i = Math.max(map.get(s.charAt(j)), i);
}
ans = Math.max(ans, j - i 1);
map.put(s.charAt(j), j 1);
}
return ans;
}
}
时间复杂度:O(n)
空间复杂度:O(min(m,n))
巧妙的方法
利用ASCII码值
public class Solution {
public int lengthOfLongestSubstring(String s) {
int n = s.length(), ans = 0;
int[] index = new int[128]; // current index of character
// try to extend the range [i, j]
for (int j = 0, i = 0; j < n; j ) {
i = Math.max(index[s.charAt(j)], i);
ans = Math.max(ans, j - i 1);
index[s.charAt(j)] = j 1;
}
return ans;
}
}
时间复杂度:O(n)
空间复杂度:O(m)
相关推荐:
苏州JAVA培训 苏州JAVA培训班 苏州JAVA培训机构