Algorithms
771. Jewels and Stones
You're given strings J representing the types of stones that are jewels, and S representing the stones you have. Each character in S is a type of stone you have. You want to know how many of the stones you have are also jewels.
The letters in J are guaranteed distinct, and all characters in J and S are letters. Letters are case sensitive, so "a" is considered a different type of stone from "A".
Example 1:
Input: J = "aA", S = "aAAbbbb"
Output: 3
Example 2:
Input: J = "z", S = "ZZ"
Output: 0
Solution 1——leetcode上的思路:通过set保存J中的char值,然后遍历S,通过set.contains()判断值是否存在,时间复杂度O(m+N),空间复杂度O(1)
class Solution {
public int numJewelsInStones(String J, String S) {
int sum = 0;
Set set = new HashSet<>();
for (char c : J.toCharArray()) {
set.add(c);
}
for (char c : S.toCharArray()) {
if (set.contains(c)) {
sum++;
}
}
return sum;
}
}
Review
How To Become a Better Programmer by Not Programming
1、感兴趣的东西越多,你的工作做的越好。
2、培养对与编程相关的所有东西的热情。如:市场、顾客、同事关系。
Tips
网络基础知识协议:CDN
1、CDN的分发系统架构
2、客户端寻找边缘节点的流程图
3、CDN缓存包括静态资源(流媒体协议)和动态资源。
静态资源可以采用拉取和主动推送的模式。对于流媒体协议可以采取主动推送的方式,减少回源对服务器的影响。
动态资源可以采用边缘计算的模式和路径优化的模式。边缘计算的模式就是数据的逻辑计算和存储都是放在边缘的节点上,其中定时从源数据那里同步存储的数据,然后在边缘进行计算得到结果。路径优化的模式指数据不是在边缘计算生成的,而是在源站生成的,但是数据的下发可以通过CDN的网络,对路径进行优化。