韓奇峰高級講師
多年實戰(zhàn)工作經(jīng)驗曾參與制作寶馬Usage Training項目、DMS項目,奧迪全
息投影項目,奔馳等多家汽車門戶行業(yè)大型項目,負責(zé)UI設(shè)計、界面設(shè)計、3D模型制作、前端開發(fā)等職務(wù)。
從事設(shè)計行業(yè)多年,精通PhotoShop、UI設(shè)計、AfterEffects、Flash、
Actionscript、HTML、CSS、JavaScript、jQuery、資深動畫設(shè)計師,設(shè)計作品曾獲得全國動畫設(shè)計三等獎。
課程講解注重實戰(zhàn)應(yīng)用,對講述知識點穿插案例制作,使課程內(nèi)容更加接近
工作中實際的項目。授課風(fēng)格注重實戰(zhàn)經(jīng)驗分析,深受學(xué)生喜歡。
Java和Python哪個就業(yè)情況更好?
首先,在了解一個語言就業(yè)好不好之前,
得先明確語言的發(fā)展方向
(1)Python
Python:數(shù)據(jù)分析,人工智能,web開發(fā),測試,運維,web安全。
(2)Java
Java:web開發(fā),大數(shù)據(jù)開發(fā),安卓開發(fā),服務(wù)器開發(fā), 桌面開發(fā),游戲開
發(fā)。
Java作為全球占比**高的開發(fā)語言,有著她獨一無二的優(yōu)勢,但因競爭太大
,就業(yè)方面并不比Python好。
而基于目前國內(nèi)python人才需求呈大規(guī)模上升,薪資水平也水漲船高。學(xué)
python的人大多非科班出身。很多大學(xué)并沒有開始此專業(yè),因此就出現(xiàn)了大量的人才缺口。
從圖上可以清晰的判斷未來python就業(yè)形勢,是大幅度上升的,加上互聯(lián)網(wǎng)
行業(yè)正在進入成長爆發(fā)期,所以現(xiàn)在開始學(xué)習(xí)python的小伙伴果然是明智滴。
就業(yè)發(fā)展
與此同時,目前的互聯(lián)網(wǎng)行業(yè)在高速發(fā)展的過程中,對于人工智能,數(shù)據(jù)分
析在北京、上海、深圳各大互聯(lián)網(wǎng)發(fā)達的一線城市越發(fā)的火熱,招聘優(yōu)秀的Python程序員的難度尤為突出,為此選擇就業(yè)Python更易成功。
Python人氣爆棚的秘密
Python之所以排名上的如此之快,和它本身的特點也有關(guān)系,他是一種簡單
、易用但專業(yè)、嚴(yán)謹(jǐn)?shù)耐ㄓ媒M合語言,或者叫膠水語言,讓普通人也能夠很容易的入門,把各種基本程序元件拼裝在一起,協(xié)調(diào)運作。比如任何一個人
,只要愿意學(xué)習(xí),可以在幾天的時間里學(xué)會Python基礎(chǔ)部分,然后干很多很多事情,這種投入產(chǎn)出比可能是其他任何語言都無法相比的而且Python的應(yīng)
用很廣,很多行業(yè)都會應(yīng)用。
Java編程語言概述
1.Java編程語言發(fā)展簡史
2.Java編程語言主要特征
3.Java技術(shù)體系平臺
4.Java核心機制與JVM運行原理
5.搭建 Java開發(fā)環(huán)境
6.JDK 的安裝與配置
7.開發(fā)體驗 Java 應(yīng)用程序
8.Java 程序的執(zhí)行原理
9.Java Code Style
10.變量的聲明與使用
11.變量內(nèi)存空間分配與原理
12.進制與位運算
13.變量的數(shù)據(jù)類型
14.數(shù)據(jù)類型之間的轉(zhuǎn)換
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.
分析 給定一個字符串,求出該字符串的**長字串的長度。
要求:
字串不能包含重復(fù)字母
是字串,而不是子序列
測試數(shù)據(jù) 輸入:abcabcbb 輸出:3
輸入:aab 輸出:2
參考答案 這個題的解法有很多,這里只給出我自己的代碼和我認(rèn)為比較好的代碼。
自己的答案:
算法思想:
從左到右遍歷給定的字符串,用subString臨時保存字串。
每加入一個新的字母,檢查subString是否包含該字母,
如果有,那么從subString中那個字母的下標(biāo) 1開始,構(gòu)造新的字串。
如果沒有包含,那么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{
//沒有包含 構(gòu)造新的字符串
subString = temp;
max=Math.max(subString.length(),max);
}
}
return max;
}
更好的答案
采用哈希表來存儲字串的字母,查看新字母是否有重復(fù)更快捷。
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;
}
}
時間復(fù)雜度:O(n)
空間復(fù)雜度: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;
}
}
時間復(fù)雜度:O(n)
空間復(fù)雜度:O(m)
相關(guān)推薦:
蘇州JAVA培訓(xùn) 蘇州JAVA培訓(xùn)班 蘇州JAVA培訓(xùn)機構(gòu)