受辭職考研和新冠肺炎疫情影響,一直沒更,遺憾,數學和專業課再高點就有戲了,繼續,
1.Algorithm:每周至少做一個 leetcode 的演算法題
2.Review:閱讀并點評至少一篇英文技術文章
3.Tip:學習至少一個技術技巧
4.Share:分享一篇有觀點和思考的技術文章
以下是各項的情況:
Algorithm
回顧第一周題目
鏈接:[LeetCode-01]-Two Sum
之前使用的暴力法,思路就是去找 taget - nums[i] 然后回傳
class Solution { public int[] twoSum(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums.length; j++) { if (nums[j] == target - nums[i]) { return new int[] { i, j }; } } } throw new IllegalArgumentException("No two sum solution"); } }
現在考研后,應該考慮去分析時間和空間復雜度
- 時間復雜度:
對于每個元素,通過遍歷陣列的其余部分來尋找它所對應的目標元素,每次將耗費 O(n)的時間,因為嵌套,故時間復雜度為 O(n^2)
- 空間復雜度:O(1),
不使用暴力法,那么用什么呢?
需要一種更有效的方法來檢查陣列中是否存在目標元素,哈希表(保持陣列中的每個元素與其索引相互對應),
可以將查找時間從O(n)降低到 O(1),
具體:使用了兩次回圈,在第一次回圈中,將每個元素的值和它的索引添加到表,之后在第二次回圈中,將檢查每個元素所對應的目標元素(target - nums[i]target?nums[i])是否存在于表中,代碼如下:
Java:
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> map = new HashMap<>();
for(int i=0 ; i < nums.length ; i++){
map.put(nums[i],i);
}
for (int i = 0;i < nums.length; i++){
int complement = target - nums[i];
if (map.containsKey(complement)) {
return new int [] { i , map.get(complement)};
}
}
throw new IllegalArgumentException("No two sum solution");
}
JS:
const twoSum = function(nums, target) {
const comp = {};
for(let i=0; i<nums.length; i++){
if(comp[nums[i] ]>=0){
return [ comp[nums[i] ] , i]
}
comp[target-nums[i]] = i
}
};
分析時間和空間復雜度
- 時間復雜度:
因為第一次需要遍歷全部放入表中,故第一次時間復雜度 O(n),而對于每個元素,通過遍歷陣列的其余部分來尋找它所對應的目標元素,每次將耗費 O(1)的時間,故總時間復雜度為 O(n)
- 空間復雜度:O(1),
所以,總體分析后,理解了為什么哈希表會節省本機資源,這也是資料庫,組件solr喜歡用哈希表的一個重要原因,
Review
分享 Josh Hug 的 CS61B課程
最近在看josh的資料結構,理清思路非常有幫助,比起以前聽的課,很有脈絡,自成體系 ,大概理了下他的思路,后面直接在YouTube上去搜索Josh Hug,基本是按這個流程走的

Tip
簡單JMS(Just My Socks )使用指南
什么是 obfs (simple-obfs)?
obfs (simple-obfs) 是一個設計用于混淆 Ssocks 流量的工具,其原理是在 Ss 流量前面添加一層加密,以偽裝成是在正常的訪問網站,obfs 的實作有兩種方式,一種 HTTP,另外一種是 TLS,
而 Just My Socks 支持的是 TLS 方式,此偽裝性更加隱蔽,所以安全性更高,
由于 obfs 混淆相關并沒有一致的 QR 鏈接等協商方式,所以你得自己必須得手動來配置選項,是不能直接快速掃描二維碼或者添加鏈接方式匯入來使用的,
總結一下,就是封鎖嚴重,為了更加安全隱蔽,Just My Socks 啟用了 obfs 混淆,現在三、四組服務器需要安裝插件才能正常連接,
目前 不建站的情況下,用別人的機場會方便點,所以選用JMS , 1 , 2 , 5 組直接用QR去掃碼或者復制鏈接進V2或者小飛機 都比較方便 , 主要記載遇到的坑 ,之前參考的博客
https://cokebar.info/archives/1988
但不能ping通,
記錄下我的解決方法 :
一、直接通過官方提供的下載地址下載安裝



二、安裝插件和填寫引數
下載解壓到小飛機目錄
在服務器配置界面,選擇支持 obfs 混淆的節點,填入引數即可

插件:obfs-local 插件選項:obfs=tls (復制)
Share
這周熱點是瑞幸咖啡,推薦個觀點
https://www.fool.com/investing/2020/02/04/why-luckin-coffee-stock-popped-today.aspx 談到中國概念股票,投資者常常擔心欺詐性數字,但是以后,這種情況會變得更糟,Luckin Coffee管理層發現了問題,并暫停了包括Liu在內的涉案人員,并對其結果進行了獨立驗證,也就是說,要確定該丑聞的嚴重程度還需要花費一些時間,甚至需要更長的時間才能恢復破碎的投資者信心, 對國內來說,并不算個好事,以后,中概股會更難,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/21189.html
標籤:其他
上一篇:《圖解HTTP》筆記
下一篇:CSAPP實驗——DataLab
