ARTS 打卡計劃第一週 04/21

ARTS 打卡計劃第一週 04/21

Algorithm

TwoSum

Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.java

example:

Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].數據庫

package easy;
import java.util.HashMap;
/**
 * 一遍hash表
 * 複雜度分析:
 * 時間複雜度:O(n)O(n), 咱們只遍歷了包含有 nn 個元素的列表一次。在表中進行的每次查找只花費 O(1)O(1) 的時間。
 * 空間複雜度:O(n)O(n), 所需的額外空間取決於哈希表中存儲的元素數量,該表最多須要存儲 nn 個元素。
 **/

public class TwoSum {

    class Solution {
        public int[] twoSum(int[] nums, int target) {
            HashMap<Integer,Integer> hashMap = new HashMap();
            for (int i=0;i<nums.length;i++){
                if (hashMap.containsKey(target-nums[i])){
                    return  new int[]{hashMap.get(target-nums[i]) , i};
                }
                hashMap.put(nums[i],i);
            }
            //return nums;
            throw new IllegalArgumentException("No two sum solution");
        }
    }
}
複製代碼

提交結果

TwoSum
TwoSum

Review

eHarmony hooks up with Redis NoSQL database for hot storage安全

這篇文章主要講了美國最大的婚戀交友網站使用Redis來實現匹配功能等熱數據的實現,文章敘述了非關係型數據庫對於傳統的關係型數據庫的優點,該公司的架構師也作出了相關了的考慮分析。解釋了Redis在熱數據處理速度上的巨大優點,以及不一樣數據庫對應的不一樣應用場景。服務器

Tips

學習雙向認證流程
  • a. 客戶端發送一個鏈接請求給服務器。架構

  • b. 服務器將本身的證書,以及同證書相關的信息發送給客戶端。app

  • c. 客戶端檢查服務器送過來的證書是否和App內置證書相同。若是是,就繼續執行協議;若是不是則終止這次請求。學習

  • d. 接着客戶端比較證書裏的消息,例如域名和公鑰,與服務器剛剛發送的相關消息是否一致,若是是一致的,客戶端承認這個服務器的合法身份。網站

  • e. 服務器要求客戶發送客戶本身的證書。收到後,服務器驗證客戶端的證書,若是沒有經過驗證,拒絕鏈接;若是經過驗證,服務器得到用戶的公鑰。加密

  • f. 客戶端告訴服務器本身所可以支持的通信對稱密碼方案。spa

  • g. 服務器從客戶發送過來的密碼方案中,選擇一種加密程度最高的密碼方案,用客戶的公鑰加過密後通知客戶端。

  • h. 客戶端針對這個密碼方案,選擇一個通話密鑰,接着用服務器的公鑰加過密後發送給服務器。

  • i. 服務器接收到客戶端送過來的消息,用本身的私鑰解密,得到通話密鑰。

  • j. 服務器經過密鑰解密客戶端發送的被加密數據,獲得明文數據。

Share

一文讀懂Https的安全性原理、數字證書、單項認證、雙項認證等

相關文章
相關標籤/搜索