获得徽章 3
- #每日一题#
41.数据流中的中位数
class MedianFinder {
PriorityQueue<Integer> minQueue;
PriorityQueue<Integer> maxQueue;
/** initialize your data structure here. */
public MedianFinder() {
minQueue = new PriorityQueue<Integer>((a,b) -> (b-a));
maxQueue = new PriorityQueue<Integer>((a,b) -> (a-b));
}
public void addNum(int num) {
if(minQueue.isEmpty()) minQueue.offer(num);
else if(minQueue.size()!=maxQueue.size()){
minQueue.offer(num);
maxQueue.offer(minQueue.poll());
}else{
maxQueue.offer(num);
minQueue.offer(maxQueue.poll());
}
}
public double findMedian() {
if(minQueue.size()!=maxQueue.size())return minQueue.peek();
else return (minQueue.peek() + maxQueue.peek())/2.0f;
}
}展开评论点赞 - #每日一题#
力扣17题打卡
class Solution {
Map<Integer,String> map = new HashMap<Integer,String>(){{
put(2,"abc");put(3,"def");put(4,"ghi");put(5,"jkl");put(6,"mno");
put(7,"pqrs");put(8,"tuv");put(9,"wxyz");
}};
public List<String> letterCombinations(String digits) {
List<String> ans = new ArrayList<String>();
if(digits.length()==0)return ans;
dfs(digits,0,new StringBuilder(),ans);
return ans;
}
public void dfs(String digits,int index, StringBuilder str, List<String> ans){
if(index>digits.length())return;
if(index==digits.length()){
ans.add(str.toString());
return;
}
String tmp = map.get(digits.charAt(index)-'0');
for(char e:tmp.toCharArray()){
str.append(e);
dfs(digits,index+1,str,ans);
str.deleteCharAt(str.length()-1);
}
return;
}
}展开评论点赞 - #青训营笔记创作活动#
2月14日 day25
今日学习
git remote -v // 查看连接的远程仓库地址 git remote add origin [gitUrl] // 为本地仓库添加远程仓库地址 git push -u origin master // 将本地仓库的master和远程仓库的master进行关联 git remote origin set-url [gitUrl] // 为本地仓库修改远程仓库地址 git remote rm origin // 为本地仓库删除远程仓库连接
展开评论点赞 - #青训营笔记创作活动#
2月11日 day24
今日学习
在 Web Worker 线程的运行环境中无法访问 document 对象,这一条符合当前的需求,但是该环境中能获取 XMLHttpRequest 对象,可以发送 ajax 请求,不符合不能调接口的要求
在页面中,可以通过 document 对象来获取 HTML 元素,进行增删改查的 DOM 操作
如何禁止开发者操作 DOM,转化为如何阻止开发者获取 document 对象
展开评论点赞 - #青训营笔记创作活动#
2月10号 day23
今日学习
有数十万的请求同时通过数据库查缓存是否足够,此时数据库可能会挂掉。数据库的连接资源有限mysql,无法同时支持这么多的连接。而应该改用缓存,比如:redis。即便用了redis,也需要部署多个节点
用户浏览商品等常规操作,并不会请求到服务端。只有到了秒杀时间点,并且用户主动点了秒杀按钮才允许访问服务端。展开评论点赞 - #青训营笔记创作活动#
2月9日 day22
今日学习
连接云数据库,由于涉及到了网络请求,那此时必然会先经历TCP三次握手的过程,同时获取到连接对象完成SQL操作后,又要释放这个数据库连接,此时又需要经历TCP四次挥手过程。
如果用户名不存在或密码错误,则抛出1045的错误码及错误信息。展开评论点赞 - #青训营笔记创作活动#
2月8日 day21
今日学习
let type = 'A' let tactics = { 'A': 1, 'B': 1, 'C': 2, 'D': 3, default: 0 } console.log(tactics[type]) // 1
利用map来代替if else多重判断方便简洁
讲对应映射关系放入map中,用键去寻找值展开评论点赞 - #青训营笔记创作活动#
2月3日 day20
今日学习
好的注释应当满足一下几点:
解释代码的意图,说明为什么这么写,用来做什么
对参数和返回值注释,入参代表什么,出参代表什么
有警示作用,比如说入参不能为空,或者代码是不是有坑
当代码还未完成时可以使用 todo 注释来注释
代码整洁之道展开评论点赞